Last modified by Helena on 2025/09/10 11:19
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -422,10 +422,8 @@ 422 422 423 423 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.). 424 424 425 -==== 6.2.2.2 URN Structure ==== 425 +==== 6.2.2.2 URN Structure //__Case Rules for URN__ // ==== 426 426 427 -===== **//__Case Rules for URN__//** ===== 428 - 429 429 For the URN, all parts of the string are case sensitive. The generic structure of the URN is as follows: 430 430 431 431 SDMXprefix.SDMX-IM-package-name.class-name=agencyid:maintainedobjectid(maintainedobject-version).*containerobject-id.object-id ... ... @@ -446,32 +446,10 @@ 446 446 447 447 The packages are: 448 448 449 -base 447 +base codelist conceptscheme datastructure categoryscheme registry metadatastructure process structuremapping transformation 450 450 451 -codelist 449 +**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. 452 452 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**__//=====457 +//__**Generic Examples of the URN Structure**__// 482 482 483 483 __Actual object is a maintainable__ 484 484