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

From version 3.3
edited by Helena
on 2025/05/15 23:46
Change comment: There is no comment for this version
To version 2.2
edited by Helena
on 2025/05/15 15:48
Change comment: Changed document title to [4 General Notes for Implementers].

Summary

Details

Page properties
Content
... ... @@ -1,6 +1,4 @@
1 -{{box title="**Contents**"}}
2 -{{toc/}}
3 -{{/box}}
1 += {{id name="_Toc291503"/}}4 General Notes for Implementers =
4 4  
5 5  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.
6 6  
... ... @@ -10,61 +10,93 @@
10 10  
11 11  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.
12 12  
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
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**
32 32  
33 33  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:
34 34  
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)
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 +
68 68  * ,,**minValue = decimal**,, (for numeric range)
69 69  * ,,**maxValue = decimal**,, (for numeric range)
70 70  * ,,**decimal = Integer**,, (# of digits to right of decimal point)
... ... @@ -107,7 +107,7 @@
107 107  
108 108  Further to the above, the mapping between the non-native data types is presented in the table below:
109 109  
110 -|**SDMX Facet**|**XML Schema**|**JSON schema **"**pattern**"^^[[(% class="wikiinternallink wikiinternallink wikiinternallink wikiinternallink" %)^^1^^>>path:#sdfootnote1sym||name="sdfootnote1anc"]](%%)^^ **for "string" type**
140 +|**SDMX Facet**|**XML Schema**|**JSON schema **"**pattern**"^^[[^^1^^>>path:#sdfootnote1sym||name="sdfootnote1anc"]]^^ **for "string" type**
111 111  |GregorianYear|xsd:gYear|(((
112 112  "^-?([1-9][0-9]{3,}|0[0-9]{3})(Z|(\+|-)((0[0-
113 113  
... ... @@ -208,7 +208,7 @@
208 208  
209 209  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.
210 210  
211 -Representation: xs:dateTime (YYYY-MM-DDThh:mm:ss)^^[[(% class="wikiinternallink wikiinternallink wikiinternallink wikiinternallink" %)^^2^^>>path:#sdfootnote2sym||name="sdfootnote2anc"]](%%)^^
241 +Representation: xs:dateTime (YYYY-MM-DDThh:mm:ss)^^[[^^2^^>>path:#sdfootnote2sym||name="sdfootnote2anc"]]^^
212 212  
213 213  === {{id name="_Toc291512"/}}4.2.6 Standard Reporting Period ===
214 214  
... ... @@ -282,7 +282,7 @@
282 282  
283 283  Representation: common:ReportingWeekType (YYYY-Www, e.g. 2000-W53)
284 284  
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.
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.
286 286  
287 287  **Reporting Day**:
288 288  
... ... @@ -320,7 +320,7 @@
320 320  11. **If the [PERIOD_INDICATOR] is W:**
321 321  111. **If [REPORTING_YEAR_START_DATE] is a Friday, Saturday, or Sunday:**
322 322  
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].
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].
324 324  
325 325  1.
326 326  11.
SDMX 3-0-0 SECTION 6 FINAL-1.0_en_59eee18f.gif
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.helena
Size
... ... @@ -1,1 +1,0 @@
1 -851 bytes
Content