Version 5.3 by Helena on 2025/05/22 11:23

Show last authors
1 {{box title="**Contents**"}}
2 {{toc/}}
3 {{/box}}
4
5 == {{id name="_Toc371024"/}}7.1 Context ==
6
7 The SDMX metamodel allows metadata:
8
9 1. To be exchanged without the need to embed it within the object that it is describing.
10 1. To be stored separately from the object that it describes, yet be linked to it (for example, an organisation has a metadata repository which supports the dissemination of metadata resulting from metadata requests generated by systems or services that have access to the object for which the metadata pertains. This is common in web dissemination where additional metadata is available for viewing (and eventually downloading) by clicking on an “information” icon next to the object to which the metadata is attached).
11 1. To be indexed to aid searching (example: a registry service can process a metadata report and extract structural information that allows it to catalogue the metadata in a way that will enable users to query for it).
12 1. To be reported according to a defined structure.
13
14 In order to achieve this, the following structures are modelled:
15
16 * metadata structure definition which has the following components:
17 ** the object types to which the metadata are to be associated (attached)
18 ** the components that, together, comprise a unique key of the object type to which the metadata are to be associated
19 ** the reporting structure comprising the metadata attributes that can be attached to the various object types (these attributes can be structured in a hierarchy), together with any constraints that may apply (e.g. association to a code list that contains valid values for the attribute when reported in a metadata set)
20 * the metadata set, which contains reported metadata
21
22 == {{id name="_Toc371025"/}}7.2 Inheritance ==
23
24 === {{id name="_Toc371026"/}}7.2.1 Introduction ===
25
26 As with the Data Structure Definition Structure, 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. The diagram below shows the full inheritance tree for the classes concerned with the MetadataStructureDefinition and the MetadataSet.
27
28 There are very few additional classes in the MetadataStructureDefinition package that do not themselves inherit from classes in the SDMX Base. In other words, the SDMX Base gives most of the structure of this sub model both in terms of associations and in terms of attributes. The relationship diagrams shown in this section show clearly when these associations are inherited from the SDMX Base (see the Appendix “A Short Guide to UML in the SDMX Information Model” to see the diagrammatic notation used to depict this). It is important to note that SDMX base structures used for the MetadataStructureDefinition are the same as those used for the DataStructureDefinition and so, even though the usage is slightly different, the underlying way of defining a MetadataStructureDefinition is similar to that used for defining a DataStructureDefinition.
29
30 === {{id name="_Toc371027"/}}7.2.2 Class Diagram - Inheritance ===
31
32 **Figure 27: Inheritance class diagram of the Metadata Structure Definition**
33
34 === {{id name="_Toc371028"/}}7.2.3 Explanation of the Diagram ===
35
36 ==== 7.2.3.1 Narrative ====
37
38 It is important to the understanding of the relationship class diagrams presented in this section to identify the concrete classes that inherit from the abstract classes.
39
40 The concrete classes in this part of the SDMX metamodel which require to be maintained by Maintenance Agencies all inherit from MaintainableArtefact. These are:
41
42 * //StructureUsage// (concrete class is MetadataflowDefinition)
43 * //Structure// (concrete class is MetadataStructureDefinition)
44
45 These classes also inherit the identity and versioning facets of //IdentifiableArtefact, NameableArtefact,// and //VersionableArtefact//.
46
47 A //Structure// contains several lists of components. The concrete classes which inherit from //ComponentList// and in themselves are sub components of the MetadataStructureDefinition are:
48
49 * MetadataTarget
50 * ReportStructure
51
52 //ComponentList// contains Components. The classes that inherit from //Component// are:
53
54 * Sub Classes of //TargetObject//
55 * MetadataAttribute
56
57 == {{id name="_Toc371029"/}}7.3 Metadata Structure Definition ==
58
59 === {{id name="_Toc371030"/}}7.3.1 Introduction ===
60
61 The diagrams and explanations in the rest of this section show how these concrete classes are related so as to support the functionality required.
62
63 === {{id name="_Toc371031"/}}7.3.2 Structures Already Described ===
64
65 The MetadataStructureDefinition makes use of the following //ItemScheme// structures either as explicit concrete classes in the model, or as possible lists which comprise the value domain of a TargetObject.
66
67 * CategoryScheme
68 * ConceptScheme
69 * Codelist
70 * //OrganisationScheme//
71 * Reporting Taxonomy
72
73 === {{id name="_Toc371032"/}}7.3.3 Class Diagram – Relationship ===
74
75 [[image:1747902064472-244.png]]
76
77 **Figure 28: Relationship class diagram of the Metadata Structure Definition**
78
79 === {{id name="_Toc371033"/}}7.3.4 Explanation of the Diagram ===
80
81 ==== 7.3.4.1 Narrative ====
82
83 In brief a MetadataStructureDefinition (MSD) defines:
84
85 * The MetadataTarget which defines the components (//TargetObject//) and their Representation which are valid for this MetadataStructureDefinition, and which are the metadata target object of one or more ReportStructure
86 * The ReportStructures comprising the MetadataAttributes that can be associated with the object type identified in the referenced MetadataTargets, and hierarchical structure of the attributes
87
88 The MetadataTarget comprises one or more //TargetObject//s//.// The combination of //TargetObject//s// //identifies a specific object type to which metadata can be attached in a MetadataSet.
89
90 The //TargetObject// is one of the following:
91
92 * DimensionDescriptorValuesTarget - this allows the specification of a full or partial key (as used in a dataset) to be specified in a MetadataSet as the target object
93 * IdentifiableObjectTarget – this defines a specific object type, which can be any IdentifiableArtefact
94 * DataSetTarget – this specifies that the target object is a DataSet
95 * ReportPeriodTarget - this specifies that the report period must be present in the MetadataSet
96 * ConstraintContentTarget – this specifies that target object is the content of an AttachmentConstraint i.e. the part of the data set or metadata set identified by the content of an AttachmentConstraint
97
98 The valid content of a //TargetObject// when reported in a MetadataSet is defined in the Representation. This can be an enumerated representation (i.e. a reference to one of the sub clases of ItemScheme – these are Codelist, ConceptScheme, //OrganisationScheme,// CategoryScheme, or ReportingTaxonomy) or nonenumerated.
99
100 Thus a single MetadataStructureDefinition can be defined for a discrete set of related object types. For example, a single definition can be constructed to define the metadata that can be attached to any part of a Data Structure Definition, or that can be attached to any artefact concerned with the reporting of quality metadata (such as data provider and (data) category). The MetadataTarget specifies the identification properties of a specific object type to which metadata can be attached in a MetadataSet. For example, in a DataStructureDefinition the MetadataTarget might be a Dimension, and therefore the //TargetObject//s are those that uniquely identify a Dimension. This will include both the DataStructureDefinition and he Dimension both of these are an //IdentifiableArtefact //and will use the// //IdentitifableObjectTarget) as both //TargetObject//s are required in order to identify uniquely a Dimension).
101
102 The ReportStructure comprises a set of MetadataAttributes - these can be defined as a hierarchy. Each MetadataAttribute// //identifies a Concept that is reported or disseminated in a MetadataSet (/conceptIdentity) that uses this MetadataStructureDefinition. Different MetadataAttributes in the same ReportStructure can use Concepts from different ConceptSchemes. Note that a MetadataAttribute does not link to a Concept that defines its role in this MetadataStructureDefinition (i.e. the MetadataAttribute does not play a role).
103
104 The MetadataAttribute can be specified as having multiple occurrences and/or specified as being mandatory (minOccurs=1 or more) or conditional (minOccurs=0). A hierarchical ReportStructure can be defined by specifying a hierarchy for a MetadataAttribute.
105
106 The ReportStructure is associated to one or more of the MetadataTargets which specify to which object the MetadataAttributes specified in the ReportStructure are attached when reported in a MetadataSet.
107
108 It can be seen from this that the specification of the object types to which a MetadataAttribute can be attached is indirect: the MetadataAttributes are defined in a ReportStructure which itself is attached to one or more MetadataTarget and the actual object is identified by the //TargetObject//s comprising the MetadataTarget. This gives a flexible mechanism by which the actual object types need not be defined in concrete terms in the model, but are defined dynamically in the MetadataStructureDefinition, in much the same way as the keys to which data observation are “attached” in a DataStructureDefinition. In this way the MetadataStructureDefinition can be used to define any set of MetadataAttributes and any set of object types to which they can be attached.
109
110 Each MetadataAttribute can have a Representation specified (using the /localRepresentation association). If this is not specified in the MetadataStructureDefinition then the Representation is taken from that defined for the Concept (the coreRepresentation association).
111
112 The definition of the various types of Representation can be found in the specification of the Base constructs. Note that if the Representation is non-enumerated then the association is to the ExtendedFacet (which allows for xhtml as a FacetValueType). If the Representation is enumerated then is must use a Codelist.
113
114 The MetadataStructureDefinition is linked to a MetadataflowDefinition. The MetadataflowDefinition does not have any attributes in addition to those inherited from the Base classes.
115
116 ==== 7.3.4.2 Definitions ====
117
118 (% style="width:1144.29px" %)
119 |**Class**|**Feature**|(% style="width:704px" %)**Description**
120 |StructureUsage| |(% style="width:704px" %)See “SDMX Base”.
121 |Metadataflow Definition|(((
122 Inherits from:
123 //StructureUsage//
124 )))|(% style="width:704px" %)Abstract concept (i.e. the structure without any metadata) of a flow of metadata that providers will provide for different reference periods.
125 | |/structure|(% style="width:704px" %)Associates a Metadata Structure Definition.
126 |MetadataStructure Definition| |(% style="width:704px" %)A collection of metadata concepts, their structure and usage when used to collect or disseminate reference metadata.
127 | |/grouping|(% style="width:704px" %)An association to a Metadata Target or Report Structure.
128 |MetadataTarget|(((
129 Inherits from
130 //ComponentList//
131 )))|(% style="width:704px" %)A set of components that define a key of an object type to which metadata may be attached.
132 | |/components|(% style="width:704px" %)Associates the Target Object components that define the key of the Metadata Target.
133 |//TargetObject//|(((
134 Abstract Class
135 Sub Classes
136 DimensionDescriptorValues
137 Target
138 IdentifiableObjectTarget
139 DataSetTarget
140 ReportPeriodTarget
141 )))|(% style="width:704px" %)
142 | |/localRepresentation|(% style="width:704px" %)Associates a Representation to the Target Object that must be respected when the object is identified in a Metadata Set. This may be enumerated or nonenumerated.
143 |DimensionDescriptor ValuesTarget|(((
144 Inherits from
145
146 //TargetObject//
147 )))|(% style="width:704px" %)The target object is the key of a data series.
148 |IdentifiableObject Target|(((
149 Inherits from
150 //TargetObject//
151 )))|(% style="width:704px" %)The target object is a specified object type.
152 | |objectType|(% style="width:704px" %)Identifies the object type.
153 |DataSetTarget|(((
154 Inherits from
155 //TargetObject//
156 )))|(% style="width:704px" %)The target object is a Data Set.
157 |ReportPeriodTarget|(((
158 Inherits from
159 //TargetObject//
160 )))|(% style="width:704px" %)The target is a report period. Note that this does not describe the use of an object, but rather serves as a unique metadata key for metadata reports. Metadata reports attached to a particular object may vary over time, and this time identifier component can be used to disambiguate the reports, much like the time dimension disambiguates observations in a data series.
161 |ConstraintTarget|(((
162 Inherits from
163 //TargetObject//
164 )))|(% style="width:704px" %)The target object is the data or reference metadata that is identified in the content of an Attachment Constraint.
165 |ReportStructure|(((
166 Inherits from:
167 //ComponentList//
168 )))|(% style="width:704px" %)Defines a set of concepts that comprises the Metadata Attributes to be reported.
169 | |/components|(% style="width:704px" %)An association to the Metadata Attributes relevant to the Report Structure.
170 | |+reportFor|(% style="width:704px" %)Associates the Metadata Targets for which this Report Structure is used.
171 |MetadataAttribute| |(% style="width:704px" %)Identifies a Concept for which a value may be reported in a Metadata Set.
172 | |/hierarchy|(% style="width:704px" %)Association to one or more child Metadata Attribute.
173 | |/conceptIdentity|(% style="width:704px" %)An association to the concept which defines the semantic of the attribute.
174 | |isPresentational|(% style="width:704px" %)Indication that the Metadata Attribute is present for structural purposes (i.e. it has child attributes) and that no value for this attribute is expected to be reported in a Metadata Set using this Report Structure.
175 | |minOccurs maxOccurs|(% style="width:704px" %)Specifies how many occurrences of the Metadata Attribute may be reported at this point in the Metadata Report.
176 |ConceptUsage| |(% style="width:704px" %)The use of a Concept as Metadata Attribute.
177 | |concept|(% style="width:704px" %)Association to a Concept in a ConceptScheme.
178 | |/localRepresentation|(% style="width:704px" %)Associates a Representation that overrides any core representation specified for the Concept itself.
179 |Representation| |(% style="width:704px" %)The representation of the Metadata Attribute.
180
181 == {{id name="_Toc371034"/}}7.4 Metadata Set ==
182
183 === {{id name="_Toc371035"/}}7.4.1 Class Diagram ===
184
185 [[image:1747902223404-649.png]]
186
187 **Figure 29: Relationship Class Diagram of the Metadata Set**
188
189 === {{id name="_Toc371036"/}}7.4.2 Explanation of the Diagram ===
190
191 **7.4.2.1 Narrative**
192
193 Note that the MetadataSet must conform to the MetadataStructureDefinition associated to the MetadataflowDefinition for which this MetadataSet is an “instance of metadata”. Whilst the model shows the association to the classes of the MetadataStructureDefinition, this is for conceptual purposes to show the link to the
194
195 MetadataStructureDefinition. In the actual MetadataSet as exchanged there must, of course, be a reference to the MetadataStructureDefinition and the ReportStructure, and optionally a MetadataflowDefinition, but the MetadataStructureDefinition is not necessarily exchanged with the metadata. Therefore, the MetadataStructureDefinition classes are shown in the grey areas, as these are not a part of the MetadataSet itself.
196
197 An organisation playing the role of DataProvider can be responsible for one or more MetadataSet.
198
199 A MetadataSet comprises one or more MetadataReport, each of which must be for the same ReportStructure. It references both a MetadataTarget, defined in the MetadataStructureDefinition, and contains a TargetObjectKey and ReportedAttributes.
200
201 The identified ReportStructure specifies which MetadataAttributes are expected as //ReportedAttribute//s. The identified MetadataTarget specifies the expected content of the TargetObjectKey i.e. it specifies the information required to identify the object for which the //ReportedAttribute//s are reported.
202
203 The TargetObjectValue can be one of:
204
205 * TargetDataKey – this can contain:
206 ** a SeriesKey (set of dimension values)
207 ** a SeriesKey plus a value or values (giving time range) for the
208
209 TimeDimension (TimeDimensionValue) o a value of values for the TimeDimension
210
211 * TargetIdentifiableObject -this identifies any identifiable object (which includes both Maintainable and Identifiable objects  TargetDataSet – this identifies a DataSet
212 * TargetReportPeriod – this specifies the report period for the Report A simple text value for the //ReportedAttribute// uses the //NonEnumeratedAttributeValue  //sub class of //ReportedAttribute// whilst a coded value uses the EnumeratedAttributeValue sub class.
213
214 The //NonEnumeratedAttributeValue// can be one of:
215
216 * XHTMLAttributeValue – the content is XHTML
217 * TextAttributeValue – the content is textual and may contain the text in multiple languages
218 * OtherNonEnumeratedAttributeValue – the content is a string value that must conform to the Representation specified for the MetadataAttribute in the
219
220 MetadataStructureDefinition for the relevant ReportStructure
221
222 The EnumeratedAttributeValue contains a value for a Code specified as the
223
224 Representation for the MetadataAttribute in the MetadataStructureDefinition for the relevant ReportStructure.
225
226 ==== 7.4.2.2 Definitions ====
227
228 |**Class**|**Feature**|**Description**
229 |MetadataSet| |Any organised collection of metadata.
230 | |reportingBegin|A specific time period in a known system of time periods that identifies the start period of a report.
231 | |reportingEnd|A specific time period in a known system of time periods that identifies the ebd period of a report.
232 | |dataExtractionDate|A specific time period that identifies the date and time that the data are extracted from a data source.
233 | |validFrom|Indicates the inclusive start time indicating the validity of the information in the data set.
234 | |validTo|Indicates the inclusive end time indicating the validity of the information in the metadata set.
235 | |publicationYear|Specifies the year of publication of the data or metadata in terms of whatever provisioning agreements might be in force.
236 | |publicationPeriod|Specifies the period of publication of the data or metadata in terms of whatever provisioning agreements might be in force.
237 | |setId|Provides an identification of the metadata set.
238 | |action|Defines the action to be taken by the recipient system (update, replace, delete)
239 | |+describedBy|Associates a Metadataflow Definition to the Metadata Set.
240 | |+structuredBy|Associates the Metadata Structure Definition that defines the structure of the Metadata Set. Note that the Metadata Structure Definition is the same as that associated (nonmandatory) to the Metadataflow Definition.
241 | |+publishedBy|Associates the Data Provider that reports/publishes the metadata.
242 | |+describedBy|Reference to the Report Structure.
243 |MetadataReport| |A set of values for Metadata Attributes defined in a Report Structure of a Metadata Structure Definition.
244 | |+attachesTo|Associates the object key to which metadata is to be attached.
245 | |+target|Associates the Metadata Target that defines the target object to which the metadata are to be associated.
246 | |+metadata|Associates the Reported Attribute values which are to be associated with the object or objects identified by the Target Object Key.
247 |TargetObjectKey| |Identifies the key of the object to which the metadata are to be attached.
248 | |+valueFor|(((
249 Associates the Metadata Target that identifies the object type and the component structure of the Target Object Key.
250
251 Note that this is a conceptual association showing the link to the MSD construct.
252 )))
253 | |+keyValues|Associates the Target Object Values of the Target Object Key.
254 |//TargetObjectValue//|(((
255 Abstract class
256
257 Sub classes are
258
259 TargetDataKey
260
261 TargetIdentifiableObject TargetDataSet
262
263 TargetReportPeriod
264 )))|The key of an individual object of the type specified in the Metadata Target of the Metadata Structure Definition.
265 | |+valueFor|(((
266 Associates the Target Object for which this value is provided.
267
268 Note that this is a conceptual association showing the link to the MSD construct.
269 )))
270 |TargetDataKey|(((
271 Inherits from
272
273 //TargetObjectValue//
274 )))|The identification of the components and the values that form the data or metadata key.
275 |ComponentValue| |Collectively contain the identification of the components and the values that form the data key.
276 |value| |The key value.
277 | |+valueFor|Associates the Component for which the value is declared.
278 |TimeDimensionValue| |Contains identification of the Time Dimension and the value.
279 |TargetIdentifiable Object|(((
280 Inherits from
281
282 //TargetObjectValue    //
283 )))|Specifies the identification of an Identifiable object.
284 |StructureRef| |Contains the identification of an Identifiable object.
285 | |structureType|The object type of the target object.
286 |(((
287 Maintainable
288
289 ArtefactRef
290
291 Identifiable
292
293 ArtefactRef
294 )))| |Identification of the target object by means of its identifier constructs i.e agency ID, id, version for Maintainable Object plus, for Identifiable Object, the id.
295 | |+containedObject|Association to a contained object in a hierarchy of Identifiable Objects such as a Transition in a Process Step.
296 |TargetDataSet|(((
297 Inherits from
298
299 //TargetObjectValue//
300 )))|Contains the identification of a Data Set
301 |TargetReportPeriod|(((
302 Inherits from
303
304 //TargetObjectValue//
305 )))|Contains the period covered by the Metadata Report.
306 |//ReportedAttribute//|(((
307 Abstract class Sub classes are:
308
309 //NonEnumeratedAttributeValue//
310
311 EnumeratedAttributeValue//    //
312 )))|The value for a Metadata Attribute.
313 | |+valueFor|(((
314 Association to the Metadata Attribute in the Metadata Structure Definition that identifies the Concept and allowed Representation for the Reported Attribute.
315
316 Note that this is a conceptual association showing the link to the MSD construct. The syntax for the Reported Attribute will state, in some form, the id of the Metadata Attribute.
317 )))
318 | |+child|Association to a child Reported Attribute consistent with the hierarchy defined in the Report Structure for the Metadata Attribute for which this child is a Reported Attribute.
319 |//NonEnumerated AttributeValue//|(((
320 Inherits from
321
322 //ReportedAttribute//
323
324 Sub class:
325
326 //XHTMLAttributeValue//
327
328 //TextAttributeValue//
329
330 //OtherNonEnumerated//
331
332 //AttributeValue//
333 )))|The content of a Reported Attribute where this is textual.
334 |XHTMLAttributeValue| |This contains XHTML.
335 | |value|The string value of the XHTML.
336 |TextAttributeValue| |This value of a Reported Attribute where the content is humanreadable text.
337 | |text|The string value is text. This can be present in multiple language versions.
338 |OtherNonEnumerated AttributeValue| |The value of a Reported Attribute where the content is not of humanreadable text.
339 | |value|A text string that is consistent in format to that defined in the Representation of the Metadata Attribute for which this is a Reported Attribute.
340 |EnumeratedAttribute Value|(((
341 Inherits from
342
343 //MetadataAttributeValue//
344 )))|The content of a Reported Attribute that is taken from a Code in a Code list.
345 | |value|The Code value of the Reported Attribute.
346 | |+value|(((
347 Association to a Code in the Code list specified in the Representation of the Metadata Attribute for which this Reported Attribute is the value
348
349 Note that this shows the conceptual link to the Item that is the value. In reality, the value itself will be contained in the Enumerated Attribute Value.
350 )))
351
352
353
354