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

From version 3.2
edited by Helena
on 2025/06/08 11:11
Change comment: There is no comment for this version
To version 5.2
edited by Helena
on 2025/06/08 11:22
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -13,13 +13,9 @@
13 13  The actual SDMX Base construct from which the concrete classes inherit depends upon the requirements of the class for:
14 14  
15 15  Annotation – //AnnotableArtefact//
16 -
17 17  Identification – //IdentifiableArtefact//
18 -
19 19  Naming – //NameableArtefact//
20 -
21 21  Versioning – //VersionableArtefact//
22 -
23 23  Maintenance – //MaintainableArtefact//
24 24  
25 25  == 5.2 Inheritance View ==
... ... @@ -30,34 +30,28 @@
30 30  
31 31  **Figure 27 Class inheritance in the Data Structure Definition and Data Set Packages**
32 32  
33 -===== 5.2.2 Explanation of the Diagram =====
29 +=== 5.2.2 Explanation of the Diagram ===
34 34  
35 -====== 5.2.2.1 Narrative ======
31 +==== 5.2.2.1 Narrative ====
36 36  
37 37  Those classes in the SDMX metamodel which require annotations inherit from //AnnotableArtefact//. These are:
38 38  
39 -//IdentifiableArtefact//
40 -
41 -//DataSet//
42 -
43 -//Key// (and therefore //SeriesKey// and //GroupKey//)
44 -
35 +//IdentifiableArtefact
36 +DataSet
37 +Key// (and therefore //SeriesKey// and //GroupKey//)
45 45  //Observation//
46 46  
47 47  Those classes in the SDMX metamodel which require annotations and global identity are derived from //IdentifiableArtefact//. These are:
48 48  
49 -//NameableArtefact//
42 +//NameableArtefact
43 +ComponentList
44 +Component//
50 50  
51 -//ComponentList//
52 -
53 -//Component//
54 -
55 55  Those classes in the SDMX metamodel which require annotations, global identity, multilingual name and multilingual description are derived from //NameableArtefact//. These are:
56 56  
57 -//VersionableArtefact//
48 +//VersionableArtefact
49 +Item//
58 58  
59 -//Item//
60 -
61 61  The classes in the SDMX metamodel which require annotations, global identity, multilingual name and multilingual description, and versioning are derived from //VersionableArtefact//. These are:
62 62  
63 63  //MaintainableArtefact//
... ... @@ -64,22 +64,17 @@
64 64  
65 65  Abstract classes which represent information that is maintained by Maintenance Agencies all inherit from //MaintainableArtefact//, they also inherit all the features of a //VersionableArtefact//, and are:
66 66  
67 -//StructureUsage//
57 +//StructureUsage
58 +Structure
59 +ItemScheme//
68 68  
69 -//Structure//
70 -
71 -//ItemScheme//
72 -
73 73  All the above classes are abstract. The key to understanding the class diagrams presented in this section are the concrete classes that inherit from these abstract classes.
74 74  
75 75  Those concrete classes in the SDMX Data Structure Definition and Dataset packages of the metamodel which require to be maintained by Agencies all inherit (via other abstract classes) from //MaintainableArtefact//, these are:
76 76  
77 77  Dataflow
78 -
79 79  DataStructureDefinition
80 -
81 81  The component structures that are lists of lists, inherit directly from //Structure//. A //Structure// contains several lists of components. The concrete class that inherits from //Structure// is:
82 -
83 83  DataStructureDefinition
84 84  
85 85  A DataStructureDefinition contains a list of dimensions, a list of measures and a list of attributes.
... ... @@ -87,34 +87,29 @@
87 87  The concrete classes which inherit from //ComponentList// and are subcomponents of the DataStructureDefinition are:
88 88  
89 89  DimensionDescriptor – content is Dimension and TimeDimension
90 -
91 91  DimensionGroupDescriptor – content is an association to Dimension, TimeDimension
92 -
93 93  MeasureDescriptor – content is Measure
94 -
95 95  AttributeDescriptor – content is DataAttribute and an association to MetadataAttribute
96 96  
97 97  The classes that inherit from //Component// are:
98 98  
99 99  Measure
100 -
101 101  //DimensionComponent// and thereby its sub classes of Dimension and TimeDimension
102 -
103 103  //Attribute// and thereby its sub classes of DataAttribute and MetadataAttribute
104 104  
105 105  The concrete classes identified above are the majority of the classes required to define the metamodel for the DataStructureDefinition. The diagrams and explanations in the rest of this section show how these concrete classes are related in order to support the functionality required.
106 106  
107 -==== //5.3 Data Structure Definition – Relationship View// ====
87 +== 5.3 Data Structure Definition – Relationship View ==
108 108  
109 -===== 5.3.1 Class Diagram =====
89 +=== 5.3.1 Class Diagram ===
110 110  
111 111  [[image:1749246368782-690.jpeg]]
112 112  
113 113  **Figure 28 Relationship class diagram of the Data Structure Definition excluding representation**
114 114  
115 -===== 5.3.2 Explanation of the Diagrams =====
95 +=== 5.3.2 Explanation of the Diagrams ===
116 116  
117 -====== 5.3.2.1 Narrative ======
97 +==== 5.3.2.1 Narrative ====
118 118  
119 119  A DataStructureDefinition defines the Dimensions, TimeDimension, DataAttributes, and Measures, and associated Representations, that comprise the valid structure of data and related attributes that are contained in a DataSet, which is defined by a Dataflow. In addition, a DataStructureDefinition may be related to one MetadataStructureDefinition, in order to use the latter’s MetadataAttributes, by relating them to other //Components// within the DSD, as explained below.
120 120  
... ... @@ -159,11 +159,12 @@
159 159  
160 160  The following table details the possible relationships a DataAttribute may specify. Note that these relationships are mutually exclusive, and therefore only one of the following is possible.
161 161  
162 -|**Relationship**|**Meaning**|**Location in Data Set at which the Attribute is reported**
163 -|DataflowRelationship|The value of the attribute is fixed for all data contained in the dataset. The Attribute value applies to all data defined by the underlying Dataflow.|The attribute is reported at the Dataset level.
164 -|Dimension (1..n)|The value of the attribute will vary with the value(s) of the referenced Dimension(s). In this case, Group(s) to which the attribute should be attached may optionally be specified.|The attribute is reported at the lowest level of the Dimension to which the Attribute is related, otherwise at the level of the Group if Attachment Group(s) is specified.
165 -|Group|The value of the Attribute varies with combination of values for all of the Dimensions contained in the Group. This is added as a convenience to listing all Dimensions and the attachment Group, but should only be used when the Attribute value varies based on all Group Dimension values.|The attribute is reported at the level of Group.
166 -|Observation|The value of the Attribute varies with the observed value.|The attribute is reported at the level of Observation.
142 +(% style="width:1142.83px" %)
143 +|**Relationship**|(% style="width:537px" %)**Meaning**|(% style="width:434px" %)**Location in Data Set at which the Attribute is reported**
144 +|DataflowRelationship|(% style="width:537px" %)The value of the attribute is fixed for all data contained in the dataset. The Attribute value applies to all data defined by the underlying Dataflow.|(% style="width:434px" %)The attribute is reported at the Dataset level.
145 +|Dimension (1..n)|(% style="width:537px" %)The value of the attribute will vary with the value(s) of the referenced Dimension(s). In this case, Group(s) to which the attribute should be attached may optionally be specified.|(% style="width:434px" %)The attribute is reported at the lowest level of the Dimension to which the Attribute is related, otherwise at the level of the Group if Attachment Group(s) is specified.
146 +|Group|(% style="width:537px" %)The value of the Attribute varies with combination of values for all of the Dimensions contained in the Group. This is added as a convenience to listing all Dimensions and the attachment Group, but should only be used when the Attribute value varies based on all Group Dimension values.|(% style="width:434px" %)The attribute is reported at the level of Group.
147 +|Observation|(% style="width:537px" %)The value of the Attribute varies with the observed value.|(% style="width:434px" %)The attribute is reported at the level of Observation.
167 167  
168 168  [[image:1749246368790-555.jpeg]]
169 169  
... ... @@ -173,7 +173,7 @@
173 173  
174 174  A DataStructureDefinition can be extended to form a derived DataStructureDefinition. This is supported in the StructureMap.
175 175  
176 -**5.3.2.2 Definitions**
157 +==== 5.3.2.2 Definitions ====
177 177  
178 178  |**Class**|**Feature**|**Description**
179 179  |StructureUsage| |See “SDMX Base”.
... ... @@ -183,7 +183,7 @@
183 183  //StructureUsage//
184 184  )))|Abstract concept (i.e., the structure without any data) of a flow of data that providers will provide for different reference periods.
185 185  | |/structure|Associates a Dataflow to the Data Structure Definition.
186 -| |dimensionConstraint|A list of Dimensions which the Dataflow uses. This is only required when the referenced DataStructureDefinition has the evolvingStructure property set to true and when the association to the DataStructureDefinition in on the latest minor version[[(% class="wikiinternallink wikiinternallink" %)^^~[1~]^^>>path:#_ftn1]](%%).
167 +| |dimensionConstraint|A list of Dimensions which the Dataflow uses. This is only required when the referenced DataStructureDefinition has the evolvingStructure property set to true and when the association to the DataStructureDefinition in on the latest minor version{{footnote}}Referencing the latest minor version of the Data Structure is achieved by the reference including the plus operator on the minor version to indicate it links to the latest stable version, for example 2.0+.0 will resolve to the highest version 2.x.y.{{/footnote}}.
187 187  |DataStructureDefiniti on| |A collection of metadata concepts, their structure and usage when used to collect or disseminate data.
188 188  | |/grouping|An association to a set of metadata concepts that have an identified structural role in a Data Structure Definition.
189 189  | |evolvingStructure|An optional boolean property, defaulting to false. When true the DataStructureDefinition may have new Dimensions added without having to change its major version number.
... ... @@ -223,9 +223,6 @@
223 223  TimeDimension
224 224  )))|An abstract class representing any Component that can be used for identifying observations.
225 225  
226 -
227 -
228 -
229 229  |**Class**|**Feature**|**Description**
230 230  | |Order|Specifies the order of the Dimension Components within the DSD. The property is used to indicate the position of the Dimension Component and determines the Key for identifying observations, or series. The Time Dimension, when specified, must be the last within the Dimension Descriptor.
231 231  |Dimension|(((
... ... @@ -288,19 +288,19 @@
288 288  
289 289  ==== //5.4 Data Set – Relationship View// ====
290 290  
291 -===== 5.4.1 Context =====
269 +=== 5.4.1 Context ===
292 292  
293 293  A data set comprises the collection of data values and associated metadata that are collected or disseminated according to a known DataStructureDefinition.
294 294  
295 -===== 5.4.2 Class Diagram =====
273 +=== 5.4.2 Class Diagram ===
296 296  
297 297  [[image:1749246368794-672.jpeg]]
298 298  
299 299  **Figure 31: Class Diagram of the Data Set**
300 300  
301 -====== 5.4.3 Explanation of the Diagram ======
279 +=== 5.4.3 Explanation of the Diagram ===
302 302  
303 -5.4.3.1 Narrative – Data Set
281 +==== 5.4.3.1 Narrative – Data Set ====
304 304  
305 305  Note that the //DataSet// must conform to the DataStructureDefinition associated to the Dataflow for which this DataSet is an “instance of data”. Whilst the model shows the association to the classes of the DataStructureDefinition, this is for conceptual purposes to show the link to the DataStructureDefinition. In the actual //DataSet// as exchanged there must, of course, be a reference to the DataStructureDefinition and optionally a Dataflow or a ProvisionAgreement, but the DataStructureDefinition is not necessarily exchanged with the data. Therefore, the DataStructureDefinition classes are shown in the grey areas, as these are not a part of the //DataSet// when the //DataSet// is exchanged. However, the structural metadata in the DataStructureDefinition can be used by an application to validate the contents of the //DataSet// in terms of the valid content of a //KeyValue// as defined by the Representation in the DataStructureDefinition.
306 306  
... ... @@ -318,11 +318,11 @@
318 318  
319 319  The GroupKey is a subunit of the //Key// that has the same dimensionality as the SeriesKey but defines a subset of the KeyValues of the SeriesKey. Its sub dimension structure is defined in the GroupDimensionDescriptor of the DataStructureDefinition identified by the same id as the GroupKey. The id identifies a “type” of group and the purpose of the GroupKey is to report one or more //AttributeValue// that are contained at this group level. The GroupKey is present when the GroupDimensionDescriptor is related to the GroupRelationship in the DataStructureDefinition. There can be many types of groups in a //DataSet//. If the Group is related to the DimensionRelationship in the DataStructureDefinition then the //AttributeValue// will be reported with the appropriate dimension in the SeriesKey or Observation.
320 320  
321 -In this way each of SeriesKey, GroupKey, and Observation can have zero or more //AttributeValue//s that define some metadata about the object to which it is associated. The //AttributeValue// may be either a //DataAttributeValue// or a //MetadataAttributeValue//, representing values of DataAttributes defined in the DSD or MetadataAttributes of the linked MSD, respectively. The allowable Concepts and the objects to which these metadata can be associated (attached) are defined in the DataStructureDefinition and the linked MetadataStructureDefinition.
299 +In this way each of SeriesKey, GroupKey, and Observation can have zero or more //AttributeValue//s that define some metadata about the object to which it is associated. The //AttributeValue// may be either a //DataAttributeValue// or a //MetadataAttributeValue//, representing values of DataAttributes defined in the DSD or MetadataAttributes of the linked MSD, respectively. The allowable Concepts and the objects to which these metadata can be associated (attached) are defined in the DataStructureDefinition and the linked MetadataStructureDefinition.
322 322  
323 323  The //AttributeValue// links to the object type (SeriesKey, GroupKey, Observation) to which it is associated.
324 324  
325 -5.4.3.2 Definitions
303 +==== 5.4.3.2 Definitions ====
326 326  
327 327  |**Class**|**Feature**|**Description**
328 328  |//DataSet//|(((
... ... @@ -425,61 +425,46 @@
425 425  
426 426  Sub classes
427 427  
428 -//UncodedObservationVal ue//
406 +//UncodedObservationValue//
429 429  
430 430  CodedObservation
431 431  )))|
432 432  |//UncodedObservatio nValue//|(((
433 433  Abstract class
434 -
435 435  Inherits from
436 -
437 437  //ObservationValue//
438 -
439 439  Sub classes
440 -
441 -OtherUncodedMeasureVa lue
442 -
415 +OtherUncodedMeasureValue
443 443  TextMeasureValue
444 444  )))|
445 445  |OtherUncodedMeasu reValue|(((
446 446  Inherits from
447 -
448 -//UncodedObservationVal ue//
420 +//UncodedObservationValue//
449 449  )))|An observation that has a text value.
450 450  | |value|The value of the Uncoded Observation.
451 451  | |startTime|This attribute is only used if the textFormat of the Measure is of the Timespan type in the Data Structure Definition (in which case the value field takes a duration).
452 452  |TextMeasureValue|(((
453 453  Inherits from
454 -
455 -//UncodedObservationVal ue//
426 +//UncodedObservationValue//
456 456  )))|An observation that has a localised text value
457 457  | |text|The localised text values.
458 458  |CodedObservation|(((
459 459  Inherits from
460 -
461 461  //ObservationValue//
462 462  )))|An Observation that takes its value from a code in a Code list.
463 463  | |+valueOf|Association to the Code that is the value of the Observation. Note that this is a conceptual association showing that the Code must exist in the Codelist(s) associated with the Measure(s) in the Data Structure Definition. In the actual Data Set the value of the Code is placed in the Observation.
464 464  |//AttributeValue//|(((
465 465  Abstract class
466 -
467 467  Sub classes
468 -
469 469  //DataAttributeValue// //MetadataAttributeValu e//
470 470  )))|Represents the value for any Attribute reported in the Dataset, i.e., Data or Metadata Attribute.
471 471  |//DataAttributeValu e//|(((
472 472  Abstract class
473 -
474 474  Inherits from
475 -
476 476  //AttributeValue//
477 -
478 478  Sub classes
479 -
480 -//UncodedAttributeValue//
481 -
482 -//CodedAttributeValue//
444 +//UncodedAttributeValue
445 +CodedAttributeValue//
483 483  )))|The value of a Data Attribute, such as the instance of a Coded Attribute or of an Uncoded Attribute in a structure such as a Data Structure Definition.
484 484  | |+valueFor|(((
485 485  Association to the Data Attribute defined in the Data Structure Definition. Note that this is conceptual association as the Concept is identified explicitly in the data set.
... ... @@ -493,20 +493,14 @@
493 493  )))|The value of a Metadata Attribute, as specified in the Metadata Structure Definition, which is linked in the Data Structure Definition
494 494  |//UncodedAttributeV alue//|(((
495 495  Inherits from
496 -
497 497  //AttributeValue//
498 -
499 499  Sub classes
500 -
501 501  OtherUncodedAttribute
502 -
503 503  Value
504 -
505 505  TextAttributeValue
506 506  )))|
507 507  |OtherUncodedAttri buteValue|(((
508 508  Inherits from
509 -
510 510  //UncodedObservationVal ue//
511 511  )))|An attribute value that has a text value
512 512  | |value|The value of the Uncoded attribute.
... ... @@ -513,19 +513,15 @@
513 513  | |startTime|This attribute is only used if the textFormat of the attribute is of the Timespan type in the Data Structure Definition (in which case the value field takes a duration).
514 514  |TextAttributeValu e|(((
515 515  Inherits from
516 -
517 517  //UncodedAttributeValue//
518 518  )))|An attribute that has a localised text value
519 519  | |text|The localised text values.
520 520  |CodedAttributeVal ue|(((
521 521  Inherits from
522 -
523 523  //AttributeValue//
524 524  )))|An attribute that takes it value from a Code in Code list.
525 525  | |+valueOf|Association to the Code that is the value of the Attribute Value. Note that this is a conceptual association showing that the Code must exist in the Code list associated with the Data Attribute in the Data Structure Definition. In the actual Data Set the value of the Code is placed in the Attribute Value.
526 526  
527 -
528 -
529 529  ----
530 530  
531 -[[~[1~]>>path:#_ftnref1]] Referencing the latest minor version of the Data Structure is achieved by the reference including the plus operator on the minor version to indicate it links to the latest stable version, for example 2.0+.0 will resolve to the highest version 2.x.y.
484 +{{putFootnotes/}}