Changes for page 5 Data Structure Definition and Dataset
Last modified by Elena on 2025/09/10 11:19
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,9 +1,5 @@ 1 -{{box title="**Contents**"}} 2 -{{toc/}} 3 -{{/box}} 1 +=== 5.1 Introduction === 4 4 5 -== 5.1 Introduction == 6 - 7 7 The DataStructureDefiniton is the class name for a structure definition for data. Some organisations know this type of definition as a “Key Family” and so the two names are synonymous. The term Data Structure Definition (also referred to as DSD) is used in this specification. 8 8 9 9 Many of the constructs in this layer of the model inherit from the SDMX Base Layer. Therefore, it is necessary to study both the inheritance and the relationship diagrams to understand the functionality of individual packages. In simple sub models these are shown in the same diagram but are omitted from the more complex sub models for the sake of clarity. In these cases, the inheritance diagram below shows the full inheritance tree for the classes concerned with data structure definitions. ... ... @@ -13,41 +13,51 @@ 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// 12 + 16 16 Identification – //IdentifiableArtefact// 14 + 17 17 Naming – //NameableArtefact// 16 + 18 18 Versioning – //VersionableArtefact// 18 + 19 19 Maintenance – //MaintainableArtefact// 20 20 21 -== 5.2 Inheritance View == 21 +=== 5.2 Inheritance View === 22 22 23 -=== 5.2.1 Class Diagram === 23 +==== 5.2.1 Class Diagram ==== 24 24 25 25 [[image:1749246368774-202.jpeg]] 26 26 27 27 **Figure 27 Class inheritance in the Data Structure Definition and Data Set Packages** 28 28 29 -=== 5.2.2 Explanation of the Diagram === 29 +===== 5.2.2 Explanation of the Diagram ===== 30 30 31 -==== 5.2.2.1 Narrative ==== 31 +====== 5.2.2.1 Narrative ====== 32 32 33 33 Those classes in the SDMX metamodel which require annotations inherit from //AnnotableArtefact//. These are: 34 34 35 -//IdentifiableArtefact 36 -DataSet 37 -Key// (and therefore //SeriesKey// and //GroupKey//) 35 +//IdentifiableArtefact// 36 + 37 +//DataSet// 38 + 39 +//Key// (and therefore //SeriesKey// and //GroupKey//) 40 + 38 38 //Observation// 39 39 40 40 Those classes in the SDMX metamodel which require annotations and global identity are derived from //IdentifiableArtefact//. These are: 41 41 42 -//NameableArtefact 43 -ComponentList 44 -Component// 45 +//NameableArtefact// 45 45 47 +//ComponentList// 48 + 49 +//Component// 50 + 46 46 Those classes in the SDMX metamodel which require annotations, global identity, multilingual name and multilingual description are derived from //NameableArtefact//. These are: 47 47 48 -//VersionableArtefact 49 -Item// 53 +//VersionableArtefact// 50 50 55 +//Item// 56 + 51 51 The classes in the SDMX metamodel which require annotations, global identity, multilingual name and multilingual description, and versioning are derived from //VersionableArtefact//. These are: 52 52 53 53 //MaintainableArtefact// ... ... @@ -54,17 +54,22 @@ 54 54 55 55 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: 56 56 57 -//StructureUsage 58 -Structure 59 -ItemScheme// 63 +//StructureUsage// 60 60 65 +//Structure// 66 + 67 +//ItemScheme// 68 + 61 61 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. 62 62 63 63 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: 64 64 65 65 Dataflow 74 + 66 66 DataStructureDefinition 76 + 67 67 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: 78 + 68 68 DataStructureDefinition 69 69 70 70 A DataStructureDefinition contains a list of dimensions, a list of measures and a list of attributes. ... ... @@ -72,29 +72,34 @@ 72 72 The concrete classes which inherit from //ComponentList// and are subcomponents of the DataStructureDefinition are: 73 73 74 74 DimensionDescriptor – content is Dimension and TimeDimension 86 + 75 75 DimensionGroupDescriptor – content is an association to Dimension, TimeDimension 88 + 76 76 MeasureDescriptor – content is Measure 90 + 77 77 AttributeDescriptor – content is DataAttribute and an association to MetadataAttribute 78 78 79 79 The classes that inherit from //Component// are: 80 80 81 81 Measure 96 + 82 82 //DimensionComponent// and thereby its sub classes of Dimension and TimeDimension 98 + 83 83 //Attribute// and thereby its sub classes of DataAttribute and MetadataAttribute 84 84 85 85 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. 86 86 87 -== 5.3 Data Structure Definition – Relationship View == 103 +==== //5.3 Data Structure Definition – Relationship View// ==== 88 88 89 -=== 5.3.1 Class Diagram === 105 +===== 5.3.1 Class Diagram ===== 90 90 91 91 [[image:1749246368782-690.jpeg]] 92 92 93 93 **Figure 28 Relationship class diagram of the Data Structure Definition excluding representation** 94 94 95 -=== 5.3.2 Explanation of the Diagrams === 111 +===== 5.3.2 Explanation of the Diagrams ===== 96 96 97 -==== 5.3.2.1 Narrative ==== 113 +====== 5.3.2.1 Narrative ====== 98 98 99 99 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. 100 100 ... ... @@ -139,12 +139,11 @@ 139 139 140 140 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. 141 141 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. 158 +|**Relationship**|**Meaning**|**Location in Data Set at which the Attribute is reported** 159 +|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. 160 +|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. 161 +|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. 162 +|Observation|The value of the Attribute varies with the observed value.|The attribute is reported at the level of Observation. 148 148 149 149 [[image:1749246368790-555.jpeg]] 150 150 ... ... @@ -154,7 +154,7 @@ 154 154 155 155 A DataStructureDefinition can be extended to form a derived DataStructureDefinition. This is supported in the StructureMap. 156 156 157 - ====5.3.2.2 Definitions====172 +**5.3.2.2 Definitions** 158 158 159 159 |**Class**|**Feature**|**Description** 160 160 |StructureUsage| |See “SDMX Base”. ... ... @@ -164,7 +164,7 @@ 164 164 //StructureUsage// 165 165 )))|Abstract concept (i.e., the structure without any data) of a flow of data that providers will provide for different reference periods. 166 166 | |/structure|Associates a Dataflow to the Data Structure Definition. 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 theplus operator on the minor version to indicate it links to the latest stable version,for example 2.0+.0 will resolveto the highest version2.x.y.{{/footnote}}.182 +| |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[[^^~[1~]^^>>path:#_ftn1]]. 168 168 |DataStructureDefiniti on| |A collection of metadata concepts, their structure and usage when used to collect or disseminate data. 169 169 | |/grouping|An association to a set of metadata concepts that have an identified structural role in a Data Structure Definition. 170 170 | |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. ... ... @@ -185,7 +185,7 @@ 185 185 186 186 //ComponentList// 187 187 )))|A set metadata concepts that define the Attributes of a Data Structure Definition. 188 -| |/components|An association to a Data Attribute component. 203 +| |/////components|An association to a Data Attribute component. 189 189 |MeasureDescriptor|((( 190 190 Inherits from 191 191 ... ... @@ -204,6 +204,9 @@ 204 204 TimeDimension 205 205 )))|An abstract class representing any Component that can be used for identifying observations. 206 206 222 + 223 + 224 + 207 207 |**Class**|**Feature**|**Description** 208 208 | |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. 209 209 |Dimension|((( ... ... @@ -266,19 +266,19 @@ 266 266 267 267 ==== //5.4 Data Set – Relationship View// ==== 268 268 269 -=== 5.4.1 Context === 287 +===== 5.4.1 Context ===== 270 270 271 271 A data set comprises the collection of data values and associated metadata that are collected or disseminated according to a known DataStructureDefinition. 272 272 273 -=== 5.4.2 Class Diagram === 291 +===== 5.4.2 Class Diagram ===== 274 274 275 275 [[image:1749246368794-672.jpeg]] 276 276 277 277 **Figure 31: Class Diagram of the Data Set** 278 278 279 -=== 5.4.3 Explanation of the Diagram === 297 +====== 5.4.3 Explanation of the Diagram ====== 280 280 281 - ====5.4.3.1 Narrative – Data Set====299 +5.4.3.1 Narrative – Data Set 282 282 283 283 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. 284 284 ... ... @@ -296,17 +296,20 @@ 296 296 297 297 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. 298 298 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.317 +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. 300 300 301 301 The //AttributeValue// links to the object type (SeriesKey, GroupKey, Observation) to which it is associated. 302 302 303 - ====5.4.3.2 Definitions====321 +5.4.3.2 Definitions 304 304 305 305 |**Class**|**Feature**|**Description** 306 306 |//DataSet//|((( 307 307 Abstract Class 326 + 308 308 Sub classes 328 + 309 309 StructureSpecificData 330 + 310 310 Set 311 311 )))|An organised collection of data. 312 312 | |reportingBegin|A specific time period in a known system of time periods that identifies the start period of a report. ... ... @@ -332,8 +332,11 @@ 332 332 |StructureSpecific DataSet| |An XML specific data format structure that contains data corresponding to one specific Data Structure Definition. 333 333 |//Key//|((( 334 334 Abstract class 356 + 335 335 Sub classes 358 + 336 336 SeriesKey 360 + 337 337 GroupKey 338 338 )))|Comprises the cross product of values of dimensions that identify uniquely an Observation. 339 339 | |keyValues|Association to the individual Key Values that comprise the Key. ... ... @@ -340,26 +340,34 @@ 340 340 | |+attachedAttribute|Association to the Attribute Values relating to the Series Key or Group Key. 341 341 |//KeyValue//|((( 342 342 Abstract class 367 + 343 343 Sub classes 369 + 344 344 TimeKeyValue 371 + 345 345 CodedKeyValue 373 + 346 346 UncodedKeyValue 347 347 )))|The value of a component of a key such as the value of the instance a Dimension in a Dimension Descriptor of a Data Structure Definition. 348 348 | |+valueFor|((( 349 349 Association to the key component in the Data Structure Definition for which this Key Value is a valid representation. 378 + 350 350 Note that this is conceptual association as the key component is identified explicitly in the data set. 351 351 ))) 352 352 |TimeKeyValue|((( 353 353 Inherits from 383 + 354 354 //KeyValue// 355 355 )))|The value of the Time Dimension component of the key. 356 356 |CodedKeyValue|((( 357 357 Inherits from 388 + 358 358 //KeyValue// 359 359 )))|The value of a coded component of the key. The value is the Code to which this class is associated. 360 360 | |+valueOf|Association to the Code. Note that this is a conceptual association showing that the Code must exist in the Code list associated with the Dimension in the Data Structure Definition. In the actual Data Set the value of the Code is placed in the Key Value. 361 361 |UnCodedKeyValue|((( 362 362 Inherits from 394 + 363 363 //KeyValue// 364 364 )))|The value of an uncoded component of the key. 365 365 | |value|The value of the key component. ... ... @@ -366,11 +366,13 @@ 366 366 | |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). 367 367 |GroupKey|((( 368 368 Inherits from 401 + 369 369 //Key// 370 370 )))|A set of Key Values that comprise a partial key, of the same dimensionality as the Time Series Key for the purpose of attaching Data Attributes. 371 371 | |+describedBy|Associates the Group Dimension Descriptor defined in the Data Structure Definition. 372 372 |SeriesKey|((( 373 373 Inherits from 407 + 374 374 //Key// 375 375 )))|Comprises the cross product of values of all the Key Values that, together with the Key Value of the +observation Dimension identify uniquely an Observation. 376 376 | |+describedBy|Associates the Dimension Descriptor defined in the Data Structure Definition. ... ... @@ -387,46 +387,61 @@ 387 387 388 388 Sub classes 389 389 390 -//UncodedObservationValue// 424 +//UncodedObservationVal ue// 391 391 392 392 CodedObservation 393 393 )))| 394 394 |//UncodedObservatio nValue//|((( 395 395 Abstract class 430 + 396 396 Inherits from 432 + 397 397 //ObservationValue// 434 + 398 398 Sub classes 399 -OtherUncodedMeasureValue 436 + 437 +OtherUncodedMeasureVa lue 438 + 400 400 TextMeasureValue 401 401 )))| 402 402 |OtherUncodedMeasu reValue|((( 403 403 Inherits from 404 -//UncodedObservationValue// 443 + 444 +//UncodedObservationVal ue// 405 405 )))|An observation that has a text value. 406 406 | |value|The value of the Uncoded Observation. 407 407 | |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). 408 408 |TextMeasureValue|((( 409 409 Inherits from 410 -//UncodedObservationValue// 450 + 451 +//UncodedObservationVal ue// 411 411 )))|An observation that has a localised text value 412 412 | |text|The localised text values. 413 413 |CodedObservation|((( 414 414 Inherits from 456 + 415 415 //ObservationValue// 416 416 )))|An Observation that takes its value from a code in a Code list. 417 417 | |+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. 418 418 |//AttributeValue//|((( 419 419 Abstract class 462 + 420 420 Sub classes 464 + 421 421 //DataAttributeValue// //MetadataAttributeValu e// 422 422 )))|Represents the value for any Attribute reported in the Dataset, i.e., Data or Metadata Attribute. 423 423 |//DataAttributeValu e//|((( 424 424 Abstract class 469 + 425 425 Inherits from 471 + 426 426 //AttributeValue// 473 + 427 427 Sub classes 428 -//UncodedAttributeValue 429 -CodedAttributeValue// 475 + 476 +//UncodedAttributeValue// 477 + 478 +//CodedAttributeValue// 430 430 )))|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. 431 431 | |+valueFor|((( 432 432 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. ... ... @@ -440,14 +440,20 @@ 440 440 )))|The value of a Metadata Attribute, as specified in the Metadata Structure Definition, which is linked in the Data Structure Definition 441 441 |//UncodedAttributeV alue//|((( 442 442 Inherits from 492 + 443 443 //AttributeValue// 494 + 444 444 Sub classes 496 + 445 445 OtherUncodedAttribute 498 + 446 446 Value 500 + 447 447 TextAttributeValue 448 448 )))| 449 449 |OtherUncodedAttri buteValue|((( 450 450 Inherits from 505 + 451 451 //UncodedObservationVal ue// 452 452 )))|An attribute value that has a text value 453 453 | |value|The value of the Uncoded attribute. ... ... @@ -454,15 +454,19 @@ 454 454 | |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). 455 455 |TextAttributeValu e|((( 456 456 Inherits from 512 + 457 457 //UncodedAttributeValue// 458 458 )))|An attribute that has a localised text value 459 459 | |text|The localised text values. 460 460 |CodedAttributeVal ue|((( 461 461 Inherits from 518 + 462 462 //AttributeValue// 463 463 )))|An attribute that takes it value from a Code in Code list. 464 464 | |+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. 465 465 523 + 524 + 466 466 ---- 467 467 468 - {{putFootnotes/}}527 +[[~[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.