Version 4.2 by Helena on 2025/06/08 11:39

Show last authors
1 {{box title="**Contents**"}}
2 {{toc/}}
3 {{/box}}
4
5 == 7.1 Context ==
6
7 Besides the possibility to extend the components of Data Structure Definitions by metadata attributes defined in Metadata Structure Definitions, the SDMX metamodel allows metadata to describe any identifiable artefact. These metadata can be:
8
9 1. Exchanged without the need to embed it within the object that it is describing.
10 1. 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. Versioned and maintained like structural metadata, but from Metadata Providers than Agencies.
12 1. Reported according to a defined structure.
13
14 In order to achieve this, the following structures are modelled:
15
16 * The Metadata Structure Definition which comprises 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),
17 * The Metadataflow and/or Metadata Provision Agreement, which contains the objects to which the metadata are to be associated (attached),
18 * The Metadata Set, which contains reported metadata.
19
20 == 7.2 Inheritance ==
21
22 === 7.2.1 Introduction ===
23
24 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, the MetadataProvisionAgreement, the Metadataflow and the MetadataSet.
25
26 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).
27
28 === 7.2.2 Class Diagram - Inheritance ===
29
30 [[image:1749246462779-763.jpeg]]** **
31
32 **Figure 32: Inheritance class diagram of the Metadata Structure Definition**
33
34 === 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 Metadataflow)
43 //Structure// (concrete class is MetadataStructureDefinition)
44 MetadataProvisionAgreement
45
46 These classes also inherit the identity and versioning facets of //IdentifiableArtefact//, //NameableArtefact// and //VersionableArtefact//.
47
48 A //Structure// may contain several lists of components. In this case the MetadataStructureDefinition acts as a list and contains //Component//s, i.e., MetadataAttributes.
49
50 == 7.3 Metadata Structure Definition ==
51
52 === 7.3.1 Introduction ===
53
54 The diagrams and explanations in the rest of this section show how these concrete classes are related in order to support the required functionality.
55
56 === 7.3.2 Structures Already Described ===
57
58 The MetadataStructureDefinition only contains MetadataAttributes, since target objects are contained in Metadataflow and MetadataProvisionAgreement, since SDMX 3.0.
59
60 === 7.3.3 Class Diagram – Relationship ===
61
62 [[image:1749246462786-944.jpeg]]
63
64 **Figure 33: Relationship class diagram of the Metadata Structure Definition**
65
66 === 7.3.4 Explanation of the Diagram ===
67
68 ==== 7.3.4.1 Narrative ====
69
70 In brief, a MetadataStructureDefinition (MSD) defines the MetadataAttributes, within an MetadataAttributeDescriptor, that can be associated with the objects identified in the Metadataflows and MetadataProvisionAgreements that refer to the MSD. The hierarchy of the MetadataAttributes is specified within the MetadataAttributeDescriptor.
71
72 The MetadataAttributeDescriptor 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 MetadataAttributeDescriptor 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).
73
74 The MetadataAttribute can be specified as having multiple occurrences and/or specified as being mandatory (minOccurs=1 or more) or optional (minOccurs=0). A hierarchical MetadataStructureDefinition can be defined by specifying a hierarchy for a MetadataAttribute.
75
76 It can be seen from this, that the specification of the objects to which a MetadataAttribute can be attached is indirect: the MetadataAttributes are defined in a MetadataStructureDefinition, but they are attached to one or more IdentifiableArtefacts as defined in the Metadataflows or
77
78 MetadataProvisionAgreements. This gives a flexible mechanism by which the actual objects need not be defined in concrete terms in the model but are defined dynamically by the IdentifiableObjectSelection. In this way, the MetadataStructureDefinition can be used to define any set of MetadataAttributes regardless of the objects to which they can be attached.
79
80 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).
81
82 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.
83
84 The Metadataflow is linked to a MetadataStructureDefinition. The Metadataflow, in addition to the attributes inherited from the Base classes, it also has a list of
85
86 IdentifiableObjectSelection constructs, which resolve into the IdentifiableArtefacts that the Metadatasets will refer to. The IdentifiableObjectSelection acts like a reference, but it may also include wildcarding part of the reference terms.
87
88 The MetadataProvisionAgreement is linked to a Metadataflow. The former, like the Metadataflow, may have IdentifiableObjectSelection constructs to be used for specifying the proper targets for reference metadata.
89
90 ==== 7.3.4.2 Definitions ====
91
92 |**Class**|**Feature**|**Description**
93 |//StructureUsage//| |See “SDMX Base”.
94 |Metadataflow|(((
95 Inherits from:
96
97 //StructureUsage//
98 )))|Abstract concept (i.e., the structure without any metadata) of a flow of metadata that providers will provide for different reference periods. Specifies possible targets for metadata, via the Identifiable Object Selection.
99 | |/structure|Associates a Metadata Structure Definition.
100 |MetadataProvisionAgr eement| |Links the Metadata Provider to the relevant Structure Usage (i.e., Metadataflow) for which the provider supplies metadata. The agreement may constrain the scope of the metadata that can be provided, by means of a Constraint. Specifies possible targets for metadata, via the Identifiable Object Selection.
101 |MetadataProvider| |See Organisation Scheme.
102 |IdentifiableObjectSe lection| |A list or wildcarded expression resolving into Identifiable Objects that metadata will refer to.
103 |MetadataStructureDef inition|(((
104 Inherits from:
105
106 //MaintainableArtefact//
107 )))|A collection of metadata concepts and their structure when used to collect or disseminate reference metadata.
108 |MetadataAttributeDes criptor|(((
109 Inherits from:
110
111 //ComponentList//
112 )))|Defines a set of concepts that comprises the Metadata Attributes to be reported.
113 | |/components|An association to the Metadata Attributes relevant to the Metadata Attribute Descriptor.
114 |MetadataAttribute|// //|Identifies a Concept for which a value may be reported in a Metadata Set.
115 | |/hierarchy|Association to one or more child Metadata Attribute.
116 | |/conceptIdentity|An association to the concept which defines the semantic of the attribute.
117 | |isPresentational|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.
118 | |minOccurs maxOccurs|(((
119 Specifies how many occurrences of the Metadata Attribute may be reported at this point in the Metadataset.
120 )))
121 | |/localRepresentation|Associates a Representation that overrides any core representation specified for the Concept itself.
122 |Representation| |The representation of the Metadata Attribute.
123
124 == 7.4 Metadata Set ==
125
126 === 7.4.1 Class Diagram ===
127
128 [[image:1749246462791-735.jpeg]]
129
130 **Figure 34: Relationship Class Diagram of the Metadata Set**
131
132 === 7.4.2 Explanation of the Diagram ===
133
134 ==== 7.4.2.1 Narrative ====
135
136 Note that the MetadataSet must conform to the MetadataStructureDefinition associated to the Metadataflow or MetadataProvisionAgreement 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 MetadataStructureDefinition. In the actual MetadataSet, as exchanged, there must, of course, be a reference to the MetadataStructureDefinition and optionally a Metadataflow or a MetadataProvisionAgreement, but the MetadataStructureDefinition is not necessarily exchanged with the metadata. Note that the MetadataStructureDefinition classes are shown also but are not a part of the MetadataSet itself.
137
138 A MetadataProvider is maintaining one or more MetadataSets, as the latter is a //MaintainableArtefact//.
139
140 A MetadataSet comprises a set of //MetadataAttributeValue//s and a set of TargetIdentifiableObjects, which must be part of those specified in the relevant Metadataflow or MetadataProvisionAgreement.
141
142 The MetadataStructureDefinition specifies which MetadataAttributes are expected as //MetadataAttributeValue//s. The TargetIdentifiableObjects point to the //IdentifiableArtefact//s for which the //MetadataAttributeValue//s are reported.
143
144 A simple text value for the //MetadataAttributeValue// uses the //UncodedMetadataAttributeValue //sub class of //MetadataAttributeValue// whilst a coded value uses the CodedMetadataAttributeValue sub class.
145
146 The //UncodedMetadataAttributeValue// can be one of:
147
148 * XHTMLAttributeValue – the content is XHTML,
149 * TextAttributeValue – the content is textual and may contain the text in multiple languages,
150 * OtherUncodedAttributeValue – the content is a string value that must conform to the Representation specified for the MetadataAttribute in the MetadataStructureDefinition.
151
152 The CodedMetadataAttributeValue contains a value for a Code specified as the Representation for a MetadataAttribute in the MetadataStructureDefinition.
153
154 ==== 7.4.2.2 Definitions ====
155
156 |**Class**|**Feature**|**Description**
157 |MetadataSet| |Any organised collection of metadata.
158 | |reportingBegin|A specific time period in a known system of time periods that identifies the start period of a report.
159 | |reportingEnd|A specific time period in a known system of time periods that identifies the end period of a report.
160 | |publicationYear|Specifies the year of publication of the data or metadata in terms of whatever provisioning agreements might be in force.
161 | |publicationPeriod|Specifies the period of publication of the data or metadata in terms of whatever provisioning agreements might be in force.
162 | |action|Defines the action to be taken by the recipient system (information, append, replace, delete)
163 | |+describedBy|Associates a Metadataflow or a Metadata Provision Agreement to the Metadata Set.
164 | |+structuredBy|Associates the Metadata Attribute Descriptor of the Metadata Structure Definition that defines the structure of the Metadata Set. Note that this dependency explains that the Metadataset is structures according to the Metadata Structure Definition of the linked (by the +describedBy) Metadataflow or the Metadata Provision Agreement.
165 | |+publishedBy|Associates the Data Provider that reports/publishes the metadata.
166 | |+attachesTo|Associates the target identifiable objects to which metadata is to be attached.
167 | |+metadata|Associates the Metadata Attribute values which are to be associated with the object or objects identified by the Target Identifiable Objects(s).
168 |TargetIdentifiableO bject| |Specifies the identification of an Identifiable object.
169 | |+valueFor|Associates the Target Identifiable Object being a part of the Identifiable Object Selection specified in the Dataflow or Metadata Provision Agreement.
170 |StructureRef| |Contains the identification of an Identifiable object.
171 | |structureType|The object type of the target object.
172 |IdentifiableArtefac tRef| |Identification of the target object.
173 | |+containedObject|Association to a contained object in a hierarchy of Identifiable Objects such as a Transition in a Process Step.
174 |//MetadataAttributeVa lue//|(((
175 Abstract class
176 Sub classes are:
177 //UncodedMetadataAttrib uteValue//
178 CodedMetadataAttribut eValue
179 )))|The value for a Metadata Attribute.
180 | |(((
181 +valueFor
182
183 (inherited from the
184
185 //AttributeValue//)
186 )))|(((
187 Association to the Metadata Attribute in the Metadata Structure Definition that identifies the Concept and allowed Representation for the Metadata Attribute value.
188
189 Note that this is a conceptual association showing the link to the MSD construct. The syntax for the Metadata Attribute value will state, in some form, the id of the Metadata Attribute.
190 )))
191 | |+child|Association to a child Metadata Attribute value consistent with the hierarchy defined in the MSD for the Metadata Attribute for which this child is a Metadata Attribute value.
192 |//UncodedMetadataAttr ibuteValue//|(((
193 Inherits from
194
195 //MetadataAttributeValu e//
196
197 Sub class:
198
199 XHTMLAttributeValue
200
201 TextAttributeValue
202
203 OtherUncodedAttribute
204
205 Value
206 )))|The content of a Metadata Attribute value where this is textual.
207 |XHTMLAttributeValue| |This contains XHTML
208 | |value|The string value of the XHTML
209 |TextAttributeValue| |This value of a Metadata Attribute value where the content is human-readable text.
210 | |text|The string value is text. This can be present in multiple language versions.
211 |OtherUncodedAttribu teValue| |The value of a Metadata Attribute value where the content is not of humanreadable text.
212 | |value|A text string that is consistent in format to that defined in the Representation of the Metadata Attribute for which this is a Metadata Attribute value.
213 | |startTime|This attribute is only used if the textFormat of the Metadata Attribute is of the Timespan type in the Metadata Structure Definition (in which case the value field takes a duration).
214 |CodedMetadataAttrib uteValue|(((
215 Inherits from
216
217 //MetadataAttributeValu e//
218 )))|The content of a Metadata Attribute value that is taken from a Code in a Code list.
219 | |value|The Code value of the Metadata Attribute value.
220 | |+value|(((
221 Association to a Code in the Code list specified in the Representation of the Metadata Attribute for which this Metadata Attribute value is the value.
222
223 Note that this shows the conceptual link to the Item that is the value. In reality, the value itself will be contained in the Coded Metadata Attribute Value.
224 )))