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

From version 11.1
edited by Helena
on 2025/05/14 14:45
Change comment: There is no comment for this version
To version 16.6
edited by Helena
on 2025/05/16 13:22
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -247,8 +247,8 @@
247 247  
248 248  Reference metadata has been substantially re-designed for version 3.0 to simplify the model and better support practical use cases.
249 249  
250 -=== Simplify Metadata Structure Definition ===
251 -
250 +(% class="wikigeneratedid" id="HSimplifyMetadataStructureDefinition" %)
251 +**Simplify Metadata Structure Definition**
252 252  The Metadata Structure Definition (MSD) has been simplified to remove target information, and the support of multiple report structures. The MSD now only contains Metadata Attributes which are used to define the structure of a report.
253 253  
254 254  [[image:SDMX 3-0-0 Major Changes FINAL-1.0_en_ad5f5c97.png||height="346" width="494"]]
... ... @@ -259,8 +259,8 @@
259 259  
260 260  //Figure 3 the simplified version 3.0 MSD//
261 261  
262 -=== Change to reference metadata reported against data ===
263 -
262 +(% class="wikigeneratedid" id="HChangetoreferencemetadatareportedagainstdata" %)
263 +**Change to reference metadata reported against data**
264 264  Reference metadata associated with datasets, data series or observations are now reported with the data. The dataset’s DSD must reference an MSD to define the structure of its reference metadata. In practice reference metadata for data are transmitted as part of the data message. The metadata attributes are treated in a similar way to the data attributes appearing in the message at the dataset, data series or individual observation level as appropriate. In contrast to simple data attributes, metadata attributes defined by an MSD can be organised into a hierarchical structure as illustrated in Figure 3 above. For this reason, metadata attributes appear in data messages structured in the same way as metadata messages.
265 265  
266 266  The SDMX-ML example below is an excerpt from a structure specific data message illustrating reporting of reference metadata with a hierarchical structure at the observation level.
... ... @@ -271,58 +271,57 @@
271 271  * TITLE – a multi-lingual data attribute
272 272  * SOURCE_AGENCY – a multi-value data attribute
273 273  
274 -<Obs xsi:type="dsd:ObsType" OBS_VALUE="112" OBS_STAUS=”A” TIME_PERIOD="2010-09">
275 -<!—- complex multi-value and multi-lingual data attributes ~-~->
276 -<Comp id="TITLE" xsi:type="ns1:TITLE_ATTRIBUTE">
277 -<Value>
278 -<common:Text xml:lang="en">Some English Text</common:Text>
279 -<common:Text xml:lang="fr">Quelques textes en anglais</common:Text>
280 -</Value>
281 -</Comp>
274 +> <Obs xsi:type="dsd:ObsType" OBS_VALUE="112" OBS_STAUS=”A” TIME_PERIOD="2010-09">
275 +> <!—- complex multi-value and multi-lingual data attributes ~-~->
276 +> <Comp id="TITLE" xsi:type="ns1:TITLE_ATTRIBUTE">
277 +> <Value>
278 +> <common:Text xml:lang="en">Some English Text</common:Text>
279 +> <common:Text xml:lang="fr">Quelques textes en anglais</common:Text>
280 +> </Value>
281 +> </Comp>
282 +> <Comp id="SOURCE_AGENCY" xsi:type="ns1:SOURCE_AGENCY_ATTRIBUTE">
283 +> <Value>4F0</Value>
284 +> <Value>4D0</Value>
285 +> <Value>CZ2</Value>
286 +> </Comp>
287 +> <!—- metadata attributes are reported like in metadata messages ~-~->
288 +> <Metadata>
289 +> <Attribute id="COLLECTION">
290 +> <Attribute id="METHOD">
291 +> <Text lang="en">AAA</Text>
292 +> </Attribute>
293 +> </Attribute>
294 +> <Attribute id="CONTACT">
295 +> <Value>CONTACT 1</Value>
296 +> <Attribute id="NAME">
297 +> <Value>Contact 1 Name 1</Value>
298 +> </Attribute>
299 +> <Attribute id="NAME">
300 +> <Value>Contact 1 Name 2</Value>
301 +> </Attribute>
302 +> </Attribute>
303 +> <Attribute id="CONTACT">
304 +> <Value>CONTACT 2</Value>
305 +> <Attribute id="NAME">
306 +> <Value>Contact 2 Name 1</Value>
307 +> </Attribute>
308 +> <Attribute id="NAME">
309 +> <Value>Contact 2 Name 2</Value>
310 +> </Attribute>
311 +> </Attribute>
312 +> </Metadata>
313 +> </Obs>
282 282  
283 -<Comp id="SOURCE_AGENCY" xsi:type="ns1:SOURCE_AGENCY_ATTRIBUTE">
284 -<Value>4F0</Value>
285 -<Value>4D0</Value>
286 -<Value>CZ2</Value>
287 -</Comp>
288 -<!—- metadata attributes are reported like in metadata messages ~-~->
289 -<Metadata>
290 -<Attribute id="COLLECTION">
291 -<Attribute id="METHOD">
292 -<Text lang="en">AAA</Text>
293 -</Attribute>
294 -</Attribute>
295 -<Attribute id="CONTACT">
296 -<Value>CONTACT 1</Value>
297 -<Attribute id="NAME">
298 -<Value>Contact 1 Name 1</Value>
299 -</Attribute>
300 -<Attribute id="NAME">
301 -<Value>Contact 1 Name 2</Value>
302 -</Attribute>
303 -</Attribute>
304 -<Attribute id="CONTACT">
305 -<Value>CONTACT 2</Value>
306 -<Attribute id="NAME">
307 -<Value>Contact 2 Name 1</Value>
308 -</Attribute>
309 -<Attribute id="NAME">
310 -<Value>Contact 2 Name 2</Value>
311 -</Attribute>
312 -</Attribute>
313 -</Metadata>
314 -</Obs>
315 -
316 -=== New - Metadata Provision Agreement ===
317 -
315 +(% class="wikigeneratedid" id="HNew-MetadataProvisionAgreement" %)
316 +**New - Metadata Provision Agreement**
318 318  In version 2.1 a Provision Agreement could be used to report information against a Dataflow or Metadataflow. From version 3.0 this is managed by two separate structures, the Data Provision Agreement and the Metadata Provision Agreement.
319 319  
320 -=== Move target to Metadataflow and Metadata Provision Agreement ===
321 -
319 +(% class="wikigeneratedid" id="HMovetargettoMetadataflowandMetadataProvisionAgreement" %)
320 +**Move target to Metadataflow and Metadata Provision Agreement**
322 322  For reference metadata that is reported against structures, the allowable targets information which is used to specify what structures the reference metadata can be reported against, has moved to the Metadataflow and can be further refined in the Metadata Provision Agreement.
323 323  
324 -=== Add maintainable properties to reference metadata ===
325 -
323 +(% class="wikigeneratedid" id="HAddmaintainablepropertiestoreferencemetadata" %)
324 +**Add maintainable properties to reference metadata**
326 326  A Metadataset now has mandatory identification information, (owner id, id, version) enabling metadata providers to uniquely identify their reports for create, update or delete maintenance operations.
327 327  
328 328  == 3.5 Microdata Exchange ==
... ... @@ -329,70 +329,60 @@
329 329  
330 330  Several changes have been made the Data Structure Definition to support microdata use cases in addition to aggregated time series.
331 331  
332 -=== Multiple measures ===
331 +(% class="wikigeneratedid" id="HMultiplemeasures" %)
332 +**Multiple measures**
333 +Multiple measures are a common characteristic of microdatasets. To support this use case, the MeasureDimension has been deprecated and replaced with the option to define zero or more measures. Measures now act like any other component in that they use concepts, can have their own local coded or uncoded representation defined within the Data Structure Definition, and can be either mandatory or conditional. Creating a measure with the “MEASURE” concept role applied emulates the version 2.1 MeasureDimension behaviour as illustrated in the SDMX-ML example below:
333 333  
334 -Multiple measures are a common characteristic of microdatasets. To support this use case, the MeasureDimension has been deprecated and replaced with the option to define zero or more measures. Measures now act like any other component in that they use concepts, can have their own local coded or uncoded representation defined within the
335 +> <str:MeasureList id=”MeasureDescriptor”>
336 +> <str:Measure id=”OBS_VALUE” minOccurs=”1” maxOccurs=”1” usage=”mandatory” > <str:ConceptIdentity>
337 +> <Ref id=”OBS_VALUE” maintainableParentID=”CONCEPTS” agencyID=”SDMX” maintainableParentVersion=”1.0.0” />
338 +> </str:ConceptIdentity>
339 +> <str:LocalRepresentation>
340 +> <str:TextFormat textType=”String” isMultiLingual=”true” />
341 +> </str:LocalRepresentation>
342 +> <str:ConceptRole>
343 +> <Ref id=”MEASURE” maintainableParentID=”SDMX_CONCEPT_ROLES” agencyID=”SDMX” maintainableParentVersion=”1.0.0” />
344 +> </str:ConceptRole>
345 +> </str:Measure>
346 +> ...
347 +> <str:Measure>
348 +> </str:MeasureList>
335 335  
336 -Data Structure Definition, and can be either mandatory or conditional. Creating a measure with the “MEASURE” concept role applied emulates the version 2.1
350 +(% class="wikigeneratedid" id="HMulti-valuemeasuresandattributes" %)
351 +**Multi-value measures and attributes**
352 +Both measures and attributes have been extended with the option to take ‘arrays’ of 193 multiple coded or uncoded values. This supports use cases like multiple observation 194 status flags. New //minOccurs// and //maxOccurs// properties define the valid number of 195 values. The //usage// property separately defines whether the measure or attribute is //mandatory// or optional. In the SDMX-ML measure example above, the properties //minOccurs=”1” maxOccurs=”1” usage=”mandatory”// specify that OBS_VALUE must be 198 reported, and can only consist of a single value.
337 337  
338 -MeasureDimension behaviour as illustrated in the SDMX-ML example below:
339 -
340 -<str:MeasureList id=”MeasureDescriptor”>
341 -<str:Measure id=”OBS_VALUE” minOccurs=”1” maxOccurs=”1” usage=”mandatory” > <str:ConceptIdentity>
342 -<Ref id=”OBS_VALUE” maintainableParentID=”CONCEPTS” agencyID=”SDMX” maintainableParentVersion=”1.0.0” />
343 -</str:ConceptIdentity>
344 -<str:LocalRepresentation>
345 -<str:TextFormat textType=”String” isMultiLingual=”true” />
346 -</str:LocalRepresentation>
347 -<str:ConceptRole>
348 -<Ref id=”MEASURE” maintainableParentID=”SDMX_CONCEPT_ROLES” agencyID=”SDMX” maintainableParentVersion=”1.0.0” />
349 -</str:ConceptRole>
350 -</str:Measure>
351 -...
352 -<str:Measure>
353 -</str:MeasureList>
354 -
355 -=== Multi-value measures and attributes ===
356 -
357 -Both measures and attributes have been extended with the option to take ‘arrays’ of 193 multiple coded or uncoded values. This supports use cases like multiple observation 194 status flags. New //minOccurs// and //maxOccurs// properties define the valid number of 195 values. The //usage// property separately defines whether the measure or attribute is
358 -
359 -//mandatory// or optional. In the SDMX-ML measure example above, the properties
360 -
361 -//minOccurs=”1” maxOccurs=”1” usage=”mandatory”// specify that OBS_VALUE must be 198 reported, and can only consist of a single value.
362 -
363 -=== Attributes relationship to measures ===
364 -
354 +(% class="wikigeneratedid" id="HAttributesrelationshiptomeasures" %)
355 +**Attributes relationship to measures**
365 365  In addition to attaching attributes to a specific level within the dataset, their relationship 202 to measures can also be defined.
366 366  
367 -=== Value lists ===
358 +(% class="wikigeneratedid" id="HValuelists" %)
359 +**Value lists**
360 +Value lists help in modelling microdata by providing an enumeration similar to code lists 206 but allowing any string values without being restricted to the rules of SDMX identifiers. That allows ValueItems (the equivalent to Code) to contain symbols like ‘¥’ and ‘€’, but also means they are not identifiable.
368 368  
369 -Value lists help in modelling microdata by providing an enumeration similar to code lists 206 but allowing any string values without being restricted to the rules of SDMX identifiers.
370 -
371 -That allows ValueItems (the equivalent to Code) to contain symbols like ‘¥’ and ‘€’, but 208 also means they are not identifiable.
372 -
373 373  == 3.6 Geospatial Data Exchange ==
374 374  
375 375  The version 3.0 model has been extended to provide explicit support for geospatial data.
376 376  
377 -=== GeospatialInformation type ===
378 -
366 +(% class="wikigeneratedid" id="HGeospatialInformationtype" %)
367 +**GeospatialInformation type**
379 379  A new GeospatialInformation string type has been added which can be used as the 214 representation for any dimension, attribute or measure component. The value which is a 215 string expression conforming to the syntax defined in Section 6 of the technical 216 specifications precisely defines a ‘Geo Feature Set’ – a collection of geographical 217 features like points, lines or polygons. Its use is recommended in conjunction with the “GEO_FEATURE_SET” concept role.
380 380  
381 -=== Geospatial code lists ===
382 -
370 +(% class="wikigeneratedid" id="HGeospatialcodelists" %)
371 +**Geospatial code lists**
383 383  Two new specialised types of code list have been added where the definition of each code includes additional geospatial information in addition to the standard ID, name and description:
384 384  
385 385  * GeographicCodelist – each item includes an element to represent a specific Geo Feature Set which is described using the same expression syntax as for GeospatialInformation type.
386 386  * GeoGridCodelist – A code list defining a geographical grid composed of cells representing regular squared portions of the Earth. Each item references a cell within the grid.
387 387  
388 -=== 3.7 Structure Mapping ===
377 +== 3.7 Structure Mapping ==
389 389  
390 390  The Structure Set in version 2.1 is a container for many mapping structures including Data Structure Map, Codelist Map and Concept Map. For version 3.0 the Structure Set artefact has been deprecated and replaced with a number of new maintainables giving better flexibility and reusability, specifically: Structure Map, Concept Scheme Map, Representation Map, Reporting Taxonomy Map, Category Scheme Map and Organisation Scheme Map.
391 391  
392 392  The version 2.1 Codelist Map been replaced with Representation Map which allows mappings to be defined between any combination of Code Lists, Value Lists and noncoded representations such as text strings and numbers.
393 393  
394 -==== Many-to-many source and target components ====
395 -
383 +(% class="wikigeneratedid" id="HMany-to-manysourceandtargetcomponents" %)
384 +**Many-to-many source and target components**
396 396  Structure mapping rules may be defined with both multiple source components and multiple target components in contrast to version 2.1 where only one source and target was allowed. That supports many-to-many (n-n) mapping use cases where the output of a mapping rule may be dependent on the combination of a number of input components. For instance:
397 397  
398 398  Set the output component INDICATOR=”DE_A” if the input components are FREQ=”A” and REF_AREA=”DE”.
... ... @@ -402,22 +402,21 @@
402 402  Set the output components FREQ=”A”, REF_AREA=”DE” if the input component INDICATOR=”DE_A”.
403 403  
404 404  **Fixed source and target**
405 -
406 406  The Structure Map may now define input or output components which have a fixed value.
407 407  
408 -==== Time representations mapping ====
409 -
396 +(% class="wikigeneratedid" id="HTimerepresentationsmapping" %)
397 +**Time representations mapping**
410 410  Non SDMX time representations may now be described in a Structure Map, allowing them to be mapped into SDMX time formats.
411 411  
412 -==== Regular expression and substring mappings ====
413 -
400 +(% class="wikigeneratedid" id="HRegularexpressionandsubstringmappings" %)
401 +**Regular expression and substring mappings**
414 414  All item maps allow the use of regular expressions and substrings to match source values, specifically: Concept Scheme Map, Reporting Taxonomy Map, Category Scheme Map and Organisation Scheme Map.
415 415  
416 -==== Item maps validity period ====
417 -
404 +(% class="wikigeneratedid" id="HItemmapsvalidityperiod" %)
405 +**Item maps validity period**
418 418  Item maps may further define the period for which the mapping is valid, meaning the mapping rule will only be applied if the row of information being mapped is within the period.
419 419  
420 -=== 3.8 Constraints ===
408 +== 3.8 Constraints ==
421 421  
422 422  Constraints in version 3.0 are modelled using two separate artefacts which replace the version 2.1 content constraint:
423 423  
... ... @@ -432,17 +432,17 @@
432 432  
433 433  Attachment constraints have been deprecated due to a lack of use cases.
434 434  
435 -=== 3.9 Code List Extension ===
423 +== 3.9 Code List Extension ==
436 436  
437 437  In addition to the two new specialised geospatial forms, the option has been added to define a code list as an extension of, or by inheriting codes from, other lists. An optional prefix can be added to inherited codes to disambiguate duplicates.
438 438  
439 439  This feature allows new code lists to be easily derived from existing lists without the need to make and manually maintain copies. When querying for extended code list structures using the REST API, the option has been added to retrieve either the definition or the materialised list. Traditional literal lists of codes continue to be supported.
440 440  
441 -=== 3.10 Discriminated Union of Code Lists ===
429 +== 3.10 Discriminated Union of Code Lists ==
442 442  
443 443  Combining code list extension with wildcarded constraints solves the discriminated union of code lists problem where a classification or breakdown has multiple “variants” which are all valid but mutually exclusive. A common example is economic activity where several alternative classification schemes are in use including ISIC revisions 1 to 4 and NACE as used in the European Community.
444 444  
445 -=== 3.11 Code Hierarchies ===
433 +== 3.11 Code Hierarchies ==
446 446  
447 447  Code hierarchies allow the definition of complex hierarchies of codes from potentially multiple lists for data discovery purposes. Hierarchical Codelist has been deprecated and replaced by two new artefacts: Hierarchy – the actual hierarchy of codes, and Hierarchy Association links hierarchies directly to any other identifiable object, a capability missing 312 from the version 2.1 model. Further, the linkage can be within a particular context, for instance linking a hierarchy to a dimension within the context of a specific Dataflow (dimension REF_AREA in the context of the ECB:EXR Dataflow).
448 448  
... ... @@ -463,7 +463,6 @@
463 463  Examples:
464 464  
465 465  SDMX:CL_AREA(1.0.0)
466 -
467 467  SDMX:CL_AREA(2.3.2)
468 468  
469 469  == Dependency management ==
... ... @@ -470,10 +470,9 @@
470 470  
471 471  Additional constructs are possible for dependency management when referencing structures. For instance:
472 472  
473 -2.3+.1 Means the currently latest available version >= “2.3.1” and < “3.0.0” (all backwards compatible versions >= “2.3.1”).
460 +2.3+.1  Means the currently latest available version >= “2.3.1” and < “3.0.0” (all backwards compatible versions >= “2.3.1”).
461 +2+.3.1  Means the currently latest available version >= “2.3.1” (even if not backwards compatible).
474 474  
475 -2+.3.1 Means the currently latest available version >= “2.3.1” (even if not backwards compatible).
476 -
477 477  == Draft structures ==
478 478  
479 479  A key principle is that semantically versioned structures are immutable and must not be changed without a corresponding change to the version number, except where explicitly marked as draft using extensions to the version number.
... ... @@ -480,12 +480,10 @@
480 480  
481 481  MAJOR.MINOR.PATCH-EXTENSION
482 482  
483 -1.10.0-draft Means that version 1.10.0 is still being modified and may change – equivalent to setting isFinal=false in SDMX 2.1.
469 +1.10.0-draft  Means that version 1.10.0 is still being modified and may change – equivalent to setting isFinal=false in SDMX 2.1.
470 +1.10.0-unstable  Alternative to -draft.
471 +1.10.0-notfinal  Alternative to -draft.
484 484  
485 -1.10.0-unstable Alternative to -draft.
486 -
487 -1.10.0-notfinal Alternative to -draft.
488 -
489 489  The SDMX 2.1 isFinal property is deprecated in 3.0.
490 490  
491 491  = 5 REST Web Services API =
... ... @@ -508,8 +508,8 @@
508 508  
509 509  Data queries have been changed to provide more granular selections from contexts wider than just a Dataflow.
510 510  
511 -=== Extend the context of data retrieval ===
512 -
495 +(% class="wikigeneratedid" id="HExtendthecontextofdataretrieval" %)
496 +**Extend the context of data retrieval**
513 513  Version 2.1 data queries always retrieved data from a single specific Dataflow. In version 3.0, the query context may be specified as:
514 514  
515 515  * Dataflow;
... ... @@ -518,18 +518,20 @@
518 518  
519 519  Data queries may also search across datasets, for instance “retrieve all data about a country”.
520 520  
521 -=== Component-based filters ===
522 -
505 +(% class="wikigeneratedid" id="HComponent-basedfilters" %)
506 +**Component-based filters**
523 523  Expressions filtering on individual components can now be included as part of the data query URL.
524 524  
525 525  /data/dataflow/ESTAT/ICP?c[REF_AREA]=CH&c[CONF_STATUS]=F
526 526  
527 -=== Support for operators ===
528 -
511 +(% class="wikigeneratedid" id="HSupportforoperators" %)
512 +**Support for operators**
529 529  Filter expressions can also include operators.
530 530  
531 -/data/dataflow/ESTAT/ICP?c[REF_AREA]=DE&c[ICP_ITEM]=sw:01&c[TIME_PERIOD]=ge:2015 Operators include:
515 +/data/dataflow/ESTAT/ICP?c[REF_AREA]=DE&c[ICP_ITEM]=sw:01&c[TIME_PERIOD]=ge:2015
532 532  
517 +Operators include:
518 +
533 533  (% style="width:531.039px" %)
534 534  |(% style="width:151px" %)eq|(% style="width:378px" %)Equals
535 535  |(% style="width:151px" %)ne|(% style="width:378px" %)Not equal to