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

From version 2.1
edited by Helena
on 2025/06/07 00:55
Change comment: There is no comment for this version
To version 3.5
edited by Helena
on 2025/06/08 11:17
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,5 +1,9 @@
1 -=== 5.1 Introduction ===
1 +{{box title="**Contents**"}}
2 +{{toc/}}
3 +{{/box}}
2 2  
5 +== 5.1 Introduction ==
6 +
3 3  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.
4 4  
5 5  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.
... ... @@ -18,17 +18,17 @@
18 18  
19 19  Maintenance – //MaintainableArtefact//
20 20  
21 -=== 5.2 Inheritance View ===
25 +== 5.2 Inheritance View ==
22 22  
23 -==== 5.2.1 Class Diagram ====
27 +=== 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 =====
33 +=== 5.2.2 Explanation of the Diagram ===
30 30  
31 -====== 5.2.2.1 Narrative ======
35 +==== 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  
... ... @@ -71,11 +71,8 @@
71 71  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:
72 72  
73 73  Dataflow
74 -
75 75  DataStructureDefinition
76 -
77 77  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 -
79 79  DataStructureDefinition
80 80  
81 81  A DataStructureDefinition contains a list of dimensions, a list of measures and a list of attributes.
... ... @@ -83,34 +83,29 @@
83 83  The concrete classes which inherit from //ComponentList// and are subcomponents of the DataStructureDefinition are:
84 84  
85 85  DimensionDescriptor – content is Dimension and TimeDimension
86 -
87 87  DimensionGroupDescriptor – content is an association to Dimension, TimeDimension
88 -
89 89  MeasureDescriptor – content is Measure
90 -
91 91  AttributeDescriptor – content is DataAttribute and an association to MetadataAttribute
92 92  
93 93  The classes that inherit from //Component// are:
94 94  
95 95  Measure
96 -
97 97  //DimensionComponent// and thereby its sub classes of Dimension and TimeDimension
98 -
99 99  //Attribute// and thereby its sub classes of DataAttribute and MetadataAttribute
100 100  
101 101  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.
102 102  
103 -==== //5.3 Data Structure Definition – Relationship View// ====
99 +== 5.3 Data Structure Definition – Relationship View ==
104 104  
105 -===== 5.3.1 Class Diagram =====
101 +=== 5.3.1 Class Diagram ===
106 106  
107 107  [[image:1749246368782-690.jpeg]]
108 108  
109 109  **Figure 28 Relationship class diagram of the Data Structure Definition excluding representation**
110 110  
111 -===== 5.3.2 Explanation of the Diagrams =====
107 +=== 5.3.2 Explanation of the Diagrams ===
112 112  
113 -====== 5.3.2.1 Narrative ======
109 +==== 5.3.2.1 Narrative ====
114 114  
115 115  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.
116 116  
... ... @@ -155,11 +155,12 @@
155 155  
156 156  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.
157 157  
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.
154 +(% style="width:1142.83px" %)
155 +|**Relationship**|(% style="width:537px" %)**Meaning**|(% style="width:434px" %)**Location in Data Set at which the Attribute is reported**
156 +|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.
157 +|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.
158 +|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.
159 +|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.
163 163  
164 164  [[image:1749246368790-555.jpeg]]
165 165  
... ... @@ -169,7 +169,7 @@
169 169  
170 170  A DataStructureDefinition can be extended to form a derived DataStructureDefinition. This is supported in the StructureMap.
171 171  
172 -**5.3.2.2 Definitions**
169 +==== 5.3.2.2 Definitions ====
173 173  
174 174  |**Class**|**Feature**|**Description**
175 175  |StructureUsage| |See “SDMX Base”.
... ... @@ -179,7 +179,7 @@
179 179  //StructureUsage//
180 180  )))|Abstract concept (i.e., the structure without any data) of a flow of data that providers will provide for different reference periods.
181 181  | |/structure|Associates a Dataflow to the Data Structure Definition.
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]].
179 +| |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}}.
183 183  |DataStructureDefiniti on| |A collection of metadata concepts, their structure and usage when used to collect or disseminate data.
184 184  | |/grouping|An association to a set of metadata concepts that have an identified structural role in a Data Structure Definition.
185 185  | |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.
... ... @@ -200,7 +200,7 @@
200 200  
201 201  //ComponentList//
202 202  )))|A set metadata concepts that define the Attributes of a Data Structure Definition.
203 -| |/////components|An association to a Data Attribute component.
200 +| |/components|An association to a Data Attribute component.
204 204  |MeasureDescriptor|(((
205 205  Inherits from
206 206  
... ... @@ -219,9 +219,6 @@
219 219  TimeDimension
220 220  )))|An abstract class representing any Component that can be used for identifying observations.
221 221  
222 -
223 -
224 -
225 225  |**Class**|**Feature**|**Description**
226 226  | |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.
227 227  |Dimension|(((
... ... @@ -294,9 +294,9 @@
294 294  
295 295  **Figure 31: Class Diagram of the Data Set**
296 296  
297 -====== 5.4.3 Explanation of the Diagram ======
291 +=== 5.4.3 Explanation of the Diagram ===
298 298  
299 -5.4.3.1 Narrative – Data Set
293 +==== 5.4.3.1 Narrative – Data Set ====
300 300  
301 301  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.
302 302  
... ... @@ -314,11 +314,11 @@
314 314  
315 315  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.
316 316  
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.
311 +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.
318 318  
319 319  The //AttributeValue// links to the object type (SeriesKey, GroupKey, Observation) to which it is associated.
320 320  
321 -5.4.3.2 Definitions
315 +==== 5.4.3.2 Definitions ====
322 322  
323 323  |**Class**|**Feature**|**Description**
324 324  |//DataSet//|(((
... ... @@ -520,8 +520,6 @@
520 520  )))|An attribute that takes it value from a Code in Code list.
521 521  | |+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.
522 522  
523 -
524 -
525 525  ----
526 526  
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.
519 +{{putFootnotes/}}
SUZ.Methodology.Code.MethodologyClass[0]
index
... ... @@ -1,1 +1,1 @@
1 -13
1 +6