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

From version 3.1
edited by Helena
on 2025/05/15 15:48
Change comment: There is no comment for this version
To version 3.3
edited by Helena
on 2025/05/15 23:46
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,4 +1,6 @@
1 -= {{id name="_Toc291503"/}}4 General Notes for Implementers =
1 +{{box title="**Contents**"}}
2 +{{toc/}}
3 +{{/box}}
2 2  
3 3  This section discusses a number of topics other than the exchange of data sets in SDMX formats. Supported only in SDMX-ML (and some in SDMX-JSON), these topics include the use of the reference metadata mechanism in SDMX, the use of Structure Sets and Reporting Taxonomies, the use of Processes, a discussion of time and datatyping, and the conventional mechanisms within the SDMX-ML Structure message regarding versioning and referencing.
4 4  
... ... @@ -8,93 +8,61 @@
8 8  
9 9  There are several different representations in SDMX-ML, taken from XML Schemas and common programming languages. The table below describes the various representations, which are found in SDMX-ML, and their equivalents.
10 10  
11 -|SDMX-ML Data Type|XML Schema Data Type|.NET Framework Type|Java Data Type
12 -|**String**|**xsd:string**|**System.String**|**java.lang.String**
13 -|**Big Integer**|**xsd:integer**|**System.Decimal**|**java.math.BigInteger**
14 -|**Integer**|**xsd:int**|**System.Int32**|**int**
15 -|**Long**|**xsd.long**|**System.Int64**|**long**
16 -|**Short**|**xsd:short**|**System.Int16**|**short**
17 -|**Decimal**|**xsd:decimal**|**System.Decimal**|**java.math.BigDecimal**
18 -|**Float**|**xsd:float**|**System.Single**|**float**
19 -|**Double**|**xsd:double**|**System.Double**|**double**
20 -|**Boolean**|**xsd:boolean**|**System.Boolean**|**boolean**
21 -|**URI**|**xsd:anyURI**|**System.Uri**|**Java.net.URI or java.lang.String**
22 -|**DateTime**|**xsd:dateTime**|**System.DateTime**|**javax.xml.datatype.XMLG regorianCalendar**
23 -|**Time**|**xsd:time**|**System.DateTime**|**javax.xml.datatype.XMLG regorianCalendar**
24 -|**GregorianYear**|**xsd:gYear**|**System.DateTime**|**javax.xml.datatype.XMLG regorianCalendar**
25 -|**GregorianMonth**|**xsd:gYearMonth**|**System.DateTime**|**javax.xml.datatype.XMLG regorianCalendar**
26 -|**GregorianDay**|**xsd:date**|**System.DateTime**|**javax.xml.datatype.XMLG regorianCalendar**
27 -|**Day, MonthDay, Month**|**xsd:g***|**System.DateTime**|**javax.xml.datatype.XMLG regorianCalendar**
28 -|**Duration**|**xsd:duration**|**System.TimeSpan**|**javax.xml.datatype.Dura tion**
13 +(% style="width:1185.29px" %)
14 +|(% style="width:250px" %)**SDMX-ML Data Type**|(% style="width:285px" %)**XML Schema Data Type**|(% style="width:271px" %)**.NET Framework Type**|(% style="width:354px" %)**Java Data Type**
15 +|(% style="width:250px" %)String|(% style="width:285px" %)xsd:string|(% style="width:271px" %)System.String|(% style="width:354px" %)java.lang.String
16 +|(% style="width:250px" %)Big Integer|(% style="width:285px" %)xsd:integer|(% style="width:271px" %)System.Decimal|(% style="width:354px" %)java.math.BigInteger
17 +|(% style="width:250px" %)Integer|(% style="width:285px" %)xsd:int|(% style="width:271px" %)System.Int32|(% style="width:354px" %)int
18 +|(% style="width:250px" %)Long|(% style="width:285px" %)xsd.long|(% style="width:271px" %)System.Int64|(% style="width:354px" %)long
19 +|(% style="width:250px" %)Short|(% style="width:285px" %)xsd:short|(% style="width:271px" %)System.Int16|(% style="width:354px" %)short
20 +|(% style="width:250px" %)Decimal|(% style="width:285px" %)xsd:decimal|(% style="width:271px" %)System.Decimal|(% style="width:354px" %)java.math.BigDecimal
21 +|(% style="width:250px" %)Float|(% style="width:285px" %)xsd:float|(% style="width:271px" %)System.Single|(% style="width:354px" %)float
22 +|(% style="width:250px" %)Double|(% style="width:285px" %)xsd:double|(% style="width:271px" %)System.Double|(% style="width:354px" %)double
23 +|(% style="width:250px" %)Boolean|(% style="width:285px" %)xsd:boolean|(% style="width:271px" %)System.Boolean|(% style="width:354px" %)boolean
24 +|(% style="width:250px" %)URI|(% style="width:285px" %)xsd:anyURI|(% style="width:271px" %)System.Uri|(% style="width:354px" %)Java.net.URI or java.lang.String
25 +|(% style="width:250px" %)DateTime|(% style="width:285px" %)xsd:dateTime|(% style="width:271px" %)System.DateTime|(% style="width:354px" %)javax.xml.datatype.XMLG regorianCalendar
26 +|(% style="width:250px" %)Time|(% style="width:285px" %)xsd:time|(% style="width:271px" %)System.DateTime|(% style="width:354px" %)javax.xml.datatype.XMLG regorianCalendar
27 +|(% style="width:250px" %)GregorianYear|(% style="width:285px" %)xsd:gYear|(% style="width:271px" %)System.DateTime|(% style="width:354px" %)javax.xml.datatype.XMLG regorianCalendar
28 +|(% style="width:250px" %)GregorianMonth|(% style="width:285px" %)xsd:gYearMonth|(% style="width:271px" %)System.DateTime|(% style="width:354px" %)javax.xml.datatype.XMLG regorianCalendar
29 +|(% style="width:250px" %)GregorianDay|(% style="width:285px" %)xsd:date|(% style="width:271px" %)System.DateTime|(% style="width:354px" %)javax.xml.datatype.XMLG regorianCalendar
30 +|(% style="width:250px" %)Day, MonthDay, Month|(% style="width:285px" %)xsd:g*|(% style="width:271px" %)System.DateTime|(% style="width:354px" %)javax.xml.datatype.XMLG regorianCalendar
31 +|(% style="width:250px" %)Duration|(% style="width:285px" %)xsd:duration|(% style="width:271px" %)System.TimeSpan|(% style="width:354px" %)javax.xml.datatype.Dura tion
29 29  
30 30  There are also a number of SDMX-ML data types which do not have these direct correspondences, often because they are composite representations or restrictions of a broader data type. For most of these, there are simple types which can be referenced from the SDMX schemas, for others a derived simple type will be necessary:
31 31  
32 -• **AlphaNumeric** (**common:AlphaNumericType**, string which only allows A-z and 0-9)
33 -
34 -• **Alpha** (**common:AlphaType**, string which only allows A-z)
35 -
36 -• ,,**Numeric**,, (,,**common:NumericType**,,, string which only allows 0-9, but is not numeric so that is can having leading zeros)
37 -
38 -• ,,**Count**,, (,,**xs:integer**,,, a sequence with an interval of "1")
39 -
40 -• **InclusiveValueRange** (**xs:decimal** with the **minValue** and **maxValue** facets supplying the bounds)
41 -
42 -• **ExclusiveValueRange** (**xs:decimal** with the **minValue** and **maxValue** facets supplying the bounds)
43 -
44 -• **Incremental** (**xs:decimal** with a specified **interval**; the interval is typically enforced outside of the XML validation)
45 -
46 -• **TimeRange** (**common:TimeRangeType**, **startDateTime** + **Duration**)
47 -
48 -• **ObservationalTimePeriod** (**common:ObservationalTimePeriodType**, a union of **StandardTimePeriod** and **TimeRange**).
49 -
50 -• **StandardTimePeriod** (**common:StandardTimePeriodType**, a union of **BasicTimePeriod** and **ReportingTimePeriod**).
51 -
52 -• **BasicTimePeriod** (**common:BasicTimePeriodType**, a union of **GregorianTimePeriod** and **DateTime**)
53 -
54 -• **GregorianTimePeriod** (**common:GregorianTimePeriodType**, a union of **GregorianYear**, **GregorianMonth**, and **GregorianDay**)
55 -
56 -• **ReportingTimePeriod** (**common:ReportingTimePeriodType**, a union of **ReportingYear**, **ReportingSemester**, **ReportingTrimester**, **ReportingQuarter**, **ReportingMonth**, **ReportingWeek**, and **ReportingDay**).
57 -
58 -• **ReportingYear** (**common:ReportingYearType**)
59 -
60 -• **ReportingSemester** (**common:ReportingSemesterType**)
61 -
62 -• **ReportingTrimester** (**common:ReportingTrimesterType**)
63 -
64 -• **ReportingQuarter** (**common:ReportingQuarterType**)
65 -
66 -• **ReportingMonth** (**common:ReportingMonthType**)
67 -
68 -• **ReportingWeek** (**common:ReportingWeekType**)
69 -
70 -• **ReportingDay** (**common:ReportingDayType**)
71 -
72 -• ,,**XHTML**,, (,,**common:StructuredText**,,, allows for multi-lingual text content that has ,,**XHTML**,, markup)
73 -
74 -• **KeyValues** (**common:DataKeyType**)
75 -
76 -• ,,**IdentifiableReference**,, (types for each IdentifiableObject)
77 -
78 -• ,,**GeospatialInformation**,, (a geo feature set, according to the pattern in section 7.2)
79 -
80 -Data types also have a set of facets:
81 -
82 -• ,,**isSequence = true | false**,, (indicates a sequentially increasing value)
83 -
84 -• ,,**minLength = positive integer**,, (# of characters/digits)
85 -
86 -• ,,**maxLength = positive integer**,, (# of characters/digits)
87 -
88 -• ,,**startValue = decimal**,, (for numeric sequence)
89 -
90 -• ,,**endValue = decimal**,, (for numeric sequence)
91 -
92 -• ,,**interval = decimal**,, (for numeric sequence)
93 -
94 -• **timeInterval = duration**
95 -
96 -• **startTime = BasicTimePer,,iod,,** (for time range) ,,**endTime = BasicTimePeriod**,, (for time range)
97 -
35 +* AlphaNumeric (common:AlphaNumericType, string which only allows A-z and 0-9)
36 +* Alpha (common:AlphaType, string which only allows A-z)
37 +* Numeric (common:NumericType, string which only allows 0-9, but is not numeric so that is can having leading zeros)
38 +* Count (xs:integer, a sequence with an interval of "1")
39 +* InclusiveValueRange (xs:decimal with the minValue and maxValue facets supplying the bounds)
40 +* ExclusiveValueRange (xs:decimal with the minValue and maxValue facets supplying the bounds)
41 +* Incremental (xs:decimal with a specified interval; the interval is typically enforced outside of the XML validation)
42 +* TimeRange (common:TimeRangeType, startDateTime + Duration)
43 +* ObservationalTimePeriod (common:ObservationalTimePeriodType, a union of StandardTimePeriod and TimeRange).
44 +* StandardTimePeriod (common:StandardTimePeriodType, a union of BasicTimePeriod and ReportingTimePeriod).
45 +* BasicTimePeriod (common:BasicTimePeriodType, a union of GregorianTimePeriod and DateTime)
46 +* GregorianTimePeriod (common:GregorianTimePeriodType, a union of GregorianYear, GregorianMonth, and GregorianDay)
47 +* ReportingTimePeriod (common:ReportingTimePeriodType, a union of ReportingYear, ReportingSemester, ReportingTrimester, ReportingQuarter, ReportingMonth, ReportingWeek, and ReportingDay).
48 +* ReportingYear (common:ReportingYearType)
49 +* ReportingSemester (common:ReportingSemesterType)
50 +* ReportingTrimester (common:ReportingTrimesterType)
51 +* ReportingQuarter (common:ReportingQuarterType)
52 +* ReportingMonth (common:ReportingMonthType)
53 +* ReportingWeek (common:ReportingWeekType)
54 +* ReportingDay (common:ReportingDayType)
55 +* XHTML (common:StructuredText, allows for multi-lingual text content that has XHTML markup)
56 +* KeyValues (common:DataKeyType)
57 +* ,,IdentifiableReference,, (types for each IdentifiableObject)
58 +* ,,GeospatialInformation,, (a geo feature set, according to the pattern in section 7.2)
59 +* Data types also have a set of facets:
60 +* ,,isSequence = true | false,, (indicates a sequentially increasing value)
61 +* ,,minLength = positive integer,, (# of characters/digits)
62 +* ,,maxLength = positive integer,, (# of characters/digits)
63 +* ,,startValue = decimal,, (for numeric sequence)
64 +* ,,endValue = decimal,, (for numeric sequence)
65 +* ,,interval = decimal,, (for numeric sequence)
66 +* timeInterval = duration
67 +* startTime = BasicTimePer,,iod,, (for time range) ,,**endTime = BasicTimePeriod**,, (for time range)
98 98  * ,,**minValue = decimal**,, (for numeric range)
99 99  * ,,**maxValue = decimal**,, (for numeric range)
100 100  * ,,**decimal = Integer**,, (# of digits to right of decimal point)
... ... @@ -137,7 +137,7 @@
137 137  
138 138  Further to the above, the mapping between the non-native data types is presented in the table below:
139 139  
140 -|**SDMX Facet**|**XML Schema**|**JSON schema **"**pattern**"^^[[^^1^^>>path:#sdfootnote1sym||name="sdfootnote1anc"]]^^ **for "string" type**
110 +|**SDMX Facet**|**XML Schema**|**JSON schema **"**pattern**"^^[[(% class="wikiinternallink wikiinternallink wikiinternallink wikiinternallink" %)^^1^^>>path:#sdfootnote1sym||name="sdfootnote1anc"]](%%)^^ **for "string" type**
141 141  |GregorianYear|xsd:gYear|(((
142 142  "^-?([1-9][0-9]{3,}|0[0-9]{3})(Z|(\+|-)((0[0-
143 143  
... ... @@ -238,7 +238,7 @@
238 238  
239 239  This is used to unambiguously state that a date-time represents an observation at a single point in time. Therefore, if one wants to use SDMX for data which is measured at a distinct point in time rather than being reported over a period, the date-time representation can be used.
240 240  
241 -Representation: xs:dateTime (YYYY-MM-DDThh:mm:ss)^^[[^^2^^>>path:#sdfootnote2sym||name="sdfootnote2anc"]]^^
211 +Representation: xs:dateTime (YYYY-MM-DDThh:mm:ss)^^[[(% class="wikiinternallink wikiinternallink wikiinternallink wikiinternallink" %)^^2^^>>path:#sdfootnote2sym||name="sdfootnote2anc"]](%%)^^
242 242  
243 243  === {{id name="_Toc291512"/}}4.2.6 Standard Reporting Period ===
244 244  
... ... @@ -312,7 +312,7 @@
312 312  
313 313  Representation: common:ReportingWeekType (YYYY-Www, e.g. 2000-W53)
314 314  
315 -Notes: There are either 52 or 53 weeks in a reporting year. This is based on the ISO 8601 definition of a week (Monday - Saturday), where the first week of a reporting year is defined as the week with the first Thursday on or after the reporting year start day.^^[[^^3^^>>path:#sdfootnote3sym||name="sdfootnote3anc"]]^^ The reporting week is always represented as two digits, therefore 1-9 are 0 padded (e.g. 01). This allows the values to be sorted chronologically using textual sorting methods.
285 +Notes: There are either 52 or 53 weeks in a reporting year. This is based on the ISO 8601 definition of a week (Monday - Saturday), where the first week of a reporting year is defined as the week with the first Thursday on or after the reporting year start day.^^[[(% class="wikiinternallink wikiinternallink wikiinternallink wikiinternallink" %)^^3^^>>path:#sdfootnote3sym||name="sdfootnote3anc"]](%%)^^ The reporting week is always represented as two digits, therefore 1-9 are 0 padded (e.g. 01). This allows the values to be sorted chronologically using textual sorting methods.
316 316  
317 317  **Reporting Day**:
318 318  
... ... @@ -350,7 +350,7 @@
350 350  11. **If the [PERIOD_INDICATOR] is W:**
351 351  111. **If [REPORTING_YEAR_START_DATE] is a Friday, Saturday, or Sunday:**
352 352  
353 -Add^^[[^^4^^>>path:#sdfootnote4sym||name="sdfootnote4anc"]]^^ (P3D, P2D, or P1D respectively) to the [REPORTING_YEAR_START_DATE]. The result is the [REPORTING_YEAR_BASE].
323 +Add^^[[(% class="wikiinternallink wikiinternallink wikiinternallink wikiinternallink" %)^^4^^>>path:#sdfootnote4sym||name="sdfootnote4anc"]](%%)^^ (P3D, P2D, or P1D respectively) to the [REPORTING_YEAR_START_DATE]. The result is the [REPORTING_YEAR_BASE].
354 354  
355 355  1.
356 356  11.