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

From version 34.2
edited by Helena
on 2025/05/23 00:52
Change comment: There is no comment for this version
To version 41.2
edited by Artur
on 2025/06/06 13:16
Change comment: Update document after refactoring.

Summary

Details

Page properties
Title
... ... @@ -1,1 +1,1 @@
1 -SDMX 3.0 Standards. Section 5. SDMX registry specification: logical functionality and logical interfaces
1 +SDMX 3.0 Standards. Section 5. Registry Specification: Logical Functionality
Author
... ... @@ -1,1 +1,1 @@
1 -xwiki:XWiki.helena
1 +xwiki:XWiki.arturkryazhev
Content
... ... @@ -184,11 +184,11 @@
184 184  
185 185  === {{id name="_Toc93847"/}}5.2.2 Structure Submission Service ===
186 186  
187 -The registry must support a mechanism for submitting [[structural metadata>>doc:Glossary.Structural metadata.WebHome]]. This mechanism can be the [[SDMX>>doc:Glossary.Statistical data and metadata exchange.WebHome]] REST interface for [[structural metadata>>doc:Glossary.Structural metadata.WebHome]] (this is defined in the corresponding GitHub project, dedicated to the [[SDMX>>doc:Glossary.Statistical data and metadata exchange.WebHome]] REST API: [[__https:~~/~~/github.com/__>>https://https:github.comsdmx-twgsdmx-rest]][[sdmx>>doc:Glossary.Statistical data and metadata exchange.WebHome]]-twg/[[sdmx>>doc:Glossary.Statistical data and metadata exchange.WebHome]]-rest). In order for the architecture to be scalable, the finest-grained piece of [[structural metadata>>doc:Glossary.Structural metadata.WebHome]] that can be processed by the [[SDMX>>doc:Glossary.Statistical data and metadata exchange.WebHome]]-RR is a MaintainableArtefact, with the exception of [[Item Schemes>>doc:Glossary.Item scheme.WebHome]], where changes at an Item (% style="color:#e74c3c" %)level(%%) is also possible (see next section on the [[SDMX Information Model>>doc:Glossary.SDMX Information Model.WebHome]]).
187 +The registry must support a mechanism for submitting [[structural metadata>>doc:Glossary.Structural metadata.WebHome]]. This mechanism can be the [[SDMX>>doc:Glossary.Statistical data and metadata exchange.WebHome]] REST interface for [[structural metadata>>doc:Glossary.Structural metadata.WebHome]] (this is defined in the corresponding GitHub project, dedicated to the [[SDMX>>doc:Glossary.Statistical data and metadata exchange.WebHome]] REST API: [[__https:~~/~~/github.com/sdmx-twg/sdmx-rest__>>https://github.com/sdmx-twg/sdmx-rest]]). In order for the architecture to be scalable, the finest-grained piece of [[structural metadata>>doc:Glossary.Structural metadata.WebHome]] that can be processed by the [[SDMX>>doc:Glossary.Statistical data and metadata exchange.WebHome]]-RR is a MaintainableArtefact, with the exception of [[Item Schemes>>doc:Glossary.Item scheme.WebHome]], where changes at an Item (% style="color:#e74c3c" %)level(%%) is also possible (see next section on the [[SDMX Information Model>>doc:Glossary.SDMX Information Model.WebHome]]).
188 188  
189 189  === {{id name="_Toc93848"/}}5.2.3 Structure Query Service ===
190 190  
191 -The registry must support a mechanism for querying for [[structural metadata>>doc:Glossary.Structural metadata.WebHome]]. This mechanism can be the [[SDMX>>doc:Glossary.Statistical data and metadata exchange.WebHome]] REST interface for [[structural metadata>>doc:Glossary.Structural metadata.WebHome]] (this is defined in the corresponding GitHub project, dedicated to the [[SDMX>>doc:Glossary.Statistical data and metadata exchange.WebHome]] REST API: [[__https:~~/~~/github.com/__>>https://https:github.comsdmx-twgsdmx-rest]][[sdmx>>doc:Glossary.Statistical data and metadata exchange.WebHome]]-twg/[[sdmx>>doc:Glossary.Statistical data and metadata exchange.WebHome]]-rest). The registry response to this query mechanism is the [[SDMX>>doc:Glossary.Statistical data and metadata exchange.WebHome]] Structure message, which has as its root node:
191 +The registry must support a mechanism for querying for [[structural metadata>>doc:Glossary.Structural metadata.WebHome]]. This mechanism can be the [[SDMX>>doc:Glossary.Statistical data and metadata exchange.WebHome]] REST interface for [[structural metadata>>doc:Glossary.Structural metadata.WebHome]] (this is defined in the corresponding GitHub project, dedicated to the [[SDMX>>doc:Glossary.Statistical data and metadata exchange.WebHome]] REST API: [[__https:~~/~~/github.com/sdmx-twg/sdmx-rest__>>https://github.com/sdmx-twg/sdmx-rest]]). The registry response to this query mechanism is the [[SDMX>>doc:Glossary.Statistical data and metadata exchange.WebHome]] Structure message, which has as its root node:
192 192  
193 193  * Structure
194 194  
... ... @@ -296,14 +296,12 @@
296 296  (% style="width:757.294px" %)
297 297  |(% style="width:188px" %)**Interface**|(% style="width:542px" %)**Behaviour**
298 298  |(% style="width:188px" %)All|(% style="width:542px" %)(((
299 -1. If the action is set to “replace” (or a [[maintainable Artefact>>doc:Glossary.Maintainable artefact.WebHome]] is PUT or POSTed) then the entire contents of the existing maintainable object in the Registry MUST be replaced by the object submitted.
300 -1. Cross referenced structures MUST exist in either the submitted document (in Structures or Structure Location) or in the registry to which the request is submitted.
301 -1. If the action is set to “delete” (or a [[maintainable Artefact>>doc:Glossary.Maintainable artefact.WebHome]] is DELETEd) then the Registry MUST verify that the object can be deleted. In order to qualify for deletion, the object must:
302 -
299 +1) If the action is set to “replace” (or a [[maintainable Artefact>>doc:Glossary.Maintainable artefact.WebHome]] is PUT or POSTed) then the entire contents of the existing maintainable object in the Registry MUST be replaced by the object submitted.
300 +2) Cross referenced structures MUST exist in either the submitted document (in Structures or Structure Location) or in the registry to which the request is submitted.
301 +3) If the action is set to “delete” (or a [[maintainable Artefact>>doc:Glossary.Maintainable artefact.WebHome]] is DELETEd) then the Registry MUST verify that the object can be deleted. In order to qualify for deletion, the object must:
303 303  a) Be a draft (% style="color:#e74c3c" %)version(%%).
304 -)))
305 -|(% style="width:188px" %) |(% style="width:542px" %)(((
306 306  b) Not be explicitly{{footnote}}With semantic versioning, it is allowed to reference a range of artefacts, e.g., a DSD referencing a Codelist with version 1.2.3+ means all patch versions greater than 1.2.3. This means that deleting 1.2.4-draft does not break integrity of the aforementioned DSD.{{/footnote}} referenced from any other object in the Registry.
304 +
307 307  4) The semantic versioning rules in the [[SDMX>>doc:Glossary.Statistical data and metadata exchange.WebHome]] documentation MUST be obeyed.
308 308  )))
309 309  |(% style="width:188px" %)Structure submission|(% style="width:542px" %)Structures are submitted at the (% style="color:#e74c3c" %)level(%%) of the [[Maintainable Artefact>>doc:Glossary.Maintainable artefact.WebHome]] and the behaviour in “All” above is therefore at the (% style="color:#e74c3c" %)level(%%) of the [[Maintainable Artefact>>doc:Glossary.Maintainable artefact.WebHome]].
... ... @@ -428,7 +428,7 @@
428 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 -SDMXprefix.SDMX-IM-package-name.class-name=agencyid:maintainedobjectid(maintainedobject-(% style="color:#e74c3c" %)version(%%)).*containerobject-id.object-id
429 +SDMXprefix.SDMX-IM-package-name.class-name=agencyid:maintainedobjectid(maintainedobject-version).*containerobject-id.object-id
432 432  
433 433  ~* this can repeat and may not be present (see explanation below)
434 434  
... ... @@ -459,43 +459,45 @@
459 459  
460 460  **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.
461 461  
462 -**maintainable-object-(% style="color:#e74c3c" %)version(%%)** is the (% style="color:#e74c3c" %)version(%%), according to the [[SDMX>>doc:Glossary.Statistical data and metadata exchange.WebHome]] versioning rules, of the maintainable object and is enclosed in parentheses ‘()’, which are always present.
460 +**maintainable-object-version** is the (% style="color:#e74c3c" %)version(%%), according to the [[SDMX>>doc:Glossary.Statistical data and metadata exchange.WebHome]] versioning rules, of the maintainable object and is enclosed in parentheses ‘()’, which are always present.
463 463  
464 464  **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>>doc:Glossary.Code.WebHome]] 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 (% style="color:#e74c3c" %)level(%%) in its [[hierarchy>>doc:Glossary.Hierarchy.WebHome]]. 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.
465 465  
466 466  Note that although a [[Code>>doc:Glossary.Code.WebHome]] can have a parent [[Code>>doc:Glossary.Code.WebHome]] and a (% style="color:#e74c3c" %)Concept(%%) can have a parent (% style="color:#e74c3c" %)Concept(%%) these are maintained in a flat structure and therefore do not have a containerobject-id.
467 467  
468 -For example, the sequence is agency:DSDid((% style="color:#e74c3c" %)version(%%)).DimensionId and not agency:DSDid((% style="color:#e74c3c" %)version(%%)).DimensionDescriptorId.DimensionId.
466 +For example, the sequence is agency:DSDid(version).DimensionId and not agency:DSDid(version).DimensionDescriptorId.DimensionId.
469 469  
470 470  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.
471 471  
472 -===== //__**Generic Examples of the URN Structure**__// =====
470 +(% class="wikigeneratedid" id="HGenericExamplesoftheURNStructure" %)
471 +//__**Generic Examples of the URN Structure**__//
473 473  
474 474  __Actual object is a maintainable__
475 475  
476 -SDMXPrefix.[[SDMX-IM>>doc:Glossary.SDMX Information Model.WebHome]]-package-name.classname=agencyid:maintained-objectid((% style="color:#e74c3c" %)version(%%))
475 +SDMXPrefix.[[SDMX-IM>>doc:Glossary.SDMX Information Model.WebHome]]-package-name.classname=agencyid:maintained-objectid(version)
477 477  
478 478  __Actual object is contained in a maintained object with no intermediate containing object__
479 479  
480 -SDMXPrefix.[[SDMX-IM>>doc:Glossary.SDMX Information Model.WebHome]]-package-name.classname=agencyid:maintained-objectid((% style="color:#e74c3c" %)version(%%)).object-id
479 +SDMXPrefix.[[SDMX-IM>>doc:Glossary.SDMX Information Model.WebHome]]-package-name.classname=agencyid:maintained-objectid(version).object-id
481 481  
482 482  __Actual object is contained in a maintained object with an intermediate containing object__
483 483  
484 -SDMXPrefix.[[SDMX-IM>>doc:Glossary.SDMX Information Model.WebHome]]-package-name.classname=agencyid:maintained-objectid((% style="color:#e74c3c" %)version(%%)).contained-object-id.object-id
483 +SDMXPrefix.[[SDMX-IM>>doc:Glossary.SDMX Information Model.WebHome]]-package-name.classname=agencyid:maintained-objectid(version).contained-object-id.object-id
485 485  
486 486  __Actual object is contained in a maintained object with no intermediate containing__ __object but__ __the object type itself is hierarchical__
487 487  
488 488  In this case the object id may not be unique in itself but only within the context of the [[hierarchy>>doc:Glossary.Hierarchy.WebHome]]. In the general syntax of the URN all intermediary objects in the structure (with the exception, of course, of the maintained object) are shown as a contained object. An example here would be a [[Category>>doc:Glossary.Category.WebHome]] in a CategoryScheme. The [[Category>>doc:Glossary.Category.WebHome]] is hierarchical, and all intermediate [[Categories>>doc:Glossary.Category.WebHome]] are shown as a contained object. The example below shows the generic structure for CategoryScheme/ [[Category>>doc:Glossary.Category.WebHome]]/ [[Category>>doc:Glossary.Category.WebHome]].
489 489  
490 -SDMXPrefix.[[SDMX-IM>>doc:Glossary.SDMX Information Model.WebHome]]-package-name.classname=agencyid:maintained-objectid((% style="color:#e74c3c" %)version(%%)).contained-object-id.object-id
489 +SDMXPrefix.[[SDMX-IM>>doc:Glossary.SDMX Information Model.WebHome]]-package-name.classname=agencyid:maintained-objectid(version).contained-object-id.object-id
491 491  
492 492  Actual object is contained in a maintained object with an intermediate containing object and the object type itself is hierarchical
493 493  
494 494  In this case the generic syntax is the same as for the example above as the parent object is regarded as a containing object, even if it is of the same type. An example here is a MetadataAttribute where the contained objects are MetadataAttributeDescriptor (first contained object id) and MetadataAttribute (subsequent contained object ids). The example below shows the generic structure for [[MSD>>doc:Glossary.Metadata structure definition.WebHome]]/ MetadataAttributeDescriptor/ MetadataAttribute/ MetadataAttribute
495 495  
496 -SDMXPrefix.[[SDMX-IM>>doc:Glossary.SDMX Information Model.WebHome]]-package-name.classname=agencyid:maintained-objectid((% style="color:#e74c3c" %)version(%%)).contained-object-id.contained-object-id contained-objectid.object-id
495 +SDMXPrefix.[[SDMX-IM>>doc:Glossary.SDMX Information Model.WebHome]]-package-name.classname=agencyid:maintained-objectid(version).contained-object-id.contained-object-id contained-objectid.object-id
497 497  
498 -===== //__**Concrete Examples of the URN Structure**__// =====
497 +(% class="wikigeneratedid" id="HConcreteExamplesoftheURNStructure" %)
498 +//__**Concrete Examples of the URN Structure**__//
499 499  
500 500  The [[Data Structure Definition>>doc:Glossary.Data structure definition.WebHome]] CRED_EXT_DEBT of legacy (% style="color:#e74c3c" %)version(%%) 2.1 maintained by the toplevel Agency TFFS would have the URN:
501 501