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

From version 2.3
edited by Helena
on 2025/05/21 14:19
Change comment: There is no comment for this version
To version 1.1
edited by Helena
on 2025/05/21 13:44
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -192,8 +192,10 @@
192 192  
193 193  In addition to these interfaces the registry must support a mechanism for querying for structural metadata. This is detailed in 5.2.2.
194 194  
195 -All these interactions with the Registry – with the exception of Notify Registry Event – are designed in pairs. The first document – the one which invokes the SDMX-RR interface, is a “Request” document. The message returned by the interface is a “Response” document.
195 +All these interactions with the Registry – with the exception of Notify Registry Event – are designed in pairs. The first document – the one which invokes the SDMX-RR interface, is a “Request” document. The message returned by the interface is a
196 196  
197 +“Response” document.
198 +
197 197  It should be noted that all interactions are assumed to be synchronous, with the exception of Notify Registry Event. This document is sent by the SDMX-RR to all subscribers whenever an even occurs to which any users have subscribed. Thus, it does not conform to the request-response pattern, because it is inherently asynchronous.
198 198  
199 199  == 5.2 Registry Services ==
... ... @@ -292,13 +292,15 @@
292 292  
293 293  3The Registration has an action attribute which takes one of the following values:
294 294  
295 -|(% style="width:249px" %)(((
296 -**Action Attribute Value**
297 -)))|(% style="width:1622px" %)**Behaviour**
298 -|(% style="width:249px" %)Append|(% style="width:1622px" %)Add this registration to the registry
299 -|(% style="width:249px" %)Replace|(% style="width:1622px" %)Replace the existing Registration with this Registration identified by the id in the Registration of the Submit Registration Request
300 -|(% style="width:249px" %)Delete|(% style="width:1622px" %)Delete the existing Registration identified by the id in the Registration of the Submit Registration Request
297 +|(((
298 +**Action**
301 301  
300 +**Attribute Value**
301 +)))|**Behaviour**
302 +|Append|Add this registration to the registry
303 +|Replace|Replace the existing Registration with this Registration identified by the id in the Registration of the Submit Registration Request
304 +|Delete|Delete the existing Registration identified by the id in the Registration of the Submit Registration Request
305 +
302 302  The Registration has three Boolean attributes which may be present to determine how an SDMX compliant Dataset or Metadata Set indexing application must index the Datasets or Metadata Set upon registration. The indexing application behaviour is as follows:
303 303  
304 304  |**Boolean Attribute**|**Behaviour if Value is “true”**
... ... @@ -314,9 +314,10 @@
314 314  
315 315  The Data and Metadata Discovery Service implements the following Registry Interfaces:
316 316  
317 -* QueryRegistrationRequest
318 -* QueryRegistrationResponse
321 + QueryRegistrationRequest
319 319  
323 + QueryRegistrationResponse
324 +
320 320  === 5.2.6 Subscription and Notification ===
321 321  
322 322  The Subscription and Notification Service implements the following Registry Interfaces:
... ... @@ -340,12 +340,13 @@
340 340  
341 341  The following table defines the behaviour of the SDMX Registry for the various Registry Interface messages.
342 342  
343 -|(% style="width:244px" %)**Interface**|**Behaviour**
344 -|(% style="width:244px" %)All|(((
348 +|**Interface**|**Behaviour**
349 +|All|(((
345 345  1) If the action is set to “replace” then the entire contents of the existing maintainable object in the Registry MUST be replaced by the object submitted, unless the final attribute is set to “true” in which case the only changes that are allowed are to the following constructs:
346 346  
347 347  * Name – this applies to the Maintainable object and its contained elements, such a Code in a Code list.
348 348  * Description - this applies to the Maintainable object and its contained elements, such a Code in a Code list.
354 +
349 349  * Annotation - this applies to the Maintainable object and its contained elements, such a Code in a Code list.
350 350  * validTo
351 351  * validFrom
... ... @@ -354,24 +354,26 @@
354 354  * uri
355 355  * isExternalReference
356 356  
357 -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.
363 +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.
364 +1. If the action is set to “delete” then the Registry MUST verify that the object can deleted. In order to qualify for deletion the object must:
358 358  
359 -3) If the action is set to “delete” then the Registry MUST verify that the object can deleted. In order to qualify for deletion the object must:
366 +1. Not have the final attribute set to “true”
367 +1. Not be referenced from any other object in the Registry.
360 360  
361 -а) Not have the final attribute set to “true”
362 -b) Not be referenced from any other object in the Registry.
369 +1. The version rules in the SDMX Schema documentation MUST be obeyed.
363 363  
364 -4) The version rules in the SDMX Schema documentation MUST be obeyed.
365 -
366 -5) The specific rules for the elements and attributes documented in the SDMX Schema MUST be obeyed.
371 +* The specific rules for the elements and attributes documented in the SDMX Schema MUST be obeyed.
367 367  )))
368 -|(% style="width:244px" %)SubmitStructureRequest|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.
369 -|(% style="width:244px" %)SubmitProvisioningRequest|No additional behaviour.
370 -|(% style="width:244px" %)Submit Registration Request|(((
373 +|SubmitStructureRequest|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.
374 +|SubmitProvisioningRequest|No additional behaviour.
375 +|Submit Registration Request|(((
371 371  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.
377 +
372 372  For a queryable datasource the Registry MAY validate that the source exists and can accept an SDMX-ML data query.
373 373  )))
374 374  
381 +
382 +
375 375  = 6 Identification of SDMX Objects =
376 376  
377 377  == 6.1 Identification, Versioning, and Maintenance ==
... ... @@ -378,6 +378,7 @@
378 378  
379 379  All major classes of the SDMX Information model inherit from one of:
380 380  
389 +
381 381  * **IdentifiableArtefact** - this gives an object the ability to be uniquely identified (see following section on identification), to have a user-defined URI, and to have multi-lingual annotations.
382 382  * **NamableArtefact **- this has all of the features of IdentifiableArtefact plus the ability to have a multi-lingual name and description,
383 383  * **VersionableArtefact **– this has all of the above features plus a version number and a validity period.
... ... @@ -385,8 +385,6 @@
385 385  
386 386  === 6.1.1 Identification, Naming, Versioning, and Maintenance Model ===
387 387  
388 -[[image:1747824504225-229.png]]
389 -
390 390  **Figure 5: Class diagram of fundamental artefacts in the SDMX-IM**
391 391  
392 392  The table below shows the identification and related data attributes to be stored in a registry for objects that are one of:
... ... @@ -397,34 +397,38 @@
397 397  * Versionable
398 398  * Maintainable
399 399  
400 -(% style="width:935.294px" %)
401 -|**Object Type**|(% style="width:244px" %)**Data Attributes**|(% style="width:99px" %)**Status**|**Data type**|(% style="width:389px" %)**Notes**
402 -|Annotable|(% style="width:244px" %)AnnotationTitle|(% style="width:99px" %)C|string|(% style="width:389px" %)
403 -| |(% style="width:244px" %)AnnotationType|(% style="width:99px" %)C|string|(% style="width:389px" %)
404 -| |(% style="width:244px" %)AnnotationURN|(% style="width:99px" %)C|string|(% style="width:389px" %)
405 -| |(% style="width:244px" %)(((
406 -AnnotationText in the form of International String
407 -)))|(% style="width:99px" %)C| |(% style="width:389px" %)This can have languagespecific variants.
408 -|Identifiable|(% style="width:244px" %)all content as for Annotable plus|(% style="width:99px" %) | |(% style="width:389px" %)
409 -| |(% style="width:244px" %)id|(% style="width:99px" %)M|string|(% style="width:389px" %)
410 -| |(% style="width:244px" %)uri|(% style="width:99px" %)C|string|(% style="width:389px" %)
411 -| |(% style="width:244px" %)urn|(% style="width:99px" %)C|string|(% style="width:389px" %)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.
412 -|Nameable|(% style="width:244px" %)all content as for Identifiable plus|(% style="width:99px" %) | |(% style="width:389px" %)
413 -| |(% style="width:244px" %)Name in the form of International String|(% style="width:99px" %)M|string|(% style="width:389px" %)This can have languagespecific variants.
414 -| |(% style="width:244px" %)(((
415 -Description in the form of International String
416 -)))|(% style="width:99px" %)C|string|(% style="width:389px" %)This can have languagespecific variants.
417 -|Versionable|(% style="width:244px" %)All content as for Identifiable plus|(% style="width:99px" %) | |(% style="width:389px" %)
418 -| |(% style="width:244px" %)version|(% style="width:99px" %)C|string|(% style="width:389px" %)This is the version number. If not present the default is 1.0
419 -| |(% style="width:244px" %)validFrom|(% style="width:99px" %)C|Date/time|(% style="width:389px" %)
420 -| |(% style="width:244px" %)validTo|(% style="width:99px" %)C|Date/time|(% style="width:389px" %)
421 -|Maintainable|(% style="width:244px" %)All content as for Versionable plus|(% style="width:99px" %) | |(% style="width:389px" %)
422 -| |(% style="width:244px" %)final|(% style="width:99px" %) |boolean|(% style="width:389px" %)Value of “true” indicates that this is a final specification and it cannot be changed except as a new version. Note that providing a “final’ object is not referenced from another object then it may be deleted.
423 -| |(% style="width:244px" %)isExternalReference|(% style="width:99px" %)C|boolean|(% style="width:389px" %)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 structureURI, each of which must return a valid SDMX-ML file.
424 -| |(% style="width:244px" %)serviceURL|(% style="width:99px" %)C|string|(% style="width:389px" %)The url of the service that can be queried for this resource
425 -| |(% style="width:244px" %)structureURL|(% style="width:99px" %)C|string|(% style="width:389px" %)The url of the resource.
426 -| |(% style="width:244px" %)(Maintenance) agencyId|(% style="width:99px" %)M|string|(% style="width:389px" %)The object must be linked to a maintenance agency.
407 +|**Object Type**|**Data Attributes**|**Status**|**Data type**|**Notes**
408 +|Annotable|AnnotationTitle|C|string|
409 +| |AnnotationType|C|string|
410 +| |AnnotationURN|C|string|
411 +| |(((
412 +AnnotationText in the form of
427 427  
414 +International String
415 +)))|C| |This can have languagespecific variants.
416 +| | | | |
417 +|Identifiable|all content as for Annotable plus| | |
418 +| |id|M|string|
419 +| |uri|C|string|
420 +| |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.
421 +|Nameable|all content as for Identifiable plus| | |
422 +| |Name in the form of International String|M|string|This can have languagespecific variants.
423 +| |(((
424 +Description in the form of International
425 +
426 +String
427 +)))|C|string|This can have languagespecific variants.
428 +|Versionable|All content as for Identifiable plus| | |
429 +| |version|C|string|This is the version number. If not present the default is 1.0
430 +| |validFrom|C|Date/time|
431 +| |validTo|C|Date/time|
432 +|Maintainable|All content as for Versionable plus| | |
433 +| |final| |boolean|Value of “true” indicates that this is a final specification and it cannot be changed except as a new version. Note that providing a “final’ object is not referenced from another object then it may be deleted.
434 +| |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 structureURI, each of which must return a valid SDMX-ML file.
435 +| |serviceURL|C|string|The url of the service that can be queried for this resource
436 +| |structureURL|C|string|The url of the resource.
437 +| |(Maintenance) agencyId|M|string|The object must be linked to a maintenance agency.
438 +
428 428  **Table 1: Common Attributes of Object Types**
429 429  
430 430  == 6.2 Unique identification of SDMX objects ==
... ... @@ -469,11 +469,11 @@
469 469  
470 470  An example of this is shown in the XML snippet below.
471 471  
472 -[[image:1747824123013-196.jpeg||height="309" width="446"]]
473 473  
474 -(% class="wikigeneratedid" id="HFigure8:ExampleShowingUseofAgencyIdentifiers" %)
475 -**Figure 8: Example Showing Use of Agency Identifiers**
484 +[[image:1747824123013-196.jpeg]]
476 476  
486 +==== Figure 8: Example Showing Use of Agency Identifiers ====
487 +
477 477  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.
478 478  
479 479  === 6.2.2 Universal Resource Name (URN) ===
... ... @@ -512,8 +512,10 @@
512 512  
513 513  **(maintainable-object-version)** is the version of the maintainable object and is enclosed in round brackets (). It will always be present.
514 514  
515 -**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 (Code List) and has no intermediary container object, whereas a Metadata Attribute has an intermediary container object (Report Structure) and may have an intermediary container object which is its parent Metadata Attribute. 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 Attribute Descriptor, Dimension Descriptor, and Measure Descriptor 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 Attribute Descriptor, Dimension Descriptor, and Measure Descriptor is not included when the actual object is a Data Attribute or a Dimension/Measure Dimension/ Time Dimension, or a Measure.
526 +**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 (Code List) and has no intermediary container object, whereas a Metadata Attribute has an intermediary container object (Report Structure) and may have an intermediary container object which is its parent Metadata Attribute. 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 Attribute Descriptor, Dimension Descriptor, and Measure Descriptor where there can be only one such object and this object has a fixed id. Therefore, whilst each of these has a
516 516  
528 +URN, the id of the Attribute Descriptor, Dimension Descriptor, and Measure Descriptor is not included when the actual object is a Data Attribute or a Dimension/Measure Dimension/ Time Dimension, or a Measure.
529 +
517 517  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 container-object-id.
518 518  
519 519  For example the sequence is agency:DSDid(version).DimensionId and not agency:DSDid(version).DimensionDescriptorId.DimensionId.
... ... @@ -520,29 +520,30 @@
520 520  
521 521  **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.
522 522  
523 -===== __**//Generic Examples of the URN Structure//**__ =====
536 +===== //Generic Examples of the URN Structure// =====
524 524  
525 -__Actual object is a maintainable__
526 526  
539 +Actual object is a maintainable
540 +
527 527  SDMXPrefix.SDMX-IM package name.classname=agency id:maintained-object-id(version)
528 528  
529 -__Actual object is contained in a maintained object with no intermediate containing object__
543 +Actual object is contained in a maintained object with no intermediate containing object
530 530  
531 531  SDMXPrefix.SDMX-IM package name.classname=agency id:maintained-object-id(version).object-id
532 532  
533 -__Actual object is contained in a maintained object with an intermediate containing object__
547 +Actual object is contained in a maintained object with an intermediate containing object
534 534  
535 535  SDMXPrefix.SDMX-IM package name.classname=agency
536 536  
537 537  id:maintained-object-id(version).contained-object-id.object-id
538 538  
539 -__Actual object is contained in a maintained object with no intermediate containing object but the object type itself is hierarchical__
553 +Actual object is contained in a maintained object with no intermediate containing object but the object type itself is hierarchical
540 540  
541 541  In this case the object id may not be unique in itself but only within the context of the hierarchy. 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 in a Category Scheme. The Category is hierarchical and all intermediate Categories are shown as a contained object. The example below shows the generic structure for Category Scheme/Category/Category
542 542  
543 543  SDMXPrefix.SDMX-IM package name.classname=agency id:maintained-object-id(version).contained-object-id.object-id
544 544  
545 -__Actual object is contained in a maintained object with an intermediate containing object and the object type itself is hierarchical__
559 +Actual object is contained in a maintained object with an intermediate containing object and the object type itself is hierarchical
546 546  
547 547  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 Metadata Attribute where the contained objects are Report Structure (first contained object id) and Metadata Attribute (subsequent contained object Ids). The example below shows the generic structure for MSD/Report Structure/Metadata Attribute/Metadata Attribute
548 548  
1747824504225-229.png
Author
... ... @@ -1,1 +1,0 @@
1 -xwiki:XWiki.helena
Size
... ... @@ -1,1 +1,0 @@
1 -52.8 KB
Content