Changes for page Part IV. Data and Reference Metadata Namespaces
Last modified by Elena on 2025/09/10 11:19
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -460,7 +460,6 @@ 460 460 </xs:annotation> 461 461 </xs:enumeration> 462 462 463 - 464 464 === 3.3.5 Representation with Value List Enumeration === 465 465 466 466 A representation which defines an enumeration from a value list will result in a simple type that is a restriction of the xs:string data type. The simple type will define enumerations for each value item in the value list. The value for these enumerations will be identifier of the item. If desired, the names of the item may be placed in the documentation of the enumeration, but this is not required. ... ... @@ -475,58 +475,60 @@ 475 475 476 476 If the representation is not simple, see the rules in the following section for complex text formats. If the representation is simple, the first step is to determine the base type from the text format data type: 477 477 478 -|**SDMX Data Type**|**XML Schema Data Type**| 479 -|String|xs:string| 480 -|AlphaNumeric|common:AlphaNumericType| 481 -|Alpha|common:AlphaType| 482 -|Numeric|common:NumericType| 483 -|BigInteger|xs:integer| 484 -|Integer|xs:int| 485 -|Long|xs:long| 486 -|Short|xs:short| 487 -|Decimal|xs:decimal| 488 -|Float|xs:float| 489 -|Double|xs:double| 490 -|Boolean|xs:Boolean| 491 -|URI|xs:anyURI| 492 -|Count|xs:integer| 493 -|InclusiveValueRange|xs:decimal| 494 -|ExclusiveValueRange|xs: decimal| 495 -|Incremental|xs: decimal| 496 -|ObservationalTimePeriod|common:ObservationalTimePeriodType| 497 -|StandardTimePeriod|common:StandardTimePeriodType| 498 -|BasicTimePeriod|common:BasicTimePeriodType| 499 -|GregorianTimePeriod|common:GregorianTimePeriodType| 500 -|GregorianYear|xs:gYear| 501 -|GregorianYearMonth|xs:gYearMonth| 502 -|GregorianDay|xs:date| 503 -|ReportingTimePeriod|common:ReportingTimePeriodType| 504 -|ReportingYear|common:ReportingYearType| 505 -|ReportingSemester|common:ReportingSemesterType| 506 -|ReportingTrimester|common:ReportingTrimesterType| 507 -|ReportingQuarter|common:ReportingQuarterType| 508 -|ReportingMonth|common:ReportingMonthType| 509 -|ReportingWeek|common:ReportingWeekType| 510 -|ReportingDay|common:ReportingDayType| 511 -|DateTime|xs:dateTime| 512 -|TimeRange|common:TimeRangeType| 513 -|Month|xs:gMonth| 514 -|MonthDay|xs:gMonthDay| 515 -|Day|xs:gDay| 516 -|Time|xs:time| 517 -|Duration|xs:duration| 518 -|GeospatialInformation|xs:string| 519 -|XHTML|See the following section for complex representations| 477 +(% style="width:679.294px" %) 478 +|(% style="width:286px" %)**SDMX Data Type**|(% style="width:390px" %)**XML Schema Data Type** 479 +|(% style="width:286px" %)String|(% style="width:390px" %)xs:string 480 +|(% style="width:286px" %)AlphaNumeric|(% style="width:390px" %)common:AlphaNumericType 481 +|(% style="width:286px" %)Alpha|(% style="width:390px" %)common:AlphaType 482 +|(% style="width:286px" %)Numeric|(% style="width:390px" %)common:NumericType 483 +|(% style="width:286px" %)BigInteger|(% style="width:390px" %)xs:integer 484 +|(% style="width:286px" %)Integer|(% style="width:390px" %)xs:int 485 +|(% style="width:286px" %)Long|(% style="width:390px" %)xs:long 486 +|(% style="width:286px" %)Short|(% style="width:390px" %)xs:short 487 +|(% style="width:286px" %)Decimal|(% style="width:390px" %)xs:decimal 488 +|(% style="width:286px" %)Float|(% style="width:390px" %)xs:float 489 +|(% style="width:286px" %)Double|(% style="width:390px" %)xs:double 490 +|(% style="width:286px" %)Boolean|(% style="width:390px" %)xs:Boolean 491 +|(% style="width:286px" %)URI|(% style="width:390px" %)xs:anyURI 492 +|(% style="width:286px" %)Count|(% style="width:390px" %)xs:integer 493 +|(% style="width:286px" %)InclusiveValueRange|(% style="width:390px" %)xs:decimal 494 +|(% style="width:286px" %)ExclusiveValueRange|(% style="width:390px" %)xs: decimal 495 +|(% style="width:286px" %)Incremental|(% style="width:390px" %)xs: decimal 496 +|(% style="width:286px" %)ObservationalTimePeriod|(% style="width:390px" %)common:ObservationalTimePeriodType 497 +|(% style="width:286px" %)StandardTimePeriod|(% style="width:390px" %)common:StandardTimePeriodType 498 +|(% style="width:286px" %)BasicTimePeriod|(% style="width:390px" %)common:BasicTimePeriodType 499 +|(% style="width:286px" %)GregorianTimePeriod|(% style="width:390px" %)common:GregorianTimePeriodType 500 +|(% style="width:286px" %)GregorianYear|(% style="width:390px" %)xs:gYear 501 +|(% style="width:286px" %)GregorianYearMonth|(% style="width:390px" %)xs:gYearMonth 502 +|(% style="width:286px" %)GregorianDay|(% style="width:390px" %)xs:date 503 +|(% style="width:286px" %)ReportingTimePeriod|(% style="width:390px" %)common:ReportingTimePeriodType 504 +|(% style="width:286px" %)ReportingYear|(% style="width:390px" %)common:ReportingYearType 505 +|(% style="width:286px" %)ReportingSemester|(% style="width:390px" %)common:ReportingSemesterType 506 +|(% style="width:286px" %)ReportingTrimester|(% style="width:390px" %)common:ReportingTrimesterType 507 +|(% style="width:286px" %)ReportingQuarter|(% style="width:390px" %)common:ReportingQuarterType 508 +|(% style="width:286px" %)ReportingMonth|(% style="width:390px" %)common:ReportingMonthType 509 +|(% style="width:286px" %)ReportingWeek|(% style="width:390px" %)common:ReportingWeekType 510 +|(% style="width:286px" %)ReportingDay|(% style="width:390px" %)common:ReportingDayType 511 +|(% style="width:286px" %)DateTime|(% style="width:390px" %)xs:dateTime 512 +|(% style="width:286px" %)TimeRange|(% style="width:390px" %)common:TimeRangeType 513 +|(% style="width:286px" %)Month|(% style="width:390px" %)xs:gMonth 514 +|(% style="width:286px" %)MonthDay|(% style="width:390px" %)xs:gMonthDay 515 +|(% style="width:286px" %)Day|(% style="width:390px" %)xs:gDay 516 +|(% style="width:286px" %)Time|(% style="width:390px" %)xs:time 517 +|(% style="width:286px" %)Duration|(% style="width:390px" %)xs:duration 518 +|(% style="width:286px" %)GeospatialInformation|(% style="width:390px" %)xs:string 519 +|(% style="width:286px" %)XHTML|(% style="width:390px" %)See the following section for complex representations 520 520 521 521 If the text format does not specify any further facets, then the determined type is the listed type or a type which derives from the listed type without placing any addition restrictions on it. However, if one or more facets are specified, then a simple type based on the listed type is necessary. The simple type derives via restriction from the listed type and adds facets according to the following table (the values are mapped as is): 522 522 523 -|**SDMX Facet**|**XML Schema Facet**| 524 -|minLength|xs:minLength| 525 -|maxLength|xs:maxLength| 526 -|minValue[^1]|if ExclusiveValueRange: xs:minExclusives, else: xs:minInclusive| 527 -|maxValue[^1]|if ExclusiveValueRange: xs:maxExclusives, else: xs:maxInclusive| 528 -|decimals[^1]|xs:fractionDigits| 529 -|pattern|xs:pattern| 523 +(% style="width:1007.29px" %) 524 +|(% style="width:267px" %)**SDMX Facet**|(% style="width:729px" %)**XML Schema Facet** 525 +|(% style="width:267px" %)minLength|(% style="width:729px" %)xs:minLength 526 +|(% style="width:267px" %)maxLength|(% style="width:729px" %)xs:maxLength 527 +|(% style="width:267px" %)minValue[^1]|(% style="width:729px" %)if ExclusiveValueRange: xs:minExclusives, else: xs:minInclusive 528 +|(% style="width:267px" %)maxValue[^1]|(% style="width:729px" %)if ExclusiveValueRange: xs:maxExclusives, else: xs:maxInclusive 529 +|(% style="width:267px" %)decimals[^1]|(% style="width:729px" %)xs:fractionDigits 530 +|(% style="width:267px" %)pattern|(% style="width:729px" %)xs:pattern 530 530 531 531 [^1]: Note that these options only apply to numeric representations and should be ignored if the data type is non-numeric. 532 532 ... ... @@ -564,35 +564,36 @@ 564 564 565 565 For convenience the common schema provides the union types for the following data types. 566 566 567 -|**SDMX Data Type**|**XML Schema Data Type**| 568 -|AlphaNumeric|common:AlphaNumericOrNotApplicableType| 569 -|Alpha|common:AlphaOrNotApplicableType| 570 -|Numeric|common:NumericOrNotApplicableType| 571 -|BigInteger|common:IntegerOrNotApplicableType| 572 -|Integer|common:IntOrNotApplicableType| 573 -|Long|common:LongOrNotApplicableType| 574 -|Short|common:ShortOrNotApplicableType| 575 -|Decimal|common:DecimalOrNotApplicableType| 576 -|Float|common:FloatOrNotApplicableType| 577 -|Double|common:DoubleOrNotApplicableType| 578 -|Boolean|common:BooleanOrNotApplicableType| 579 -|Count|common:IntegerOrNotApplicableType| 580 -|InclusiveValueRange|common:DecimalOrNotApplicableType| 581 -|ExclusiveValueRange|common:DecimalOrNotApplicableType| 582 -|Incremental|common:DecimalOrNotApplicableType| 583 -|ObservationalTimePeriod|common:ObservationalTimePeriodOrNotApplicableType| 584 -|StandardTimePeriod|common:StandardTimePeriodOrNotApplicableType| 585 -|BasicTimePeriod|common:BasicTimePeriodType| 586 -|GregorianTimePeriod|common:GregorianTimePeriodOrNotApplicableType| 587 -|ReportingTimePeriod|common:ReportingTimePeriodOrNotApplicableType| 588 -|ReportingYear|common:ReportingYearOrNotApplicableType| 589 -|ReportingSemester|common:ReportingSemesterOrNotApplicableType| 590 -|ReportingTrimester|common:ReportingTrimesterOrNotApplicableType| 591 -|ReportingQuarter|common:ReportingQuarterOrNotApplicableType| 592 -|ReportingMonth|common:ReportingMonthOrNotApplicableType| 593 -|ReportingWeek|common:ReportingWeekOrNotApplicableType| 594 -|ReportingDay|common:ReportingDayOrNotApplicableType| 595 -|TimeRange|common:TimeRangeOrNotApplicableType| 568 +(% style="width:747.294px" %) 569 +|**SDMX Data Type**|(% style="width:418px" %)**XML Schema Data Type** 570 +|AlphaNumeric|(% style="width:418px" %)common:AlphaNumericOrNotApplicableType 571 +|Alpha|(% style="width:418px" %)common:AlphaOrNotApplicableType 572 +|Numeric|(% style="width:418px" %)common:NumericOrNotApplicableType 573 +|BigInteger|(% style="width:418px" %)common:IntegerOrNotApplicableType 574 +|Integer|(% style="width:418px" %)common:IntOrNotApplicableType 575 +|Long|(% style="width:418px" %)common:LongOrNotApplicableType 576 +|Short|(% style="width:418px" %)common:ShortOrNotApplicableType 577 +|Decimal|(% style="width:418px" %)common:DecimalOrNotApplicableType 578 +|Float|(% style="width:418px" %)common:FloatOrNotApplicableType 579 +|Double|(% style="width:418px" %)common:DoubleOrNotApplicableType 580 +|Boolean|(% style="width:418px" %)common:BooleanOrNotApplicableType 581 +|Count|(% style="width:418px" %)common:IntegerOrNotApplicableType 582 +|InclusiveValueRange|(% style="width:418px" %)common:DecimalOrNotApplicableType 583 +|ExclusiveValueRange|(% style="width:418px" %)common:DecimalOrNotApplicableType 584 +|Incremental|(% style="width:418px" %)common:DecimalOrNotApplicableType 585 +|ObservationalTimePeriod|(% style="width:418px" %)common:ObservationalTimePeriodOrNotApplicableType 586 +|StandardTimePeriod|(% style="width:418px" %)common:StandardTimePeriodOrNotApplicableType 587 +|BasicTimePeriod|(% style="width:418px" %)common:BasicTimePeriodType 588 +|GregorianTimePeriod|(% style="width:418px" %)common:GregorianTimePeriodOrNotApplicableType 589 +|ReportingTimePeriod|(% style="width:418px" %)common:ReportingTimePeriodOrNotApplicableType 590 +|ReportingYear|(% style="width:418px" %)common:ReportingYearOrNotApplicableType 591 +|ReportingSemester|(% style="width:418px" %)common:ReportingSemesterOrNotApplicableType 592 +|ReportingTrimester|(% style="width:418px" %)common:ReportingTrimesterOrNotApplicableType 593 +|ReportingQuarter|(% style="width:418px" %)common:ReportingQuarterOrNotApplicableType 594 +|ReportingMonth|(% style="width:418px" %)common:ReportingMonthOrNotApplicableType 595 +|ReportingWeek|(% style="width:418px" %)common:ReportingWeekOrNotApplicableType 596 +|ReportingDay|(% style="width:418px" %)common:ReportingDayOrNotApplicableType 597 +|TimeRange|(% style="width:418px" %)common:TimeRangeOrNotApplicableType 596 596 597 597 === 3.3.8 Representation for Intentionally Missing Measure and Attribute Values === 598 598 ... ... @@ -631,35 +631,36 @@ 631 631 632 632 For convenience the common schema provides the union types for the following data types. 633 633 634 -|**SDMX Data Type**|**XML Schema Data Type**| 635 -|AlphaNumeric|common:AlphaNumericOrMissingType| 636 -|Alpha|common:AlphaOrMissingType| 637 -|Numeric|common:NumericOrMissingType| 638 -|BigInteger|common:IntegerOrMissingType| 639 -|Integer|common:IntOrMissingType| 640 -|Long|common:LongOrMissingType| 641 -|Short|common:ShortOrMissingType| 642 -|Decimal|common:DecimalOrMissingType| 643 -|Float|common:FloatOrMissingType| 644 -|Double|common:DoubleOrMissingType| 645 -|Boolean|common:BooleanOrMissingType| 646 -|Count|common:IntegerOrMissingType| 647 -|InclusiveValueRange|common:DecimalOrMissingType| 648 -|ExclusiveValueRange|common:DecimalOrMissingType| 649 -|Incremental|common:DecimalOrMissingType| 650 -|ObservationalTimePeriod|common:ObservationalTimePeriodOrMissingType| 651 -|StandardTimePeriod|common:StandardTimePeriodOrMissingType| 652 -|BasicTimePeriod|common:BasicTimePeriodType| 653 -|GregorianTimePeriod|common:GregorianTimePeriodOrMissingType| 654 -|ReportingTimePeriod|common:ReportingTimePeriodOrMissingType| 655 -|ReportingYear|common:ReportingYearOrMissingType| 656 -|ReportingSemester|common:ReportingSemesterOrMissingType| 657 -|ReportingTrimester|common:ReportingTrimesterOrMissingType| 658 -|ReportingQuarter|common:ReportingQuarterOrMissingType| 659 -|ReportingMonth|common:ReportingMonthOrMissingType| 660 -|ReportingWeek|common:ReportingWeekOrMissingType| 661 -|ReportingDay|common:ReportingDayOrMissingType| 662 -|TimeRange|common:TimeRangeOrMissingType| 636 +(% style="width:804.294px" %) 637 +|(% style="width:279px" %)**SDMX Data Type**|(% style="width:522px" %)**XML Schema Data Type** 638 +|(% style="width:279px" %)AlphaNumeric|(% style="width:522px" %)common:AlphaNumericOrMissingType 639 +|(% style="width:279px" %)Alpha|(% style="width:522px" %)common:AlphaOrMissingType 640 +|(% style="width:279px" %)Numeric|(% style="width:522px" %)common:NumericOrMissingType 641 +|(% style="width:279px" %)BigInteger|(% style="width:522px" %)common:IntegerOrMissingType 642 +|(% style="width:279px" %)Integer|(% style="width:522px" %)common:IntOrMissingType 643 +|(% style="width:279px" %)Long|(% style="width:522px" %)common:LongOrMissingType 644 +|(% style="width:279px" %)Short|(% style="width:522px" %)common:ShortOrMissingType 645 +|(% style="width:279px" %)Decimal|(% style="width:522px" %)common:DecimalOrMissingType 646 +|(% style="width:279px" %)Float|(% style="width:522px" %)common:FloatOrMissingType 647 +|(% style="width:279px" %)Double|(% style="width:522px" %)common:DoubleOrMissingType 648 +|(% style="width:279px" %)Boolean|(% style="width:522px" %)common:BooleanOrMissingType 649 +|(% style="width:279px" %)Count|(% style="width:522px" %)common:IntegerOrMissingType 650 +|(% style="width:279px" %)InclusiveValueRange|(% style="width:522px" %)common:DecimalOrMissingType 651 +|(% style="width:279px" %)ExclusiveValueRange|(% style="width:522px" %)common:DecimalOrMissingType 652 +|(% style="width:279px" %)Incremental|(% style="width:522px" %)common:DecimalOrMissingType 653 +|(% style="width:279px" %)ObservationalTimePeriod|(% style="width:522px" %)common:ObservationalTimePeriodOrMissingType 654 +|(% style="width:279px" %)StandardTimePeriod|(% style="width:522px" %)common:StandardTimePeriodOrMissingType 655 +|(% style="width:279px" %)BasicTimePeriod|(% style="width:522px" %)common:BasicTimePeriodType 656 +|(% style="width:279px" %)GregorianTimePeriod|(% style="width:522px" %)common:GregorianTimePeriodOrMissingType 657 +|(% style="width:279px" %)ReportingTimePeriod|(% style="width:522px" %)common:ReportingTimePeriodOrMissingType 658 +|(% style="width:279px" %)ReportingYear|(% style="width:522px" %)common:ReportingYearOrMissingType 659 +|(% style="width:279px" %)ReportingSemester|(% style="width:522px" %)common:ReportingSemesterOrMissingType 660 +|(% style="width:279px" %)ReportingTrimester|(% style="width:522px" %)common:ReportingTrimesterOrMissingType 661 +|(% style="width:279px" %)ReportingQuarter|(% style="width:522px" %)common:ReportingQuarterOrMissingType 662 +|(% style="width:279px" %)ReportingMonth|(% style="width:522px" %)common:ReportingMonthOrMissingType 663 +|(% style="width:279px" %)ReportingWeek|(% style="width:522px" %)common:ReportingWeekOrMissingType 664 +|(% style="width:279px" %)ReportingDay|(% style="width:522px" %)common:ReportingDayOrMissingType 665 +|(% style="width:279px" %)TimeRange|(% style="width:522px" %)common:TimeRangeOrMissingType 663 663 664 664 === 3.3.9 Representation with Complex Text Format === 665 665 ... ... @@ -716,34 +716,39 @@ 716 716 717 717 A complex type named DataSetType must be created. Its content model will be derived via restriction. The base type of the restriction is dsd:DataSetType. The complex type content model will be as follows: 718 718 719 -1. A sequence consisting of: 720 -1. An element reference to common:Annotations, with a minimum occurrence of 0 721 - 2. A local element named DataProvider with the type common:DataProviderReferenceType, a form of unqualified and a minimum occurrence of 0 722 - 3. A choice with a minimum occurrence of 0 and a maximum occurrence of unbounded consisting of: 723 -1. A local element named Atts with a form of unqualified and a type of AttsType (as defined in the AttsType section which follows) 724 - 2. If the data structure defines groups, a local element named Group with a form of unqualified. The type of this element should be the type that is described in the GroupType section which follows. 725 - 3. If the dimension at the observation level is not AllDimensions, a local element named Series with a form of unqualified and a type of SeriesType (as defined in the SeriesType section which follows) 726 - 4. If the dimension at the observation level is AllDimensions, a local element named Obs with a form of unqualified and a type of ObsType (as defined in the ObsType section which follows) 727 - 4. If any metadata attribute usages defined in the data structure that declares an attribute relationship of dataflow, a local element named Metadata with the type metadata:MetadataSetType a form of unqualified, and a minimum occurences of 0 722 +~1. A sequence consisting of: 728 728 724 +* i. An element reference to common:Annotations, with a minimum occurrence of 0 725 +* ii A local element named DataProvider with the type common:DataProviderReferenceType, a form of unqualified and a minimum occurrence of 0 726 +* iii A choice with a minimum occurrence of 0 and a maximum occurrence of unbounded consisting of: 727 +** a. A local element named Atts with a form of unqualified and a type of AttsType (as defined in the AttsType section which follows) 728 +** b. If the data structure defines groups, a local element named Group with a form of unqualified. The type of this element should be the type that is described in the GroupType section which follows. 729 +** c. If the dimension at the observation level is not AllDimensions, a local element named Series with a form of unqualified and a type of SeriesType (as defined in the SeriesType section which follows) 730 +** d. If the dimension at the observation level is AllDimensions, a local element named Obs with a form of unqualified and a type of ObsType (as defined in the ObsType section which follows) 731 +* iv. If any metadata attribute usages defined in the data structure that declares an attribute relationship of dataflow, a local element named Metadata with the type metadata:MetadataSetType a form of unqualified, and a minimum occurences of 0 732 + 729 729 === 3.4.2 GroupType === 730 730 731 731 If the data structure definition defines only one group, a complex type with its name taken from the identifier of the lone group must be defined. This type is used for the Group element in the DataSetType. Its content model will be derived via restriction of the dsd:GroupType. The complex type content model will be as follows: 732 732 733 -1. A sequence consisting of: 734 -1. An element reference to common:Annotations, with a minimum occurrence of 0 735 - 2. If any attributes defined in the data structure that declares an attribute relationship with the group, a Comp element with a form of unqualified, a minimum occurrence of 0, a maximum occurrence of unbounded, and a type of dsd:CompType 736 - 3. If any metadata attribute usages defined in the data structure that declares an attribute relationship with the group, a local element named Metadata with the type metadata:MetadataSetType a form of unqualified, and a minimum occurrence of 0 737 -2. An attribute for each dimension referenced by the group. The XML attribute [name](#331-Component-Name-Determination) and [type](#333-Simple--Primitive-Type-Determination) are defined according to the general rules defined in the previous section, and the usage is required 738 -3. An attribute for each data attribute with simple representation defined in the data structure that declares an attribute relationship with the group or specifies the group as an attachment group. The XML attribute [name](#331-Component-Name-Determination) and [type](#333-Simple--Primitive-Type-Determination) are defined according to the general rules defined in the previous section, and the usage is optional 737 +~1. A sequence consisting of: 738 + 739 +* i. An element reference to common:Annotations, with a minimum occurrence of 0 740 +* ii. If any attributes defined in the data structure that declares an attribute relationship with the group, a Comp element with a form of unqualified, a minimum occurrence of 0, a maximum occurrence of unbounded, and a type of dsd:CompType 741 +* iii. If any metadata attribute usages defined in the data structure that declares an attribute relationship with the group, a local element named Metadata with the type metadata:MetadataSetType a form of unqualified, and a minimum occurrence of 0 742 + 743 +2. An attribute for each dimension referenced by the group. The XML attribute name and type are defined according to the general rules defined in the previous section, and the usage is required 744 +3. An attribute for each data attribute with simple representation defined in the data structure that declares an attribute relationship with the group or specifies the group as an attachment group. The XML attribute name and type are defined according to the general rules defined in the previous section, and the usage is optional 739 739 4. An attribute named type with a type of common:IDType, usage of optional, and a fixed value of the identifier of the group 740 740 741 741 If the data structure definition defines more than one group, an abstract complex type with name GroupType must be created. This type is used for the Group element in the DataSetType. Its content model will be derived via restriction of the dsd:GroupType. The complex type content model will be as follows: 742 742 743 -1. A sequence consisting of: 744 -1. An element reference to common:Annotations, with a minimum occurrence of 0 745 - 2. If any attributes defined in the data structure that declares an attribute relationship with a group, a Comp element with a form of unqualified, a minimum occurrence of 0, a maximum occurrence of unbounded, and a type of dsd:CompType 746 - 3. If any metadata attribute usages defined in the data structure that declares an attribute relationship with any group, a local element named Metadata with the type metadata:MetadataSetType a form of unqualified, and a minimum occurrence of 0 749 +~1. A sequence consisting of: 750 + 751 +* i. An element reference to common:Annotations, with a minimum occurrence of 0 752 +* ii. If any attributes defined in the data structure that declares an attribute relationship with a group, a Comp element with a form of unqualified, a minimum occurrence of 0, a maximum occurrence of unbounded, and a type of dsd:CompType 753 +* iii. If any metadata attribute usages defined in the data structure that declares an attribute relationship with any group, a local element named Metadata with the type metadata:MetadataSetType a form of unqualified, and a minimum occurrence of 0 754 + 747 747 2. An attribute named type with a type of Group.ID, and a usage of optional 748 748 3. An anyAttribute declaration with a namespace of ##local## 749 749 ... ... @@ -751,12 +751,14 @@ 751 751 752 752 For each group defined in the data structure definition, a complex type with its name taken from the group identifier is defined. Its content model will be derived via restriction of the previously defined GroupType. The complex type content model will be as follows: 753 753 754 -1. A sequence consisting of: 755 -1. An element reference to common:Annotations, with a minimum occurrence of 0 756 - 2. If any attributes with complex representation defined in the data structure declares an attribute relationship with the group, a Comp element with a form of unqualified, a minimum occurrence of 0, a maximum occurrence of unbounded, and a type of dsd:CompType 757 - 3. If any metadata attribute usages defined in the data structure that declares an attribute relationship with the group, a local element named Metadata with the type metadata:MetadataSetType a form of unqualified, and a minimum occurrence of 0 758 -2. An attribute for each dimension referenced by the group. The XML attribute [name](#331-Component-Name-Determination) and [type](#333-Simple--Primitive-Type-Determination) are defined according to the general rules defined in the previous section, and the usage is required 759 -3. An attribute for each data attribute with simple representation defined in the data structure that declares an attribute relationship with the group or specifies the group as an attachment group. The XML attribute [name](#331-Component-Name-Determination) and [type](#333-Simple--Primitive-Type-Determination) are defined according to the general rules defined in the previous section, and the usage is optional 762 +~1. A sequence consisting of: 763 + 764 +* i. An element reference to common:Annotations, with a minimum occurrence of 0 765 +* ii. If any attributes with complex representation defined in the data structure declares an attribute relationship with the group, a Comp element with a form of unqualified, a minimum occurrence of 0, a maximum occurrence of unbounded, and a type of dsd:CompType 766 +* iii. If any metadata attribute usages defined in the data structure that declares an attribute relationship with the group, a local element named Metadata with the type metadata:MetadataSetType a form of unqualified, and a minimum occurrence of 0 767 + 768 +2. An attribute for each dimension referenced by the group. The XML attribute name and type are defined according to the general rules defined in the previous section, and the usage is required 769 +3. An attribute for each data attribute with simple representation defined in the data structure that declares an attribute relationship with the group or specifies the group as an attachment group. The XML attribute name and type are defined according to the general rules defined in the previous section, and the usage is optional 760 760 4. An attribute named type with a type of Group.ID, usage of optional, and a fixed value of the identifier of the group 761 761 762 762 === 3.4.3 SeriesType === ... ... @@ -763,40 +763,46 @@ 763 763 764 764 If the dimension at the observation is not AllDimensions, a complex type name SeriesType must be created. Its content model will be derived via restriction of dsd:SeriesType. The complex type content model will be as follows: 765 765 766 -1. A sequence consisting of: 767 -1. An element reference to common:Annotations, with a minimum occurrence of 0 768 - 2. If any attributes with complex representation defined in the data structure declares an attribute relationship with a dimension that is not at the observation level, a Comp element with a form of unqualified, a minimum occurrence of 0, a maximum occurrence of unbounded, and a type of dsd:CompType 769 - 3. A local element named Obs with a form of unqualified, a minimum occurrence of 0, a maximum occurrence of unbounded, and a type of ObsType (as defined in the ObsType section which follows) 770 - 4. If any metadata attribute usages defined in the data structure that declares an attribute relationship with the series, a local element named Metadata with the type metadata:MetadataSetType a form of unqualified, and a minimum occurrence of 0 776 +~1. A sequence consisting of: 777 + 778 +* i. An element reference to common:Annotations, with a minimum occurrence of 0 779 +* ii. If any attributes with complex representation defined in the data structure declares an attribute relationship with a dimension that is not at the observation level, a Comp element with a form of unqualified, a minimum occurrence of 0, a maximum occurrence of unbounded, and a type of dsd:CompType 780 +* iii. A local element named Obs with a form of unqualified, a minimum occurrence of 0, a maximum occurrence of unbounded, and a type of ObsType (as defined in the ObsType section which follows) 781 +* iv. If any metadata attribute usages defined in the data structure that declares an attribute relationship with the series, a local element named Metadata with the type metadata:MetadataSetType a form of unqualified, and a minimum occurrence of 0 782 + 771 771 2. An attribute named TIME\_PERIOD with a type of common:ObservationalTimePeriod. If the dimension at the observation level is the time dimension (TIME\_PERIOD) or there is no time dimension defined by the data structure, a usage of prohibited; otherwise, a usage of required 772 -3. An attribute for each dimension defined by the data structure definition, except for the dimension at the observation level and the time dimension (TIME\_PERIOD). The XML attribute [name](#331-Component-Name-Determination)and[type](#333-Simple--Primitive-Type-Determination) are defined according to the general rules defined in the previous section, and the usage is required773 -4. An attribute for each data attribute defined with simple representation in the data structure that declares an attribute relationship with any dimension outside of the dimension at the observation level (so long as it does not also declare an attachment group). The XML attribute [name](#331-Component-Name-Determination)and[type](#333-Simple--Primitive-Type-Determination)are defined according to the general rules defined in the previous section, and the usage is optional784 +3. An attribute for each dimension defined by the data structure definition, except for the dimension at the observation level and the time dimension (TIME\_PERIOD). The XML attribute name and type are defined according to the general rules defined in the previous section, and the usage is required 785 +4. An attribute for each data attribute defined with simple representation in the data structure that declares an attribute relationship with any dimension outside of the dimension at the observation level (so long as it does not also declare an attachment group). The XML attribute name and type are defined according to the general rules defined in the previous section, and the usage is optional 774 774 775 775 === 3.4.4 AttsType === 776 776 777 777 A complex type named AttsType must be created. Its content model will be derived via restriction of dsd:AttsType. The complex type content model will be as follows: 778 778 779 -1. A sequence consisting of: 780 -1. An element reference to common:Annotations, with a minimum occurrence of 0 781 - 2. If any attributes with complex representation are defined in the data structure, a Comp element with a form of unqualified, a minimum occurrence of 0, a maximum occurrence of unbounded, and a type of dsd:CompType 791 +~1. A sequence consisting of: 792 + 793 +* i. An element reference to common:Annotations, with a minimum occurrence of 0 794 +* ii. If any attributes with complex representation are defined in the data structure, a Comp element with a form of unqualified, a minimum occurrence of 0, a maximum occurrence of unbounded, and a type of dsd:CompType 795 + 782 782 2. If there is no dimension (TIME\_PERIOD) defined by the data structure, an attribute named TIME\_PERIOD with a type of common:ObservationalTimePeriod, and a usage of prohibited 783 -3. An attribute for all dimension defined by the data structure definition. The XML attribute [name](#331-Component-Name-Determination)and[type](#333-Simple--Primitive-Type-Determination) are defined according to the general rules defined in the previous section, and the usage is optional784 -4. An attribute for each data attribute defined with simple representation in the data structure. The XML attribute [name](#331-Component-Name-Determination)and[type](#333-Simple--Primitive-Type-Determination)are defined according to the general rules defined in the previous section, and the usage is optional797 +3. An attribute for all dimension defined by the data structure definition. The XML attribute name and type are defined according to the general rules defined in the previous section, and the usage is optional 798 +4. An attribute for each data attribute defined with simple representation in the data structure. The XML attribute name and type are defined according to the general rules defined in the previous section, and the usage is optional 785 785 786 786 === 3.4.5 ObsType === 787 787 788 788 A complex type name ObsType must be created. Its content model will be derived via restriction of the base type dsd:ObsType. The complex type content model will be as follows: 789 789 790 -1. A sequence consisting of: 791 -1. An element reference to common:Annotations, with a minimum occurrence of 0 792 - 2. If any measures with complex representations are defined in the data structure, any attributes with complex representation that declare an attribute relationship with the observation, a Comp element with a form of unqualified, a minimum occurrence of 0, a maximum occurrence of unbounded, and a type of dsd:CompType 793 - 3. If any metadata attribute usages defined in the data structure that declares an attribute relationship with the observation, a local element named Metadata with the type metadata:MetadataSetType a form of unqualified, and a minimum occurrence of 0 804 +~1. A sequence consisting of: 805 + 806 +* i. An element reference to common:Annotations, with a minimum occurrence of 0 807 +* ii. If any measures with complex representations are defined in the data structure, any attributes with complex representation that declare an attribute relationship with the observation, a Comp element with a form of unqualified, a minimum occurrence of 0, a maximum occurrence of unbounded, and a type of dsd:CompType 808 +* iii. If any metadata attribute usages defined in the data structure that declares an attribute relationship with the observation, a local element named Metadata with the type metadata:MetadataSetType a form of unqualified, and a minimum occurrence of 0 809 + 794 794 2. An attribute named TIME\_PERIOD with a type of common: 795 795 ObservationalTimePeriodValueType. If the dimension at the observation level is the time dimension (TIME\_PERIOD) or all dimensions and the time dimension is defined by the data structure, a usage of required; otherwise, a usage of prohibited 796 -3. If the dimension at the observation level is not all dimensions or the time dimension (TIME\_PERIOD), an attribute for the dimension at the observation level. The XML attribute [name](#331-Component-Name-Determination)and[type](#333-Simple--Primitive-Type-Determination) are defined according to the general rules defined in the previous section, and the usage is required797 -4. If the dimension at the observation level is all dimensions, an attribute for each dimension defined by the data structure definition, except for the time dimension (TIME\_PERIOD). The XML attribute [name](#331-Component-Name-Determination)and[type](#333-Simple--Primitive-Type-Determination)are defined according to the general rules defined in the previous section, and the usage is required798 -5. An attribute for each measure with simple representation defined by the data structure definition. The XML attribute [name](#331-Component-Name-Determination)and[type](#333-Simple--Primitive-Type-Determination) is defined according to the general rules defined in the previous section, and the usage is optional799 -6. An attribute for each data attribute with simple representation defined in the data structure that declares an attribute relationship with the observation. The XML attribute [name](#331-Component-Name-Determination)and[type](#333-Simple--Primitive-Type-Determination)are defined according to the general rules defined in the previous section, and the usage is optional812 +3. If the dimension at the observation level is not all dimensions or the time dimension (TIME\_PERIOD), an attribute for the dimension at the observation level. The XML attribute name and type are defined according to the general rules defined in the previous section, and the usage is required 813 +4. If the dimension at the observation level is all dimensions, an attribute for each dimension defined by the data structure definition, except for the time dimension (TIME\_PERIOD). The XML attribute name and type are defined according to the general rules defined in the previous section, and the usage is required 814 +5. An attribute for each measure with simple representation defined by the data structure definition. The XML attribute name and type is defined according to the general rules defined in the previous section, and the usage is optional 815 +6. An attribute for each data attribute with simple representation defined in the data structure that declares an attribute relationship with the observation. The XML attribute name and type are defined according to the general rules defined in the previous section, and the usage is optional 800 800 801 801 === 3.4.6 CompType === 802 802 ... ... @@ -827,7 +827,7 @@ 827 827 828 828 === 4.1.2 Replace Action === 829 829 830 -Data or data-related reference metadata is to be replaced, through either update, insert or delete depending on already existing information. A full replacement is hereby assumed to take place at specific “replacement levels”: for entire observations and for any specific dimension combination for data-related reference metadata attributes. Within these “replacement levels” the provided values are inserted or updated, and omitted values are deleted. Values provided for the other attributes (those above the observation level) are merged (see *Merge*action).846 +Data or data-related reference metadata is to be replaced, through either update, insert or delete depending on already existing information. A full replacement is hereby assumed to take place at specific “//replacement levels//”: for entire observations and for any specific dimension combination for data-related reference metadata attributes. Within these “replacement levels” the provided values are inserted or updated, and omitted values are deleted. Values provided for the other attributes (those above the observation level) are merged (see //Merge// action). 831 831 832 832 Only non-dimensional components (measure, attribute or reference metadata values) can be **omitted** (null or absent). Bulk replacing is thus not supported. 833 833 ... ... @@ -835,9 +835,9 @@ 835 835 836 836 Replacing non-existing elements is not resulting in an error. 837 837 838 -All observations as well as the sets of data-related reference metadata attributes at specific dimension combinations impacted by the *Replace*action change their time stamp when used to update an SDMX storage system.854 +All observations as well as the sets of data-related reference metadata attributes at specific dimension combinations impacted by the //Replace// action change their time stamp when used to update an SDMX storage system. 839 839 840 -Because the *replace*action always takes place at specific levels, it cannot be used to replace a whole dataset or a whole series. However, a “*replace all*” effect can be achieved by combining a*Delete*dataset containing a completely wildcarded key (where all dimension values are omitted) with a*Merge*or*Replace*dataset within the same data message. Similarly, to replace a whole series, a message can combine a*delete*dataset containing only the partial key of the series (where the not used dimension values are omitted) with a*Merge*or*Replace*dataset for that series.856 +Because the //replace// action always takes place at specific levels, it cannot be used to replace a whole dataset or a whole series. However, a //“replace all”// effect can be achieved by combining a //Delete// dataset containing a completely wildcarded key (where all dimension values are omitted) with a //Merge// or //Replace// dataset within the same data message. Similarly, to replace a whole series, a message can combine a //delete// dataset containing only the partial key of the series (where the not used dimension values are omitted) with a //Merge// or //Replace// dataset for that series. 841 841 842 842 === 4.1.3 Delete Action === 843 843 ... ... @@ -857,52 +857,53 @@ 857 857 858 858 The following convention is used to indicate the state of components in data messages: 859 859 860 -| | |**Dimension value is**| |**Measure, attribute or reference metadata value is**| | 861 -| | |**Omitted**|**switched off**|**Omitted**|**Present**| 862 -|Action|Delete|bulk deletion: dimension value doesn't matter|only for irrelevant dimensions:1) higher-level (reference metadata) attributes not attached to this dimension(incl. TIME\_PERIOD)2) measures and attributes not attached to this dimension if the DSD allows for an ‘evolving structure’ (excl. TIME\_PERIOD)|to be deleted only if **all** non-dimension components are omitted|to be deleted| 863 -| |Merge|*bulk merge is not permitted*|(see above)|not to be changed|to be updated/inserted| 864 -| |Replace|*bulk replace is not permitted*|(see above)|at permitted replacement levels: to be deleted, otherwise not to be changed|to be updated/inserted| 865 -|Format|XML|xml element/attribute is absent|~|xml element/attribute is absent|any valid or intentionally missing value| 866 -| |JSON|\<empty\>|““|NULL or absent|(see above)| 867 -| |CSV|\<empty\> cell or column is absent|~|<empty> cell or column is absent|(see above)| 876 +(% style="width:1364.29px" %) 877 +| | |(% style="width:260px" %)**Dimension value is**|(% style="width:391px" %) |(% style="width:383px" %)**Measure, attribute or reference metadata value is**|(% style="width:184px" %) 878 +| | |(% style="width:260px" %)**Omitted**|(% style="width:391px" %)**switched off**|(% style="width:383px" %)**Omitted**|(% style="width:184px" %)**Present** 879 +|Action|Delete|(% style="width:260px" %)bulk deletion: dimension value doesn't matter|(% style="width:391px" %)only for irrelevant dimensions:1) higher-level (reference metadata) attributes not attached to this dimension(incl. TIME\_PERIOD)2) measures and attributes not attached to this dimension if the DSD allows for an ‘evolving structure’ (excl. TIME\_PERIOD)|(% style="width:383px" %)to be deleted only if **all** non-dimension components are omitted|(% style="width:184px" %)to be deleted 880 +| |Merge|(% style="width:260px" %)//bulk merge is not permitted//|(% style="width:391px" %)(see above)|(% style="width:383px" %)not to be changed|(% style="width:184px" %)to be updated/inserted 881 +| |Replace|(% style="width:260px" %)//bulk replace is not permitted//|(% style="width:391px" %)(see above)|(% style="width:383px" %)at permitted replacement levels: to be deleted, otherwise not to be changed|(% style="width:184px" %)to be updated/inserted 882 +|Format|XML|(% style="width:260px" %)xml element/attribute is absent|(% style="width:391px" %)~|xml element/attribute is absent|(% style="width:383px" %)any valid or intentionally missing value|(% style="width:184px" %) 883 +| |JSON|(% style="width:260px" %)\<empty\>|(% style="width:391px" %)““|(% style="width:383px" %)NULL or absent|(% style="width:184px" %)(see above) 884 +| |CSV|(% style="width:260px" %)\<empty\> cell or column is absent|(% style="width:391px" %)~|<empty> cell or column is absent|(% style="width:383px" %)(see above)|(% style="width:184px" %) 868 868 869 869 **Important notes:** 870 870 871 -The terms “ *delete*”, “*merge*” and “*replace*” do **not** imply a physical replacement or deletion of values in the underlying database. To minimize the physical resource requirements, SDMX web service implementations that do not support the*includeHistory*and*asOf*URL parameters might physically replace the existing values in the database. SDMX web services that neither support the *updatedAfter* URL parameter might also implement physical deletions. However, SDMX web services that support these parameters (or other time-machine features), would not overwrite or delete the physical values.888 +The terms “//delete//”, “//merge//” and “//replace//” do **not** imply a physical replacement or deletion of values in the underlying database. To minimize the physical resource requirements, SDMX web service implementations that do not support the //includeHistory// and //asOf// URL parameters might physically replace the existing values in the database. SDMX web services that neither support the *updatedAfter* URL parameter might also implement physical deletions. However, SDMX web services that support these parameters (or other time-machine features), would not overwrite or delete the physical values. 872 872 873 -SDMX web services that support the *includeHistory*or*asOf*URL parameters should never allow deleting their **historic** data content because this would interfere with the interests of data consumers, such as data aggregators. Therefore, a specific feature to physically delete previous (outdated) content is intentionally not added to the SDMX standard syntax. If such a feature is required by an organisation, then it needs to be implemented as a custom feature outside the SDMX standard.890 +SDMX web services that support the //includeHistory// or //asOf// URL parameters should never allow deleting their **historic** data content because this would interfere with the interests of data consumers, such as data aggregators. Therefore, a specific feature to physically delete previous (outdated) content is intentionally not added to the SDMX standard syntax. If such a feature is required by an organisation, then it needs to be implemented as a custom feature outside the SDMX standard. 874 874 875 -Likewise, all SDMX-compliant systems that do (or are configured to) support the *updatedAfter*URL parameter need to systematically retain the information about deleted data (or data-related reference metadata).892 +Likewise, all SDMX-compliant systems that do (or are configured to) support the //updatedAfter// URL parameter need to systematically retain the information about deleted data (or data-related reference metadata). 876 876 877 -All datasets – even with varying actions – within a single data message have always to be treated as **ACID transaction** to guarantee “transactional safety” (full data consistency and validity despite errors, power failures, and other mishaps). These datasets are to be processed in the order of appearance in the message. The advantage of such data messages is thus the ability to bundle separate *delete*and*replace*or*merge*actions into one transactional data message.894 +All datasets – even with varying actions – within a single data message have always to be treated as **ACID transaction** to guarantee “transactional safety” (full data consistency and validity despite errors, power failures, and other mishaps). These datasets are to be processed in the order of appearance in the message. The advantage of such data messages is thus the ability to bundle separate //delete// and //replace// or //merge// actions into one transactional data message. 878 878 879 -**Recommended [^2]dataset actions in SDMX web service responses to GET data queries:**896 +**Recommended{{footnote}}So far this is recommended for systems that do not require backward-compatibility. Later, with SDMX 4.0, this may generally be made mandatory{{/footnote}} dataset actions in SDMX web service responses to GET data queries:** 880 880 881 -1. Without the *updatedAfter*, *includeHistory*, *detail*, *attributes* or *measures* URL parameters: 882 - 883 - The response message should contain the retrieved data in a *Replace* dataset (instead of the previous *information* dataset). 898 +~1. Without the //updatedAfter//, //includeHistory//, //detail//, //attributes// or //measures// URL parameters: 884 884 885 -1. Without the *updatedAfter* and *includeHistory*, but with *detail*, *attributes* or *measures* URL parameters: 886 - 887 - The response message should contain the retrieved data in a *Merge* dataset (instead of the previous *Information* dataset). 900 +The response message should contain the retrieved data in a //Replace// dataset (instead of the previous *information* dataset). 888 888 889 -1. With the *updatedAfter* URL parameter: 890 - 891 - The response must include the information of all previously updated, inserted and deleted data or data-related reference metadata, even if bulk deletions have been used. One of the two approaches are possible: 902 +2. Without the //updatedAfter// and //includeHistory//, but with //detail//, //attributes// or //measures// URL parameters: 892 892 893 -* a *Delete* dataset for entirely deleted observations and for entirely deleted sets of (data-related reference metadata) attribute values attached to specific dimension combinations and 894 - a *Replace* dataset for all other changed observations and changed attribute and data-related reference metadata values attached to specific dimension combinations, or 895 -* a *Delete* dataset for entirely deleted observations, for entirely deleted sets of (data-related reference metadata) attribute values attached to specific dimension combinations and for individually deleted mesure, attribute and reference metadata values and 896 - a *Merge* dataset for all other updated or inserted observation, attribute and data-related reference metadata values. 897 - 898 - The DB synchronization use case requires that the generated response must always allow achieving to replicate the exact same punctual data content as currently stored in the queried data source. 904 +The response message should contain the retrieved data in a *Merge* dataset (instead of the previous *Information* dataset). 899 899 906 +3. With the *updatedAfter* URL parameter: 907 + 908 +The response must include the information of all previously updated, inserted and deleted data or data-related reference metadata, even if bulk deletions have been used. One of the two approaches are possible: 909 + 910 +* a //Delete// dataset for entirely deleted observations and for entirely deleted sets of (data-related reference metadata) attribute values attached to specific dimension combinations and 911 +a //Replace// dataset for all other changed observations and changed attribute and data-related reference metadata values attached to specific dimension combinations, or 912 +* a //Delete// dataset for entirely deleted observations, for entirely deleted sets of (data-related reference metadata) attribute values attached to specific dimension combinations and for individually deleted mesure, attribute and reference metadata values and 913 +a //Merge// dataset for all other updated or inserted observation, attribute and data-related reference metadata values. 914 + 915 +The DB synchronization use case requires that the generated response must always allow achieving to replicate the exact same punctual data content as currently stored in the queried data source. 916 + 900 900 1. With the *includeHistory* URL parameter: 901 - 918 + 902 902 Using a number of datasets with *Delete*, *Replace* or *Merge* actions and limited in their validity time span that allow achieving to replicate the exact same punctual data contents as previously stored in the queried data source. 903 903 904 904 1. With the *asOf* URL parameter: 905 - 922 + 906 906 The recommendations of 1 and 2 apply depending on the other parameters. In addition, the returned dataset should have its validity time span limited to the point in time requested in the *asOf* parameter. 907 907 908 908 [^2]: So far this is recommended for systems that do not require backward-compatibility. Later, with SDMX 4.0, this may generally be made mandatory. ... ... @@ -912,3 +912,5 @@ 912 912 Reference metadata defined by a Metadataflow or a MetadataProvisionAgreement are exchanged within reference metadatasets, which are maintainable and thus for actions behave like structural metadata (artefacts): When interacting with SDMX Rest web services, the HTTP action verbs GET, PUT and POST are used to indicate the intended action per web request. Consequently, different actions cannot be bundled and executed with “transactional ACIDity”. Note that metadatasets retrieved using the HTTP header “Accept-Language” may contain only partial languages, and thus should be marked with its *isPartialLanguage* property set to true. Submitting such a partial metadataset to update an SDMX storage system will only add or update the included languages but not change other languages. 913 913 914 914 The former message header or metadataset property *DataSetAction* is deprecated. To avoid conflicts, it is now ignored if still present. 932 + 933 +{{putFootnotes/}}