Last modified by Helena on 2025/09/10 11:19

From version 21.6
edited by Helena
on 2025/05/15 14:12
Change comment: There is no comment for this version
To version 21.8
edited by Helena
on 2025/05/15 14:21
Change comment: There is no comment for this version

Summary

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__&nbsp;// ====
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 transformation
449 +base
472 472  
473 -**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. **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. **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