Last modified by Helena on 2025/09/10 11:19
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 1 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -408,32 +408,8 @@ 408 408 409 409 An example of this is shown in the XML snippet below: 410 410 411 - **<str:Codelists>**411 +[[image:1747307906944-697.png]] 412 412 413 -**<str:Codelist id="CL_FREQ" agencyID="SDMX" version="1.0.0">** 414 - 415 -**<com:Name xml:lang="en">Standard frequency Codelist</com:Name>** 416 - 417 -**</str:Codelist>** 418 - 419 -**<str:Codelist id="CL_FREQ" agencyID="AA" version="1.0.0">** 420 - 421 -**<com:Name xml:lang="en">Codelist maintained by agency AA</com:Name>** 422 - 423 -**</str:Codelist>** 424 - 425 -**<str:Codelist id="CL_FREQ" agencyID="AA.CC" version="1.0.0">** 426 - 427 -**<com:Name xml:lang="en">Codelist maintained by the AA unit CC</com:Name>** 428 - 429 -**</str:Codelist>** 430 - 431 -**<str:Codelist id="CL_FREQ" agencyID="BB.CC" version="1.0.0">** 432 - 433 -**<com:Name xml:lang="en">Codelist maintained by the BB unit CC</com:Name>** 434 - 435 -**</str:Codelist>** 436 - 437 437 **Figure 8: Example Showing Use of Agency Identifiers** 438 438 439 439 Each of these maintenance agencies has an identical Code list with the Id CL_BOP. However, each is uniquely identified by means of the hierarchic agency structure. ... ... @@ -446,8 +446,10 @@ 446 446 447 447 To provide interoperability between SDMX Registry/Repositories in a distributed network environment, it is important to have a scheme for uniquely identifying (and thus accessing) all first-class (Identifiable) SDMX-IM objects. Most of these unique identifiers are composite (containing maintenance agency, or parent object identifiers), and there is a need to be able to construct a unique reference as a single string. This is achieved by having a globally unique identifier called a universal resource name (URN) which is generated from the actual identification components in the SDMX-RR APIs. In other words, the URN for any Identifiable Artefact is constructed from its component identifiers (agency, id, version etc.). 448 448 449 -==== 6.2.2.2 URN Structure //__Case Rules for URN__ //====425 +==== 6.2.2.2 URN Structure ==== 450 450 427 +===== **//__Case Rules for URN__//** ===== 428 + 451 451 For the URN, all parts of the string are case sensitive. The generic structure of the URN is as follows: 452 452 453 453 SDMXprefix.SDMX-IM-package-name.class-name=agencyid:maintainedobjectid(maintainedobject-version).*containerobject-id.object-id ... ... @@ -458,7 +458,7 @@ 458 458 459 459 The Maintenance agency identifier is separated from the maintainable artefact identifier by a colon ‘:’. All other identifiers in the SDMX URN syntax are separated by a period ‘.’. The version information is encapsulated in parentheses ‘()’ and adheres to the SDMX versioning rules, as explained in SDMX Standards Section 6 “Technical Notes”, paragraph “4.3 Versioning. 460 460 461 - **6.2.2.3 Explanation of the generic structure**439 +==== 6.2.2.3 Explanation of the generic structure ==== 462 462 463 463 In the explanation below the actual object that is the target of the URN is called the **actual object**. 464 464 ... ... @@ -468,10 +468,32 @@ 468 468 469 469 The packages are: 470 470 471 -base codelist conceptscheme datastructure categoryscheme registry metadatastructure process structuremapping transformation449 +base 472 472 473 - **maintainable-object-id** is the identifierof the maintainable object. This will always be present as all identifiable objects are either a maintainable object or contained in a maintainable object. **maintainable-object-version** isthe version, according to the SDMX versioning rules, of the maintainable object and is enclosed in parentheses ‘()’, which are always present. **container-object-id** is the identifier of an intermediary object that contains the actual object which the URN is identifying. It is not mandatory as many actual objects do not have an intermediary container object. For instance, a Code is in a maintained object (Codelist) and has no intermediary container object, whereas a MetadataAttribute has an intermediary container object (MetadataAttributeDescriptor) and may have an intermediary container object, which is its parent MetadataAttribute. For this reason, the container object id may repeat, with each repetition identifying the object at the next-lower level in its hierarchy. Note that if there is only a single containing object in the model then it is NOT included in the URN structure. This applies to AttributeDescriptor, DimensionDescriptor, and MeasureDescriptor where there can be only one such object and this object has a fixed id. Therefore, whilst each of these has a URN, the id of the AttributeDescriptor, DimensionDescriptor, and MeasureDescriptor is not included when the actual object is a DataAttribute or a Dimension/ TimeDimension, or a Measure.451 +codelist 474 474 453 +conceptscheme 454 + 455 +datastructure 456 + 457 +categoryscheme 458 + 459 +registry 460 + 461 +metadatastructure 462 + 463 +process 464 + 465 +structuremapping 466 + 467 +transformation 468 + 469 +**maintainable-object-id** is the identifier of the maintainable object. This will always be present as all identifiable objects are either a maintainable object or contained in a maintainable object. 470 + 471 +**maintainable-object-version** is the version, according to the SDMX versioning rules, of the maintainable object and is enclosed in parentheses ‘()’, which are always present. 472 + 473 +**container-object-id** is the identifier of an intermediary object that contains the actual object which the URN is identifying. It is not mandatory as many actual objects do not have an intermediary container object. For instance, a Code is in a maintained object (Codelist) and has no intermediary container object, whereas a MetadataAttribute has an intermediary container object (MetadataAttributeDescriptor) and may have an intermediary container object, which is its parent MetadataAttribute. For this reason, the container object id may repeat, with each repetition identifying the object at the next-lower level in its hierarchy. Note that if there is only a single containing object in the model then it is NOT included in the URN structure. This applies to AttributeDescriptor, DimensionDescriptor, and MeasureDescriptor where there can be only one such object and this object has a fixed id. Therefore, whilst each of these has a URN, the id of the AttributeDescriptor, DimensionDescriptor, and MeasureDescriptor is not included when the actual object is a DataAttribute or a Dimension/ TimeDimension, or a Measure. 474 + 475 475 Note that although a Code can have a parent Code and a Concept can have a parent Concept these are maintained in a flat structure and therefore do not have a containerobject-id. 476 476 477 477 For example, the sequence is agency:DSDid(version).DimensionId and not agency:DSDid(version).DimensionDescriptorId.DimensionId. ... ... @@ -478,7 +478,7 @@ 478 478 479 479 object-id is the identifier of the actual object unless the actual object is a //Maintainable// object. If present it is always the last id and is not followed by any other character. 480 480 481 -//__**Generic Examples of the URN Structure**__// 481 +===== //__**Generic Examples of the URN Structure**__// ===== 482 482 483 483 __Actual object is a maintainable__ 484 484 ... ... @@ -533,85 +533,86 @@ 533 533 534 534 The SDMX-RR MUST be able to resolve the unique identifier of an SDMX artefact and to produce an SDMX-ML rendering of that artefact if it is located in the Registry. 535 535 536 -=== =={{id name="_Toc93859"/}}6.2.3 Table of SDMX-IM Packages and Classes =====536 +=== {{id name="_Toc93859"/}}6.2.3 Table of SDMX-IM Packages and Classes === 537 537 538 538 The table below lists all of the packages in the SDMX-IM together with the concrete classes that are in these packages and whose objects have a URN. 539 539 540 -|**Package**|**URN class name (model class name where this is different)** 541 -|base|Agency 542 -| |AgencyScheme 543 -| |DataConsumer 544 -| |DataConsumerScheme 545 -| |DataProvider 546 -| |DataProviderScheme 547 -| |MetadataProvider 548 -| |MetadataProviderScheme 549 -| |OrganisationUnit 550 -| |OrganisationUnitScheme 551 -|datastructure|AttributeDescriptor 552 -| |DataAttribute 553 -| |Dataflow 554 -| |DataStructure (DataStructureDefinition) 555 -| |Dimension 556 -| |DimensionDescriptor 557 -| |GroupDimensionDescriptor 558 -| |Measure 559 -| |MeasureDescriptor 560 -| |TimeDimension 561 -| | 562 -|metadatastructure|MetadataAttribute 563 -| |MetadataAttributeDescriptor 564 -| |MetadataStructure MetadataStructureDefinition) 565 -| |Metadataflow 566 -| |MetadataSet 567 -| | 568 -|process|Process 569 -| |ProcessStep 570 -| |Transition 571 -| | 572 -|registry|DataConstraint 573 -| |MetadataConstraint 574 -| |MetadataProvisionAgreement 575 -| |ProvisionAgreement 576 -| |Subscription 577 -| | 578 -|structuremapping|CategorySchemeMap 579 -| |ConceptSchemeMap 580 -| |OrganisationSchemeMap 581 -| |ReportingTaxonomyMap 582 -| |RepresentationMap 583 -| |StructureMap 584 -| | 585 -|codelist|Code 586 -| |Codelist 587 -| |HierarchicalCode 588 -| |Hierarchy 589 -| |HierarchyAssociation 590 -| |Level 591 -| |ValueList 592 -| | 593 -|categoryscheme|Categorisation 594 -| |Category 595 -| |CategoryScheme 596 -| |ReportingCategory 597 -| |ReportingTaxonomy 598 -|conceptscheme|Concept 599 -| |ConceptScheme 600 -| | 601 -|transformation|CustomType 602 -| |CustomTypeScheme 603 -| |NamePersonalisation 604 -| |NamePersonalisationScheme 605 -| |Ruleset 606 -| |RulesetScheme 607 -| |Transformation 608 -| |TransformationScheme 609 -| |UserDefinedOperator 610 -| |UserDefinedOperatorScheme 611 -| |VtlCodelistMapping 612 -| |VtlConceptMapping 613 -| |VtlDataflowMapping 614 -| |VtlMappingScheme 540 +(% style="width:651.294px" %) 541 +|(% style="width:134px" %)**Package**|(% style="width:502px" %)**URN class name (model class name where this is different)** 542 +|(% style="width:134px" %)base|(% style="width:502px" %)Agency 543 +|(% style="width:134px" %) |(% style="width:502px" %)AgencyScheme 544 +|(% style="width:134px" %) |(% style="width:502px" %)DataConsumer 545 +|(% style="width:134px" %) |(% style="width:502px" %)DataConsumerScheme 546 +|(% style="width:134px" %) |(% style="width:502px" %)DataProvider 547 +|(% style="width:134px" %) |(% style="width:502px" %)DataProviderScheme 548 +|(% style="width:134px" %) |(% style="width:502px" %)MetadataProvider 549 +|(% style="width:134px" %) |(% style="width:502px" %)MetadataProviderScheme 550 +|(% style="width:134px" %) |(% style="width:502px" %)OrganisationUnit 551 +|(% style="width:134px" %) |(% style="width:502px" %)OrganisationUnitScheme 552 +|(% style="width:134px" %)datastructure|(% style="width:502px" %)AttributeDescriptor 553 +|(% style="width:134px" %) |(% style="width:502px" %)DataAttribute 554 +|(% style="width:134px" %) |(% style="width:502px" %)Dataflow 555 +|(% style="width:134px" %) |(% style="width:502px" %)DataStructure (DataStructureDefinition) 556 +|(% style="width:134px" %) |(% style="width:502px" %)Dimension 557 +|(% style="width:134px" %) |(% style="width:502px" %)DimensionDescriptor 558 +|(% style="width:134px" %) |(% style="width:502px" %)GroupDimensionDescriptor 559 +|(% style="width:134px" %) |(% style="width:502px" %)Measure 560 +|(% style="width:134px" %) |(% style="width:502px" %)MeasureDescriptor 561 +|(% style="width:134px" %) |(% style="width:502px" %)TimeDimension 562 +|(% style="width:134px" %) |(% style="width:502px" %) 563 +|(% style="width:134px" %)metadatastructure|(% style="width:502px" %)MetadataAttribute 564 +|(% style="width:134px" %) |(% style="width:502px" %)MetadataAttributeDescriptor 565 +|(% style="width:134px" %) |(% style="width:502px" %)MetadataStructure MetadataStructureDefinition) 566 +|(% style="width:134px" %) |(% style="width:502px" %)Metadataflow 567 +|(% style="width:134px" %) |(% style="width:502px" %)MetadataSet 568 +|(% style="width:134px" %) |(% style="width:502px" %) 569 +|(% style="width:134px" %)process|(% style="width:502px" %)Process 570 +|(% style="width:134px" %) |(% style="width:502px" %)ProcessStep 571 +|(% style="width:134px" %) |(% style="width:502px" %)Transition 572 +|(% style="width:134px" %) |(% style="width:502px" %) 573 +|(% style="width:134px" %)registry|(% style="width:502px" %)DataConstraint 574 +|(% style="width:134px" %) |(% style="width:502px" %)MetadataConstraint 575 +|(% style="width:134px" %) |(% style="width:502px" %)MetadataProvisionAgreement 576 +|(% style="width:134px" %) |(% style="width:502px" %)ProvisionAgreement 577 +|(% style="width:134px" %) |(% style="width:502px" %)Subscription 578 +|(% style="width:134px" %) |(% style="width:502px" %) 579 +|(% style="width:134px" %)structuremapping|(% style="width:502px" %)CategorySchemeMap 580 +|(% style="width:134px" %) |(% style="width:502px" %)ConceptSchemeMap 581 +|(% style="width:134px" %) |(% style="width:502px" %)OrganisationSchemeMap 582 +|(% style="width:134px" %) |(% style="width:502px" %)ReportingTaxonomyMap 583 +|(% style="width:134px" %) |(% style="width:502px" %)RepresentationMap 584 +|(% style="width:134px" %) |(% style="width:502px" %)StructureMap 585 +|(% style="width:134px" %) |(% style="width:502px" %) 586 +|(% style="width:134px" %)codelist|(% style="width:502px" %)Code 587 +|(% style="width:134px" %) |(% style="width:502px" %)Codelist 588 +|(% style="width:134px" %) |(% style="width:502px" %)HierarchicalCode 589 +|(% style="width:134px" %) |(% style="width:502px" %)Hierarchy 590 +|(% style="width:134px" %) |(% style="width:502px" %)HierarchyAssociation 591 +|(% style="width:134px" %) |(% style="width:502px" %)Level 592 +|(% style="width:134px" %) |(% style="width:502px" %)ValueList 593 +|(% style="width:134px" %) |(% style="width:502px" %) 594 +|(% style="width:134px" %)categoryscheme|(% style="width:502px" %)Categorisation 595 +|(% style="width:134px" %) |(% style="width:502px" %)Category 596 +|(% style="width:134px" %) |(% style="width:502px" %)CategoryScheme 597 +|(% style="width:134px" %) |(% style="width:502px" %)ReportingCategory 598 +|(% style="width:134px" %) |(% style="width:502px" %)ReportingTaxonomy 599 +|(% style="width:134px" %)conceptscheme|(% style="width:502px" %)Concept 600 +|(% style="width:134px" %) |(% style="width:502px" %)ConceptScheme 601 +|(% style="width:134px" %) |(% style="width:502px" %) 602 +|(% style="width:134px" %)transformation|(% style="width:502px" %)CustomType 603 +|(% style="width:134px" %) |(% style="width:502px" %)CustomTypeScheme 604 +|(% style="width:134px" %) |(% style="width:502px" %)NamePersonalisation 605 +|(% style="width:134px" %) |(% style="width:502px" %)NamePersonalisationScheme 606 +|(% style="width:134px" %) |(% style="width:502px" %)Ruleset 607 +|(% style="width:134px" %) |(% style="width:502px" %)RulesetScheme 608 +|(% style="width:134px" %) |(% style="width:502px" %)Transformation 609 +|(% style="width:134px" %) |(% style="width:502px" %)TransformationScheme 610 +|(% style="width:134px" %) |(% style="width:502px" %)UserDefinedOperator 611 +|(% style="width:134px" %) |(% style="width:502px" %)UserDefinedOperatorScheme 612 +|(% style="width:134px" %) |(% style="width:502px" %)VtlCodelistMapping 613 +|(% style="width:134px" %) |(% style="width:502px" %)VtlConceptMapping 614 +|(% style="width:134px" %) |(% style="width:502px" %)VtlDataflowMapping 615 +|(% style="width:134px" %) |(% style="width:502px" %)VtlMappingScheme 615 615 616 616 **Table 2: SDMX-IM Packages and Contained Classes** 617 617
- 1747307906944-697.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +37.9 KB - Content