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

From version 2.9
edited by Helena
on 2025/07/02 15:09
Change comment: There is no comment for this version
To version 3.1
edited by Helena
on 2025/07/02 15:35
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -474,61 +474,61 @@
474 474  
475 475  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:
476 476  
477 -|**SDMX Data Type**|**XML Schema Data Type**|
478 -|String|xs:string|
479 -|AlphaNumeric|common:AlphaNumericType|
480 -|Alpha|common:AlphaType|
481 -|Numeric|common:NumericType|
482 -|BigInteger|xs:integer|
483 -|Integer|xs:int|
484 -|Long|xs:long|
485 -|Short|xs:short|
486 -|Decimal|xs:decimal|
487 -|Float|xs:float|
488 -|Double|xs:double|
489 -|Boolean|xs:Boolean|
490 -|URI|xs:anyURI|
491 -|Count|xs:integer|
492 -|InclusiveValueRange|xs:decimal|
493 -|ExclusiveValueRange|xs: decimal|
494 -|Incremental|xs: decimal|
495 -|ObservationalTimePeriod|common:ObservationalTimePeriodType|
496 -|StandardTimePeriod|common:StandardTimePeriodType|
497 -|BasicTimePeriod|common:BasicTimePeriodType|
498 -|GregorianTimePeriod|common:GregorianTimePeriodType|
499 -|GregorianYear|xs:gYear|
500 -|GregorianYearMonth|xs:gYearMonth|
501 -|GregorianDay|xs:date|
502 -|ReportingTimePeriod|common:ReportingTimePeriodType|
503 -|ReportingYear|common:ReportingYearType|
504 -|ReportingSemester|common:ReportingSemesterType|
505 -|ReportingTrimester|common:ReportingTrimesterType|
506 -|ReportingQuarter|common:ReportingQuarterType|
507 -|ReportingMonth|common:ReportingMonthType|
508 -|ReportingWeek|common:ReportingWeekType|
509 -|ReportingDay|common:ReportingDayType|
510 -|DateTime|xs:dateTime|
511 -|TimeRange|common:TimeRangeType|
512 -|Month|xs:gMonth|
513 -|MonthDay|xs:gMonthDay|
514 -|Day|xs:gDay|
515 -|Time|xs:time|
516 -|Duration|xs:duration|
517 -|GeospatialInformation|xs:string|
518 -|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
519 519  
520 520  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):
521 521  
522 -|**SDMX Facet**|**XML Schema Facet**|
523 -|minLength|xs:minLength|
524 -|maxLength|xs:maxLength|
525 -|minValue[^1]|if ExclusiveValueRange: xs:minExclusives, else: xs:minInclusive|
526 -|maxValue[^1]|if ExclusiveValueRange: xs:maxExclusives, else: xs:maxInclusive|
527 -|decimals[^1]|xs:fractionDigits|
528 -|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{{footnote}}Note that these options only apply to numeric representations and should be ignored if the data type is non-numeric.{{/footnote}}|(% 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
529 529  
530 -[^1]: Note that these options only apply to numeric representations and should be ignored if the data type is non-numeric.
531 -
532 532  Any other facets are informational only and will not affect the determined type.
533 533  
534 534  === 3.3.7 Representation for Not Applicable Dimensions ===
... ... @@ -563,35 +563,36 @@
563 563  
564 564  For convenience the common schema provides the union types for the following data types.
565 565  
566 -|**SDMX Data Type**|**XML Schema Data Type**|
567 -|AlphaNumeric|common:AlphaNumericOrNotApplicableType|
568 -|Alpha|common:AlphaOrNotApplicableType|
569 -|Numeric|common:NumericOrNotApplicableType|
570 -|BigInteger|common:IntegerOrNotApplicableType|
571 -|Integer|common:IntOrNotApplicableType|
572 -|Long|common:LongOrNotApplicableType|
573 -|Short|common:ShortOrNotApplicableType|
574 -|Decimal|common:DecimalOrNotApplicableType|
575 -|Float|common:FloatOrNotApplicableType|
576 -|Double|common:DoubleOrNotApplicableType|
577 -|Boolean|common:BooleanOrNotApplicableType|
578 -|Count|common:IntegerOrNotApplicableType|
579 -|InclusiveValueRange|common:DecimalOrNotApplicableType|
580 -|ExclusiveValueRange|common:DecimalOrNotApplicableType|
581 -|Incremental|common:DecimalOrNotApplicableType|
582 -|ObservationalTimePeriod|common:ObservationalTimePeriodOrNotApplicableType|
583 -|StandardTimePeriod|common:StandardTimePeriodOrNotApplicableType|
584 -|BasicTimePeriod|common:BasicTimePeriodType|
585 -|GregorianTimePeriod|common:GregorianTimePeriodOrNotApplicableType|
586 -|ReportingTimePeriod|common:ReportingTimePeriodOrNotApplicableType|
587 -|ReportingYear|common:ReportingYearOrNotApplicableType|
588 -|ReportingSemester|common:ReportingSemesterOrNotApplicableType|
589 -|ReportingTrimester|common:ReportingTrimesterOrNotApplicableType|
590 -|ReportingQuarter|common:ReportingQuarterOrNotApplicableType|
591 -|ReportingMonth|common:ReportingMonthOrNotApplicableType|
592 -|ReportingWeek|common:ReportingWeekOrNotApplicableType|
593 -|ReportingDay|common:ReportingDayOrNotApplicableType|
594 -|TimeRange|common:TimeRangeOrNotApplicableType|
566 +(% style="width:747.294px" %)
567 +|**SDMX Data Type**|(% style="width:418px" %)**XML Schema Data Type**
568 +|AlphaNumeric|(% style="width:418px" %)common:AlphaNumericOrNotApplicableType
569 +|Alpha|(% style="width:418px" %)common:AlphaOrNotApplicableType
570 +|Numeric|(% style="width:418px" %)common:NumericOrNotApplicableType
571 +|BigInteger|(% style="width:418px" %)common:IntegerOrNotApplicableType
572 +|Integer|(% style="width:418px" %)common:IntOrNotApplicableType
573 +|Long|(% style="width:418px" %)common:LongOrNotApplicableType
574 +|Short|(% style="width:418px" %)common:ShortOrNotApplicableType
575 +|Decimal|(% style="width:418px" %)common:DecimalOrNotApplicableType
576 +|Float|(% style="width:418px" %)common:FloatOrNotApplicableType
577 +|Double|(% style="width:418px" %)common:DoubleOrNotApplicableType
578 +|Boolean|(% style="width:418px" %)common:BooleanOrNotApplicableType
579 +|Count|(% style="width:418px" %)common:IntegerOrNotApplicableType
580 +|InclusiveValueRange|(% style="width:418px" %)common:DecimalOrNotApplicableType
581 +|ExclusiveValueRange|(% style="width:418px" %)common:DecimalOrNotApplicableType
582 +|Incremental|(% style="width:418px" %)common:DecimalOrNotApplicableType
583 +|ObservationalTimePeriod|(% style="width:418px" %)common:ObservationalTimePeriodOrNotApplicableType
584 +|StandardTimePeriod|(% style="width:418px" %)common:StandardTimePeriodOrNotApplicableType
585 +|BasicTimePeriod|(% style="width:418px" %)common:BasicTimePeriodType
586 +|GregorianTimePeriod|(% style="width:418px" %)common:GregorianTimePeriodOrNotApplicableType
587 +|ReportingTimePeriod|(% style="width:418px" %)common:ReportingTimePeriodOrNotApplicableType
588 +|ReportingYear|(% style="width:418px" %)common:ReportingYearOrNotApplicableType
589 +|ReportingSemester|(% style="width:418px" %)common:ReportingSemesterOrNotApplicableType
590 +|ReportingTrimester|(% style="width:418px" %)common:ReportingTrimesterOrNotApplicableType
591 +|ReportingQuarter|(% style="width:418px" %)common:ReportingQuarterOrNotApplicableType
592 +|ReportingMonth|(% style="width:418px" %)common:ReportingMonthOrNotApplicableType
593 +|ReportingWeek|(% style="width:418px" %)common:ReportingWeekOrNotApplicableType
594 +|ReportingDay|(% style="width:418px" %)common:ReportingDayOrNotApplicableType
595 +|TimeRange|(% style="width:418px" %)common:TimeRangeOrNotApplicableType
595 595  
596 596  === 3.3.8 Representation for Intentionally Missing Measure and Attribute Values ===
597 597  
... ... @@ -630,35 +630,36 @@
630 630  
631 631  For convenience the common schema provides the union types for the following data types.
632 632  
633 -|**SDMX Data Type**|**XML Schema Data Type**|
634 -|AlphaNumeric|common:AlphaNumericOrMissingType|
635 -|Alpha|common:AlphaOrMissingType|
636 -|Numeric|common:NumericOrMissingType|
637 -|BigInteger|common:IntegerOrMissingType|
638 -|Integer|common:IntOrMissingType|
639 -|Long|common:LongOrMissingType|
640 -|Short|common:ShortOrMissingType|
641 -|Decimal|common:DecimalOrMissingType|
642 -|Float|common:FloatOrMissingType|
643 -|Double|common:DoubleOrMissingType|
644 -|Boolean|common:BooleanOrMissingType|
645 -|Count|common:IntegerOrMissingType|
646 -|InclusiveValueRange|common:DecimalOrMissingType|
647 -|ExclusiveValueRange|common:DecimalOrMissingType|
648 -|Incremental|common:DecimalOrMissingType|
649 -|ObservationalTimePeriod|common:ObservationalTimePeriodOrMissingType|
650 -|StandardTimePeriod|common:StandardTimePeriodOrMissingType|
651 -|BasicTimePeriod|common:BasicTimePeriodType|
652 -|GregorianTimePeriod|common:GregorianTimePeriodOrMissingType|
653 -|ReportingTimePeriod|common:ReportingTimePeriodOrMissingType|
654 -|ReportingYear|common:ReportingYearOrMissingType|
655 -|ReportingSemester|common:ReportingSemesterOrMissingType|
656 -|ReportingTrimester|common:ReportingTrimesterOrMissingType|
657 -|ReportingQuarter|common:ReportingQuarterOrMissingType|
658 -|ReportingMonth|common:ReportingMonthOrMissingType|
659 -|ReportingWeek|common:ReportingWeekOrMissingType|
660 -|ReportingDay|common:ReportingDayOrMissingType|
661 -|TimeRange|common:TimeRangeOrMissingType|
634 +(% style="width:804.294px" %)
635 +|(% style="width:279px" %)**SDMX Data Type**|(% style="width:522px" %)**XML Schema Data Type**
636 +|(% style="width:279px" %)AlphaNumeric|(% style="width:522px" %)common:AlphaNumericOrMissingType
637 +|(% style="width:279px" %)Alpha|(% style="width:522px" %)common:AlphaOrMissingType
638 +|(% style="width:279px" %)Numeric|(% style="width:522px" %)common:NumericOrMissingType
639 +|(% style="width:279px" %)BigInteger|(% style="width:522px" %)common:IntegerOrMissingType
640 +|(% style="width:279px" %)Integer|(% style="width:522px" %)common:IntOrMissingType
641 +|(% style="width:279px" %)Long|(% style="width:522px" %)common:LongOrMissingType
642 +|(% style="width:279px" %)Short|(% style="width:522px" %)common:ShortOrMissingType
643 +|(% style="width:279px" %)Decimal|(% style="width:522px" %)common:DecimalOrMissingType
644 +|(% style="width:279px" %)Float|(% style="width:522px" %)common:FloatOrMissingType
645 +|(% style="width:279px" %)Double|(% style="width:522px" %)common:DoubleOrMissingType
646 +|(% style="width:279px" %)Boolean|(% style="width:522px" %)common:BooleanOrMissingType
647 +|(% style="width:279px" %)Count|(% style="width:522px" %)common:IntegerOrMissingType
648 +|(% style="width:279px" %)InclusiveValueRange|(% style="width:522px" %)common:DecimalOrMissingType
649 +|(% style="width:279px" %)ExclusiveValueRange|(% style="width:522px" %)common:DecimalOrMissingType
650 +|(% style="width:279px" %)Incremental|(% style="width:522px" %)common:DecimalOrMissingType
651 +|(% style="width:279px" %)ObservationalTimePeriod|(% style="width:522px" %)common:ObservationalTimePeriodOrMissingType
652 +|(% style="width:279px" %)StandardTimePeriod|(% style="width:522px" %)common:StandardTimePeriodOrMissingType
653 +|(% style="width:279px" %)BasicTimePeriod|(% style="width:522px" %)common:BasicTimePeriodType
654 +|(% style="width:279px" %)GregorianTimePeriod|(% style="width:522px" %)common:GregorianTimePeriodOrMissingType
655 +|(% style="width:279px" %)ReportingTimePeriod|(% style="width:522px" %)common:ReportingTimePeriodOrMissingType
656 +|(% style="width:279px" %)ReportingYear|(% style="width:522px" %)common:ReportingYearOrMissingType
657 +|(% style="width:279px" %)ReportingSemester|(% style="width:522px" %)common:ReportingSemesterOrMissingType
658 +|(% style="width:279px" %)ReportingTrimester|(% style="width:522px" %)common:ReportingTrimesterOrMissingType
659 +|(% style="width:279px" %)ReportingQuarter|(% style="width:522px" %)common:ReportingQuarterOrMissingType
660 +|(% style="width:279px" %)ReportingMonth|(% style="width:522px" %)common:ReportingMonthOrMissingType
661 +|(% style="width:279px" %)ReportingWeek|(% style="width:522px" %)common:ReportingWeekOrMissingType
662 +|(% style="width:279px" %)ReportingDay|(% style="width:522px" %)common:ReportingDayOrMissingType
663 +|(% style="width:279px" %)TimeRange|(% style="width:522px" %)common:TimeRangeOrMissingType
662 662  
663 663  === 3.3.9 Representation with Complex Text Format ===
664 664  
... ... @@ -715,34 +715,39 @@
715 715  
716 716  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:
717 717  
718 -1. A sequence consisting of:
719 -1. An element reference to common:Annotations, with a minimum occurrence of 0
720 - 2. A local element named DataProvider with the type common:DataProviderReferenceType, a form of unqualified and a minimum occurrence of 0
721 - 3. A choice with a minimum occurrence of 0 and a maximum occurrence of unbounded consisting of:
722 -1. A local element named Atts with a form of unqualified and a type of AttsType (as defined in the AttsType section which follows)
723 - 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.
724 - 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)
725 - 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)
726 - 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
720 +~1. A sequence consisting of:
727 727  
722 +* i. An element reference to common:Annotations, with a minimum occurrence of 0
723 +* ii  A local element named DataProvider with the type common:DataProviderReferenceType, a form of unqualified and a minimum occurrence of 0
724 +* iii  A choice with a minimum occurrence of 0 and a maximum occurrence of unbounded consisting of:
725 +** a.  A local element named Atts with a form of unqualified and a type of AttsType (as defined in the AttsType section which follows)
726 +** 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.
727 +** 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)
728 +** 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)
729 +* 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
730 +
728 728  === 3.4.2 GroupType ===
729 729  
730 730  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:
731 731  
732 -1. A sequence consisting of:
733 -1. An element reference to common:Annotations, with a minimum occurrence of 0
734 - 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
735 - 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
736 -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
737 -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
735 +~1. A sequence consisting of:
736 +
737 +* i. An element reference to common:Annotations, with a minimum occurrence of 0
738 +* 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
739 +* 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
740 +
741 +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
742 +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
738 738  4. An attribute named type with a type of common:IDType, usage of optional, and a fixed value of the identifier of the group
739 739  
740 740  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:
741 741  
742 -1. A sequence consisting of:
743 -1. An element reference to common:Annotations, with a minimum occurrence of 0
744 - 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
745 - 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
747 +~1. A sequence consisting of:
748 +
749 +* i. An element reference to common:Annotations, with a minimum occurrence of 0
750 +* 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
751 +* 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
752 +
746 746  2. An attribute named type with a type of Group.ID, and a usage of optional
747 747  3. An anyAttribute declaration with a namespace of ##local##
748 748  
... ... @@ -750,12 +750,14 @@
750 750  
751 751  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:
752 752  
753 -1. A sequence consisting of:
754 -1. An element reference to common:Annotations, with a minimum occurrence of 0
755 - 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
756 - 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
757 -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
758 -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
760 +~1. A sequence consisting of:
761 +
762 +* i. An element reference to common:Annotations, with a minimum occurrence of 0
763 +* 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
764 +* 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
765 +
766 +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
767 +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
759 759  4. An attribute named type with a type of Group.ID, usage of optional, and a fixed value of the identifier of the group
760 760  
761 761  === 3.4.3 SeriesType ===
... ... @@ -762,40 +762,46 @@
762 762  
763 763  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:
764 764  
765 -1. A sequence consisting of:
766 -1. An element reference to common:Annotations, with a minimum occurrence of 0
767 - 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
768 - 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)
769 - 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
774 +~1. A sequence consisting of:
775 +
776 +* i. An element reference to common:Annotations, with a minimum occurrence of 0
777 +* 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
778 +* 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)
779 +* 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
780 +
770 770  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
771 -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 required
772 -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 optional
782 +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
783 +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
773 773  
774 774  === 3.4.4 AttsType ===
775 775  
776 776  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:
777 777  
778 -1. A sequence consisting of:
779 -1. An element reference to common:Annotations, with a minimum occurrence of 0
780 - 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
789 +~1. A sequence consisting of:
790 +
791 +* i. An element reference to common:Annotations, with a minimum occurrence of 0
792 +* 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
793 +
781 781  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
782 -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 optional
783 -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 optional
795 +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
796 +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
784 784  
785 785  === 3.4.5 ObsType ===
786 786  
787 787  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:
788 788  
789 -1. A sequence consisting of:
790 -1. An element reference to common:Annotations, with a minimum occurrence of 0
791 - 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
792 - 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
802 +~1. A sequence consisting of:
803 +
804 +* i. An element reference to common:Annotations, with a minimum occurrence of 0
805 +* 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
806 +* 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
807 +
793 793  2. An attribute named TIME\_PERIOD with a type of common:
794 794   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
795 -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 required
796 -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 required
797 -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 optional
798 -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 optional
810 +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
811 +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
812 +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
813 +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
799 799  
800 800  === 3.4.6 CompType ===
801 801  
... ... @@ -826,7 +826,7 @@
826 826  
827 827  === 4.1.2 Replace Action ===
828 828  
829 -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).
844 +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).
830 830  
831 831  Only non-dimensional components (measure, attribute or reference metadata values) can be **omitted** (null or absent). Bulk replacing is thus not supported.
832 832  
... ... @@ -834,9 +834,9 @@
834 834  
835 835  Replacing non-existing elements is not resulting in an error.
836 836  
837 -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.
852 +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.
838 838  
839 -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.
854 +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.
840 840  
841 841  === 4.1.3 Delete Action ===
842 842  
... ... @@ -856,58 +856,59 @@
856 856  
857 857  The following convention is used to indicate the state of components in data messages:
858 858  
859 -| | |**Dimension value is**| |**Measure, attribute or reference metadata value is**| |
860 -| | |**Omitted**|**switched off**|**Omitted**|**Present**|
861 -|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|
862 -| |Merge|*bulk merge is not permitted*|(see above)|not to be changed|to be updated/inserted|
863 -| |Replace|*bulk replace is not permitted*|(see above)|at permitted replacement levels: to be deleted, otherwise not to be changed|to be updated/inserted|
864 -|Format|XML|xml element/attribute is absent|~|xml element/attribute is absent|any valid or intentionally missing value|
865 -| |JSON|\<empty\>|““|NULL or absent|(see above)|
866 -| |CSV|\<empty\> cell or column is absent|~|<empty> cell or column is absent|(see above)|
874 +(% style="width:1364.29px" %)
875 +| | |(% style="width:260px" %)**Dimension value is**|(% style="width:391px" %) |(% style="width:383px" %)**Measure, attribute or reference metadata value is**|(% style="width:184px" %)
876 +| | |(% style="width:260px" %)**Omitted**|(% style="width:391px" %)**switched off**|(% style="width:383px" %)**Omitted**|(% style="width:184px" %)**Present**
877 +|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
878 +| |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
879 +| |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
880 +|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" %)
881 +| |JSON|(% style="width:260px" %)\<empty\>|(% style="width:391px" %)““|(% style="width:383px" %)NULL or absent|(% style="width:184px" %)(see above)
882 +| |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" %)
867 867  
868 868  **Important notes:**
869 869  
870 -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.
886 +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.
871 871  
872 -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.
888 +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.
873 873  
874 -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).
890 +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).
875 875  
876 -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.
892 +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.
877 877  
878 -**Recommended[^2] dataset actions in SDMX web service responses to GET data queries:**
894 +**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:**
879 879  
880 -1. Without the *updatedAfter*, *includeHistory*, *detail*, *attributes* or *measures* URL parameters:
881 -
882 - The response message should contain the retrieved data in a *Replace* dataset (instead of the previous *information* dataset).
896 +~1. Without the //updatedAfter//, //includeHistory//, //detail//, //attributes// or //measures// URL parameters:
883 883  
884 -1. Without the *updatedAfter* and *includeHistory*, but with *detail*, *attributes* or *measures* URL parameters:
885 -
886 - The response message should contain the retrieved data in a *Merge* dataset (instead of the previous *Information* dataset).
898 +The response message should contain the retrieved data in a //Replace// dataset (instead of the previous *information* dataset).
887 887  
888 -1. With the *updatedAfter* URL parameter:
889 -
890 - 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:
900 +2. Without the //updatedAfter// and //includeHistory//, but with //detail//, //attributes// or //measures// URL parameters:
891 891  
892 -* 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
893 - a *Replace* dataset for all other changed observations and changed attribute and data-related reference metadata values attached to specific dimension combinations, or 
894 -* 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
895 - a *Merge* dataset for all other updated or inserted observation, attribute and data-related reference metadata values.
896 -
897 - 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.
902 +The response message should contain the retrieved data in a //Merge// dataset (instead of the previous *Information* dataset).
898 898  
899 -1. With the *includeHistory* URL parameter:
900 -
901 - 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.
904 +3. With the //updatedAfter// URL parameter:
902 902  
903 -1. With the *asOf* URL parameter:
904 -
905 - 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.
906 +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:
906 906  
907 -[^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.
908 +* 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
909 +a //Replace// dataset for all other changed observations and changed attribute and data-related reference metadata values attached to specific dimension combinations, or 
910 +* 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
911 +a //Merge// dataset for all other updated or inserted observation, attribute and data-related reference metadata values.
908 908  
913 +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.
914 +
915 +~1. With the *includeHistory* URL parameter:
916 +
917 +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.
918 +
919 +2. With the *asOf* URL parameter:
920 +
921 +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.
922 +
909 909  == 4.2 Reference Metadata Actions ==
910 910  
911 911  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.
912 912  
913 913  The former message header or metadataset property *DataSetAction* is deprecated. To avoid conflicts, it is now ignored if still present.
928 +
929 +{{putFootnotes/}}