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.2
edited by Helena
on 2025/05/15 14:07
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -11,7 +11,7 @@
11 11  |(% style="width:188px" %)1.0|(% style="width:205px" %)October 2021|(% style="width:441px" %)Public release for SDMX 3.0
12 12  )))
13 13  
14 -= 1 Introduction =
14 += {{id name="_Toc93831"/}}1 Introduction =
15 15  
16 16  The business vision for SDMX envisages the promotion of a “data sharing” model to facilitate low-cost, high-quality statistical data and metadata exchange. Data sharing reduces the reporting burden of organisations by allowing them to publish data once and let their counterparties “pull” data and related metadata as required. The scenario is based on:
17 17  
... ... @@ -33,10 +33,12 @@
33 33  
34 34  These architectural standards address the ‘how’, rather than the ‘what’, and are aimed at enabling existing SDMX standards to achieve their mission. The architectural standards address registry services, which initially comprise:
35 35  
36 -* structural metadata repository
37 -* data and metadata registration
38 -* query
36 +• structural metadata repository
39 39  
38 +• data and metadata registration
39 +
40 +• query
41 +
40 40  The registry services outlined in this specification are designed to help the SDMX community manage the proliferation of SDMX assets and to support data sharing for reporting and dissemination.
41 41  
42 42  = {{id name="_Toc93832"/}}2 Scope and Normative Status =
... ... @@ -79,8 +79,7 @@
79 79  
80 80  [[image:SDMX 3-0-0 SECTION 5 FINAL-1.0_en_28806f51.jpg||height="539" width="443"]]
81 81  
82 -(% class="wikigeneratedid" id="HFigure1:SchematicoftheBasicStructuralArtefactsintheSDMX-IM" %)
83 -**Figure 1: Schematic of the Basic Structural Artefacts in the SDMX-IM**
84 +====== Figure 1: Schematic of the Basic Structural Artefacts in the SDMX-IM ======
84 84  
85 85  Note that in Figure 1 (but also most of the relevant subsequent figures) terms that include both data and metadata have been used. For example:
86 86  
... ... @@ -107,7 +107,7 @@
107 107  
108 108  Notifying interested parties of newly published or re-published data, reference metadata or changes in structural metadata involves:
109 109  
110 -* registry support of a subscription-based notification service which sends an email or notifies an HTTP address announcing all published data that meets the criteria contained in the subscription request.
111 + registry support of a subscription-based notification service which sends an email or notifies an HTTP address announcing all published data that meets the criteria contained in the subscription request.
111 111  
112 112  == {{id name="_Toc93838"/}}3.5 Discovery ==
113 113  
... ... @@ -166,8 +166,9 @@
166 166  
167 167  The registry interfaces are invoked in one of two ways:
168 168  
169 -1. The interface is the name of the root node of the SDMX-ML document
170 -1. The interface is invoked as a child element of the RegistryInterface message where the RegistryInterface is the root node of the SDMX-ML document.
170 +*
171 +*1. The interface is the name of the root node of the SDMX-ML document
172 +*1. The interface is invoked as a child element of the RegistryInterface message where the RegistryInterface is the root node of the SDMX-ML document.
171 171  
172 172  In addition to these interfaces the registry must support a mechanism for submitting and querying for structural metadata. This is detailed in sections 5.2.2 and 5.2.3.
173 173  
... ... @@ -243,22 +243,23 @@
243 243  * that the components (Dimensions, Attributes, Measures, Metadata Attributes, etc.) are consistent with the Data Structure Definition or Metadata Structure Definition;
244 244  * that the valid representations of the concepts to which these components correspond conform to the definition in the Data Structure Definition or Metadata Structure Definition. The Registration has an action attribute which takes one of the following values:
245 245  
246 -(% style="width:755.294px" %)
247 -|(% style="width:187px" %)**Action Attribute Value**|(% style="width:566px" %)**Behaviour**
248 -|(% style="width:187px" %)Append|(% style="width:566px" %)Add this registration to the registry
249 -|(% style="width:187px" %)Replace|(% style="width:566px" %)Replace the existing Registration with this Registration identified by the id in the Registration of the Submit Registration Request
250 -|(% style="width:187px" %)Delete|(% style="width:566px" %)Delete the existing Registration identified by the id in the Registration of the Submit Registration Request
248 +|**Action Attribute Value**|**Behaviour**
249 +|Append|Add this registration to the registry
250 +|Replace|Replace the existing Registration with this Registration identified by the id in the Registration of the Submit Registration Request
251 +|Delete|Delete the existing Registration identified by the id in the Registration of the Submit Registration Request
251 251  
252 252  The Registration has three Boolean attributes which may be present to determine how an SDMX compliant dataset or metadataset indexing application must index the datasets or metadatasets upon registration. The indexing application behaviour is as follows:
253 253  
254 -(% style="width:759.294px" %)
255 -|(% style="width:191px" %)**Boolean Attribute**|(% style="width:565px" %)**Behaviour if Value is “true”**
256 -|(% style="width:191px" %)indexTimeSeries|(% style="width:565px" %)A compliant indexing application must index all the time series keys (for a Dataset registration) or metadata target values (for a Metadataset registration)
257 -|(% style="width:191px" %)indexDataSet|(% style="width:565px" %)(((
258 -A compliant indexing application must index the range of actual (present) values for each dimension of the Dataset (for a Dataset registration) or the range of actual (present) values for each Metadata Attribute which takes an enumerated value.
255 +|**Boolean Attribute**|**Behaviour if Value is “true”**
256 +|indexTimeSeries|A compliant indexing application must index all the time series keys (for a Dataset registration) or metadata target values (for a Metadataset registration)
257 +|indexDataSet|(((
258 +A compliant indexing application must index the range of actual
259 +
260 +(present) values for each dimension of the Dataset (for a Dataset registration) or the range of actual (present) values for each Metadata Attribute which takes an enumerated value.
261 +
259 259  Note that for data this requires much less storage than full key indexing, but this method cannot guarantee that a specific combination of Dimension values (the Key) is actually present in the Dataset
260 260  )))
261 -|(% style="width:191px" %)indexReportingPeriod|(% style="width:565px" %)A compliant indexing application must index the time period range(s) for which data are present in the Dataset. The validity period of the Metadatasets may also be indexed.
264 +|indexReportingPeriod|A compliant indexing application must index the time period range(s) for which data are present in the Dataset. The validity period of the Metadatasets may also be indexed.
262 262  
263 263  === {{id name="_Toc93850"/}}5.2.5 Data and Reference Metadata Discovery ===
264 264  
... ... @@ -292,9 +292,8 @@
292 292  
293 293  Given the above, the behaviour described in the following table concerns either draft Artefacts using semantic versioning or any Artefacts using the old versioning scheme. Nevertheless, in the case of semantic versioning the registry must respect the versioning rules when performing the actions below. For example, it is not possible to replace a non-draft Artefact that follows semantic versioning, unless a newer version is introduced according to the semantic versioning rules. Furthermore, even when draft Artefacts are submitted, the registry has to verify semantic versioning is respected against the previous non-draft versions. It is worth noting that the rules for semantic versioning and replacing or maintaining semantically versioned Artefacts applies to externally shared Artefacts. This means that any system may internally perform any change within a version of an Artefact, until the latter is shared outside of that system or becomes public. Then (as also explained in the SDMX Standards Section 6 “Technical Notes”) the Artefacts must adhere to the Semantic Versioning rules.
294 294  
295 -(% style="width:757.294px" %)
296 -|(% style="width:188px" %)**Interface**|(% style="width:542px" %)**Behaviour**
297 -|(% style="width:188px" %)All|(% style="width:542px" %)(((
298 +|**Interface**|**Behaviour**
299 +|All|(((
298 298  1. If the action is set to “replace” (or a maintainable Artefact is PUT or POSTed) then the entire contents of the existing maintainable object in the Registry MUST be replaced by the object submitted.
299 299  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.
300 300  1. If the action is set to “delete” (or a maintainable Artefact is DELETEd) then the Registry MUST verify that the object can be deleted. In order to qualify for deletion, the object must:
... ... @@ -301,14 +301,14 @@
301 301  
302 302  a) Be a draft version.
303 303  )))
304 -|(% style="width:188px" %)**Interface**|(% style="width:542px" %)**Behaviour**
305 -|(% style="width:188px" %) |(% style="width:542px" %)(((
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.
306 +|**Interface**|**Behaviour**
307 +| |(((
308 +b) Not be explicitly^^[[(% class="wikiinternallink wikiinternallink" %)^^1^^>>path:#sdfootnote1sym||name="sdfootnote1anc"]](%%)^^ referenced from any other object in the Registry.
307 307  
308 308  4) The semantic versioning rules in the SDMX documentation MUST be obeyed.
309 309  )))
310 -|(% style="width:188px" %)Structure submission|(% style="width:542px" %)Structures are submitted at the level of the Maintainable Artefact and the behaviour in “All” above is therefore at the level of the Maintainable Artefact.
311 -|(% style="width:188px" %)SubmitRegistrationRequest|(% style="width:542px" %)If the datasource is a file (simple datasource) then the file MAY be retrieved and indexed according to the Boolean attributes set in the Registration. For a queryable datasource the Registry MAY validate that the source exists and can accept an SDMX data query.
312 +|Structure submission|Structures are submitted at the level of the Maintainable Artefact and the behaviour in “All” above is therefore at the level of the Maintainable Artefact.
313 +|SubmitRegistrationRequest|If the datasource is a file (simple datasource) then the file MAY be retrieved and indexed according to the Boolean attributes set in the Registration. For a queryable datasource the Registry MAY validate that the source exists and can accept an SDMX data query.
312 312  
313 313  = {{id name="_Toc93853"/}}6 Identification of SDMX Objects =
314 314  
... ... @@ -338,28 +338,27 @@
338 338  :
339 339  
340 340  (((
341 -(% style="width:1052.29px" %)
342 -|**Object Type**|(% style="width:241px" %)**Data Attributes**|(% style="width:156px" %)**Status**|**Data type**|(% style="width:457px" %)**Notes**
343 -|(% rowspan="4" %)//Annotable//|(% style="width:241px" %)AnnotationTitle|(% style="width:156px" %)C|string|(% style="width:457px" %)
344 -|(% style="width:241px" %)AnnotationType|(% style="width:156px" %)C|string|(% style="width:457px" %)
345 -|(% style="width:241px" %)AnnotationURN|(% style="width:156px" %)C|string|(% style="width:457px" %)
346 -|(% style="width:241px" %)AnnotationText in the form of InternationalString|(% style="width:156px" %)C| |(% style="width:457px" %)This can have languagespecific variants
347 -|(% rowspan="4" %)//Identifiable//|(% style="width:241px" %)All content as for //Annotable// plus|(% style="width:156px" %) | |(% style="width:457px" %)
348 -|(% style="width:241px" %)id|(% style="width:156px" %)M|string|(% style="width:457px" %)
349 -|(% style="width:241px" %)uri|(% style="width:156px" %)C|string|(% style="width:457px" %)
350 -|(% style="width:241px" %)urn|(% style="width:156px" %)C|string|(% style="width:457px" %)Although the urn is computable and therefore may not be submitted or stored physically, the Registry must return the urn for each object, and must be able to service a query on an object referenced solely by its urn.
351 -|(% rowspan="3" %)//Nameable//|(% style="width:241px" %)All content as for //Identifiable// plus|(% style="width:156px" %) | |(% style="width:457px" %)
352 -|(% style="width:241px" %)Name in the form of InternationalString|(% style="width:156px" %)M|string|(% style="width:457px" %)This can have language specific variants.
353 -|(% style="width:241px" %)Description in the form of InternationalString|(% style="width:156px" %)C|string|(% style="width:457px" %)This can have language specific variants.
354 -|(% rowspan="4" %)//Versionable//|(% style="width:241px" %)All content as for //Identifiable// plus|(% style="width:156px" %) | |(% style="width:457px" %)
355 -|(% style="width:241px" %)version|(% style="width:156px" %)M|string|(% style="width:457px" %)This is the version number according to SDMX versioning rules.
356 -|(% style="width:241px" %)validFrom|(% style="width:156px" %)C|Date/time|(% style="width:457px" %)
357 -|(% style="width:241px" %)validTo|(% style="width:156px" %)C|Date/time|(% style="width:457px" %)
358 -|//Maintainable//|(% style="width:241px" %)All content as for //Versionable// plus|(% style="width:156px" %) | |(% style="width:457px" %)
359 -| |(% style="width:241px" %)isExternalReference|(% style="width:156px" %)C|boolean|(% style="width:457px" %)Value of “true” indicates that the actual resource is held outside of this registry. The actual reference is given in the registry URI or the structureURL, each of which must return a valid SDMX-ML file.
360 -| |(% style="width:241px" %)serviceURL|(% style="width:156px" %)C|string|(% style="width:457px" %)The url of the service that can be queried for this resource.
361 -| |(% style="width:241px" %)structureURL|(% style="width:156px" %)C|string|(% style="width:457px" %)The url of the resource.
362 -| |(% style="width:241px" %)(Maintenance) organisationId|(% style="width:156px" %)M|string|(% style="width:457px" %)The object must be linked to a maintenance organisation, i.e., Agency or Metadata Provider.
343 +|**Object Type**|**Data Attributes**|**Status**|**Data type**|**Notes**
344 +|(% rowspan="4" %)//Annotable//|AnnotationTitle|C|string|
345 +|AnnotationType|C|string|
346 +|AnnotationURN|C|string|
347 +|AnnotationText in the form of InternationalString|C| |This can have languagespecific variants
348 +|(% rowspan="4" %)//Identifiable//|All content as for //Annotable// plus| | |
349 +|id|M|string|
350 +|uri|C|string|
351 +|urn|C|string|Although the urn is computable and therefore may not be submitted or stored physically, the Registry must return the urn for each object, and must be able to service a query on an object referenced solely by its urn.
352 +|(% rowspan="3" %)//Nameable//|All content as for //Identifiable// plus| | |
353 +|Name in the form of InternationalString|M|string|This can have language specific variants.
354 +|Description in the form of InternationalString|C|string|This can have language specific variants.
355 +|(% rowspan="4" %)//Versionable//|All content as for //Identifiable// plus| | |
356 +|version|M|string|This is the version number according to SDMX versioning rules.
357 +|validFrom|C|Date/time|
358 +|validTo|C|Date/time|
359 +|//Maintainable//|All content as for //Versionable// plus| | |
360 +| |isExternalReference|C|boolean|Value of “true” indicates that the actual resource is held outside of this registry. The actual reference is given in the registry URI or the structureURL, each of which must return a valid SDMX-ML file.
361 +| |serviceURL|C|string|The url of the service that can be queried for this resource.
362 +| |structureURL|C|string|The url of the resource.
363 +| |(Maintenance) organisationId|M|string|The object must be linked to a maintenance organisation, i.e., Agency or Metadata Provider.
363 363  )))
364 364  
365 365  **Table 1: Common Attributes of Object Types**
... ... @@ -440,13 +440,13 @@
440 440  
441 441  Following the same principles, the Metadata Provider is the maintenance organisation for a special subset of Maintainable Artefacts, i.e., the Metadatasets; the latter are the containers of reference metadata combined with a target that those metadata refer to.
442 442  
443 -=== {{id name="_Toc93858"/}}6.2.2 Universal Resource Name (URN) ===
444 +===== {{id name="_Toc93858"/}}6.2.2 Universal Resource Name (URN) =====
444 444  
445 -==== 6.2.2.1 Introduction ====
446 +**6.2.2.1 Introduction**
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__ // ====
450 +**6.2.2.2 URN Structure //__Case Rules for URN__//**// //
450 450  
451 451  For the URN, all parts of the string are case sensitive. The generic structure of the URN is as follows:
452 452  
... ... @@ -624,7 +624,7 @@
624 624  urn:sdmx.org.sdmx.infomodel.{package}.{classname}=
625 625  
626 626  |**Classname**|**Ending URN pattern**|**Example**
627 -|Agency^^[[(% class="wikiinternallink wikiinternallink wikiinternallink" %)^^2^^>>path:#sdfootnote2sym||name="sdfootnote2anc"]](%%)^^|agencySchemeAgencyId:**AGENCIES**(**1.0**).agencyId|ECB:**AGENCIES**(**1.0**).AA
628 +|Agency^^[[(% class="wikiinternallink wikiinternallink" %)^^2^^>>path:#sdfootnote2sym||name="sdfootnote2anc"]](%%)^^|agencySchemeAgencyId:**AGENCIES**(**1.0**).agencyId|ECB:**AGENCIES**(**1.0**).AA
628 628  |//AgencyScheme//|agencySchemeAgencyId:**AGENCIES**(**1.0**)|ECB:**AGENCIES**(**1.0**)
629 629  |//Categorisation//|categorisationAgencyId:categorisationId(version)|IMF:cat001(1.0.0)
630 630  |Category|categorySchemeAgencyId:categorySchemeId(versi on).categoryId.categoryId.categoryId etc.|IMF:SDDS(1.0.0):level_1_category.level_2_category …
... ... @@ -841,7 +841,7 @@
841 841  
842 842  • All types of Item Scheme (Codelist, Concept Scheme, Category Scheme, Organisation Scheme, Agency Scheme, Data Provider Scheme, Metadata Provider Scheme, Data Consumer Scheme, Organisation Unit Scheme, Transformation Scheme, Name Personalisation Scheme, Custom Type Scheme, Vtl Mapping Scheme, Ruleset Scheme, User Defined Operator Scheme)
843 843  
844 -• All types of Enumerated List (ValueList)^^[[(% class="wikiinternallink wikiinternallink wikiinternallink" %)^^3^^>>path:#sdfootnote3sym||name="sdfootnote3anc"]](%%)^^
845 +• All types of Enumerated List (ValueList)^^[[(% class="wikiinternallink wikiinternallink" %)^^3^^>>path:#sdfootnote3sym||name="sdfootnote3anc"]](%%)^^
845 845  
846 846  • All types of Structure (Data Structure Definition, Metadata Structure Definition)
847 847  
... ... @@ -1186,5 +1186,3 @@
1186 1186  IMF.SubAgency1
1187 1187  
1188 1188  [[3>>path:#sdfootnote3anc||name="sdfootnote3sym"]] Note that Codelist is also an EnumeratedList.
1189 -
1190 -{{putFootnotes/}}