Last modified by Helena on 2025/09/10 11:19
Summary
-
Page properties (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -xwiki:XWiki. arturkryazhev1 +xwiki:XWiki.helena - 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://github.com /sdmx-twg/sdmx-rest]]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]]).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]]). 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://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/__>>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: 192 192 193 193 * Structure 194 194 ... ... @@ -296,12 +296,14 @@ 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 -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: 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 + 302 302 a) Be a draft (% style="color:#e74c3c" %)version(%%). 304 +))) 305 +|(% style="width:188px" %) |(% style="width:542px" %)((( 303 303 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 - 305 305 4) The semantic versioning rules in the [[SDMX>>doc:Glossary.Statistical data and metadata exchange.WebHome]] documentation MUST be obeyed. 306 306 ))) 307 307 |(% 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]]. ... ... @@ -426,7 +426,7 @@ 426 426 427 427 For the URN, all parts of the string are case sensitive. The generic structure of the URN is as follows: 428 428 429 -SDMXprefix.SDMX-IM-package-name.class-name=agencyid:maintainedobjectid(maintainedobject-version).*containerobject-id.object-id 431 +SDMXprefix.SDMX-IM-package-name.class-name=agencyid:maintainedobjectid(maintainedobject-(% style="color:#e74c3c" %)version(%%)).*containerobject-id.object-id 430 430 431 431 ~* this can repeat and may not be present (see explanation below) 432 432 ... ... @@ -457,13 +457,13 @@ 457 457 458 458 **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. 459 459 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. 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. 461 461 462 462 **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. 463 463 464 464 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. 465 465 466 -For example, the sequence is agency:DSDid(version).DimensionId and not agency:DSDid(version).DimensionDescriptorId.DimensionId. 468 +For example, the sequence is agency:DSDid((% style="color:#e74c3c" %)version(%%)).DimensionId and not agency:DSDid((% style="color:#e74c3c" %)version(%%)).DimensionDescriptorId.DimensionId. 467 467 468 468 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. 469 469 ... ... @@ -472,27 +472,27 @@ 472 472 473 473 __Actual object is a maintainable__ 474 474 475 -SDMXPrefix.[[SDMX-IM>>doc:Glossary.SDMX Information Model.WebHome]]-package-name.classname=agencyid:maintained-objectid(version) 477 +SDMXPrefix.[[SDMX-IM>>doc:Glossary.SDMX Information Model.WebHome]]-package-name.classname=agencyid:maintained-objectid((% style="color:#e74c3c" %)version(%%)) 476 476 477 477 __Actual object is contained in a maintained object with no intermediate containing object__ 478 478 479 -SDMXPrefix.[[SDMX-IM>>doc:Glossary.SDMX Information Model.WebHome]]-package-name.classname=agencyid:maintained-objectid(version).object-id 481 +SDMXPrefix.[[SDMX-IM>>doc:Glossary.SDMX Information Model.WebHome]]-package-name.classname=agencyid:maintained-objectid((% style="color:#e74c3c" %)version(%%)).object-id 480 480 481 481 __Actual object is contained in a maintained object with an intermediate containing object__ 482 482 483 -SDMXPrefix.[[SDMX-IM>>doc:Glossary.SDMX Information Model.WebHome]]-package-name.classname=agencyid:maintained-objectid(version).contained-object-id.object-id 485 +SDMXPrefix.[[SDMX-IM>>doc:Glossary.SDMX Information Model.WebHome]]-package-name.classname=agencyid:maintained-objectid((% style="color:#e74c3c" %)version(%%)).contained-object-id.object-id 484 484 485 485 __Actual object is contained in a maintained object with no intermediate containing__ __object but__ __the object type itself is hierarchical__ 486 486 487 487 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]]. 488 488 489 -SDMXPrefix.[[SDMX-IM>>doc:Glossary.SDMX Information Model.WebHome]]-package-name.classname=agencyid:maintained-objectid(version).contained-object-id.object-id 491 +SDMXPrefix.[[SDMX-IM>>doc:Glossary.SDMX Information Model.WebHome]]-package-name.classname=agencyid:maintained-objectid((% style="color:#e74c3c" %)version(%%)).contained-object-id.object-id 490 490 491 491 Actual object is contained in a maintained object with an intermediate containing object and the object type itself is hierarchical 492 492 493 493 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 494 494 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 +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 496 496 497 497 (% class="wikigeneratedid" id="HConcreteExamplesoftheURNStructure" %) 498 498 //__**Concrete Examples of the URN Structure**__//