Changes for page 4 General Notes for Implementers
Last modified by Helena on 2025/09/10 11:19
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -2,13 +2,13 @@ 2 2 {{toc/}} 3 3 {{/box}} 4 4 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. 5 +This section discusses a number of topics other than the exchange of [[data sets>>doc:xwiki:Glossary.Data set.WebHome]] in [[SDMX>>doc:xwiki:Glossary.Statistical data and metadata exchange.WebHome]] formats. Supported only in [[SDMX-ML>>doc:xwiki:Glossary.SDMX-ML.WebHome]] (and some in [[SDMX-JSON>>doc:xwiki:Glossary.SDMX-JSON.WebHome]]), these topics include the use of the [[reference metadata>>doc:xwiki:Glossary.Reference metadata.WebHome]] mechanism in [[SDMX>>doc:xwiki:Glossary.Statistical data and metadata exchange.WebHome]], the use of [[Structure Sets>>doc:xwiki:Glossary.Structure set.WebHome]] and [[Reporting Taxonomies>>doc:xwiki:Glossary.Reporting taxonomy.WebHome]], the use of Processes, a discussion of time and datatyping, and the conventional mechanisms within the [[SDMX-ML>>doc:xwiki:Glossary.SDMX-ML.WebHome]] Structure message regarding versioning and referencing. 6 6 7 7 == {{id name="_Toc291504"/}}4.1 Representations == 8 8 9 9 This section does not go into great detail on these topics but provides a useful overview of these features to assist implementors in further use of the parts of the specification which are relevant to them. 10 10 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. 11 +There are several different [[representations>>doc:xwiki:Glossary.Representation.WebHome]] in [[SDMX-ML>>doc:xwiki:Glossary.SDMX-ML.WebHome]], taken from XML Schemas and common programming languages. The table below describes the various [[representations>>doc:xwiki:Glossary.Representation.WebHome]], which are found in [[SDMX-ML>>doc:xwiki:Glossary.SDMX-ML.WebHome]], and their equivalents. 12 12 13 13 (% style="width:1185.29px" %) 14 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** ... ... @@ -30,7 +30,7 @@ 30 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 31 |(% style="width:250px" %)Duration|(% style="width:285px" %)xsd:duration|(% style="width:271px" %)System.TimeSpan|(% style="width:354px" %)javax.xml.datatype.Dura tion 32 32 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: 33 +There are also a number of [[SDMX-ML>>doc:xwiki:Glossary.SDMX-ML.WebHome]] data types which do not have these direct correspondences, often because they are composite [[representations>>doc:xwiki:Glossary.Representation.WebHome]] or restrictions of a broader data type. For most of these, there are simple types which can be referenced from the [[SDMX>>doc:xwiki:Glossary.Statistical data and metadata exchange.WebHome]] schemas, for others a derived simple type will be necessary: 34 34 35 35 * AlphaNumeric (common:AlphaNumericType, string which only allows A-z and 0-9) 36 36 * Alpha (common:AlphaType, string which only allows A-z) ... ... @@ -37,7 +37,7 @@ 37 37 * Numeric (common:NumericType, string which only allows 0-9, but is not numeric so that is can having leading zeros) 38 38 * Count (xs:integer, a sequence with an interval of "1") 39 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) 40 +* ExclusiveValueRange (xs:decimal with the minValue and maxValue [[facets>>doc:xwiki:Glossary.Facet.WebHome]] supplying the bounds) 41 41 * Incremental (xs:decimal with a specified interval; the interval is typically enforced outside of the XML validation) 42 42 * TimeRange (common:TimeRangeType, startDateTime + Duration) 43 43 * ObservationalTimePeriod (common:ObservationalTimePeriodType, a union of StandardTimePeriod and TimeRange). ... ... @@ -57,29 +57,29 @@ 57 57 * IdentifiableReference (types for each IdentifiableObject) 58 58 * GeospatialInformation (a geo feature set, according to the pattern in section 7.2) 59 59 60 -Data types also have a set of facets: 60 +Data types also have a set of [[facets>>doc:xwiki:Glossary.Facet.WebHome]]: 61 61 62 62 * isSequence = true | false (indicates a sequentially increasing value) 63 63 * minLength = positive integer (# of characters/digits) 64 64 * maxLength = positive integer (# of characters/digits) 65 -* startValue = decimal (for numeric sequence) 66 -* endValue = decimal (for numeric sequence) 67 -* interval = decimal (for numeric sequence) 65 +* startValue = [[decimal>>doc:xwiki:Glossary.Decimals.WebHome]] (for numeric sequence) 66 +* endValue = [[decimal>>doc:xwiki:Glossary.Decimals.WebHome]] (for numeric sequence) 67 +* interval = [[decimal>>doc:xwiki:Glossary.Decimals.WebHome]] (for numeric sequence) 68 68 * timeInterval = duration 69 69 * startTime = BasicTimePeriod (for time range) endTime = BasicTimePeriod (for time range) 70 -* minValue = decimal (for numeric range) 71 -* maxValue = decimal (for numeric range) 72 -* decimal = Integer (# of digits to right of decimal point) 70 +* minValue = [[decimal>>doc:xwiki:Glossary.Decimals.WebHome]] (for numeric range) 71 +* maxValue = [[decimal>>doc:xwiki:Glossary.Decimals.WebHome]] (for numeric range) 72 +* [[decimal>>doc:xwiki:Glossary.Decimals.WebHome]] = Integer (# of digits to right of [[decimal>>doc:xwiki:Glossary.Decimals.WebHome]] point) 73 73 * pattern = (a regular expression, as per W3C XML Schema) 74 74 * isMultiLingual = boolean (for specifying text can occur in more than one language) 75 75 76 -Note that code lists may also have textual representations assigned to them, in addition to their enumeration of codes. 76 +Note that [[code lists>>doc:xwiki:Glossary.Code list.WebHome]] may also have textual [[representations>>doc:xwiki:Glossary.Representation.WebHome]] assigned to them, in addition to their enumeration of [[codes>>doc:xwiki:Glossary.Code.WebHome]]. 77 77 78 78 === {{id name="_Toc291505"/}}4.1.1 Data Types === 79 79 80 -XML and JSON schemas support a variety of data types that, although rich, are not mapped one-to-one in all cases. This section provides an explanation of the mapping performed in SDMX 3.0, between such cases. 80 +XML and JSON schemas support a variety of data types that, although rich, are not (% style="color:#2ecc71" %)mapped(%%) one-to-one in all cases. This section provides an explanation of the mapping performed in [[SDMX>>doc:xwiki:Glossary.Statistical data and metadata exchange.WebHome]] 3.0, between such cases. 81 81 82 -For identifiers, text fields and Codes there are no restriction from either side, since a generic type (e.g., that of string) accompanied by the proper regular expression works equally well for both XML and JSON. 82 +For identifiers, text fields and [[Codes>>doc:xwiki:Glossary.Code.WebHome]] there are no restriction from either side, since a generic type (e.g., that of string) accompanied by the proper regular expression works equally well for both XML and JSON. 83 83 84 84 For example, for the id type, this is the XML schema definition: 85 85 ... ... @@ -260,7 +260,7 @@ 260 260 261 261 Representation: common:ReportingWeekType (YYYY-Www, e.g. 2000-W53) 262 262 263 -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 wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink 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. 263 +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 wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink wikiinternallink 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. 264 264 265 265 **Reporting Day**: 266 266 ... ... @@ -288,16 +288,14 @@ 288 288 This is the [REPORTING_YEAR_START_DATE] 289 289 290 290 **a) If the [PERIOD_INDICATOR] is W:** 291 -~1. **If [REPORTING_YEAR_START_DATE] is a Friday, Saturday, or Sunday**: 292 292 293 -Add{{footnote}}The rules for adding durations to a date time are described in the W3C XML Schema specification. See http://www.w3.org/TR/xmlschema-2/#adding-durations-to-dateTimes for further details.{{/footnote}} (P3D, P2D, or P1D respectively) to the [REPORTING_YEAR_START_DATE]. The result is the [REPORTING_YEAR_BASE]. 292 + ~1. **If [REPORTING_YEAR_START_DATE] is a Friday, Saturday, or Sunday**: 293 + Add{{footnote}}The rules for adding durations to a date time are described in the W3C XML Schema specification. See http://www.w3.org/TR/xmlschema-2/#adding-durations-to-dateTimes for further details.{{/footnote}} (P3D, P2D, or P1D respectively) to the [REPORTING_YEAR_START_DATE]. The result is the [REPORTING_YEAR_BASE]. 294 294 295 -**2. If [REPORTING_YEAR_START_DATE] is a Monday, Tuesday, Wednesday, or Thursday:** 295 +**~ 2. If [REPORTING_YEAR_START_DATE] is a Monday, Tuesday, Wednesday, or Thursday:** 296 + Add^^4^^ (P0D, -P1D, -P2D, or -P3D respectively) to the [REPORTING_YEAR_START_DATE]. The result is the [REPORTING_YEAR_BASE]. 296 296 297 -Add^^4^^ (P0D, -P1D, -P2D, or -P3D respectively) to the [REPORTING_YEAR_START_DATE]. The result is the [REPORTING_YEAR_BASE]. 298 - 299 299 **b) Else:** 300 - 301 301 The [REPORTING_YEAR_START_DATE] is the [REPORTING_YEAR_BASE]. 302 302 303 303 **2. Determine [PERIOD_DURATION]:** ... ... @@ -321,53 +321,34 @@ 321 321 **Examples:** 322 322 323 323 **2010-Q2, REPORTING_YEAR_START_DAY = ~-~-07-01 (July 1)** 322 +~1. [REPORTING_YEAR_START_DATE] = 2010-07-01 323 + b) [REPORTING_YEAR_BASE] = 2010-07-01 324 +2. [PERIOD_DURATION] = P3M 325 +3. (2-1) * P3M = P3M 326 + 2010-07-01 + P3M = 2010-10-01 327 + [PERIOD_START] = 2010-10-01 324 324 325 -1. [REPORTING_YEAR_START_DATE] = 2010-07-01 329 +4. 2 * P3M = P6M 330 + 2010-07-01 + P6M = 2010-13-01 = 2011-01-01 331 + 2011-01-01 + -P1D = 2010-12-31 332 + [PERIOD_END] = 2010-12-31 326 326 327 -b) [REPORTING_YEAR_BASE] = 2010-07-01 328 - 329 -1. [PERIOD_DURATION] = P3M 330 -1. (2-1) * P3M = P3M 331 - 332 -2010-07-01 + P3M = 2010-10-01 333 - 334 -[PERIOD_START] = 2010-10-01 335 - 336 -1. 2 * P3M = P6M 337 - 338 -2010-07-01 + P6M = 2010-13-01 = 2011-01-01 339 - 340 -2011-01-01 + -P1D = 2010-12-31 341 - 342 -[PERIOD_END] = 2010-12-31 343 - 344 344 The actual calendar range covered by 2010-Q2 (assuming the reporting year begins July 1) is 2010-10-01T00:00:00/2010-12-31T23:59:59 345 345 346 346 **2011-W36, REPORTING_YEAR_START_DAY = ~-~-07-01 (July 1)** 337 +~1. [REPORTING_YEAR_START_DATE] = 2010-07-01 338 + a) 2011-07-01 = Friday 339 + 2011-07-01 + P3D = 2011-07-04 340 + [REPORTING_YEAR_BASE] = 2011-07-04 341 +2. [PERIOD_DURATION] = P7D 342 +3. (36-1) * P7D = P245D 343 + 2011-07-04 + P245D = 2012-03-05 344 + [PERIOD_START] = 2012-03-05 345 +4. 36 * P7D = P252D 346 + 2011-07-04 + P252D =2012-03-12 347 + 2012-03-12 + -P1D = 2012-03-11 348 + [PERIOD_END] = 2012-03-11 347 347 348 -1. [REPORTING_YEAR_START_DATE] = 2010-07-01 349 - 350 -a) 2011-07-01 = Friday 351 - 352 -2011-07-01 + P3D = 2011-07-04 353 - 354 -[REPORTING_YEAR_BASE] = 2011-07-04 355 - 356 -1. [PERIOD_DURATION] = P7D 357 -1. (36-1) * P7D = P245D 358 - 359 -2011-07-04 + P245D = 2012-03-05 360 - 361 -[PERIOD_START] = 2012-03-05 362 - 363 -1. 36 * P7D = P252D 364 - 365 -2011-07-04 + P252D =2012-03-12 366 - 367 -2012-03-12 + -P1D = 2012-03-11 368 - 369 -[PERIOD_END] = 2012-03-11 370 - 371 371 The actual calendar range covered by 2011-W36 (assuming the reporting year begins July 1) is 2012-03-05T00:00:00/2012-03-11T23:59:59 372 372 373 373 === {{id name="_Toc291513"/}}4.2.7 Distinct Range === ... ... @@ -379,7 +379,7 @@ 379 379 In version 2.0 of SDMX there is a recommendation to use the time format attribute to gives additional information on the way time is represented in the message. Following an appraisal of its usefulness this is no longer required. However, it is still possible, if required , to include the time format attribute in SDMX-ML. 380 380 381 381 (% style="width:771.294px" %) 382 -|Code|(% style="width:659px" %)Format 361 +|**Code**|(% style="width:659px" %)**Format** 383 383 |OTP|(% style="width:659px" %)Observational Time Period: Superset of all SDMX time formats (Gregorian Time Period, Reporting Time Period, and Time Range) 384 384 |STP|(% style="width:659px" %)Standard Time Period: Superset of Gregorian and Reporting Time Periods 385 385 |GTP|(% style="width:659px" %)Superset of all Gregorian Time Periods and date-time ... ... @@ -400,7 +400,7 @@ 400 400 |RD|(% style="width:659px" %)Reporting Day (YYYY-Dddd) 401 401 402 402 (% class="wikigeneratedid" id="HTable1:SDMX-MLTimeFormatCodes" %) 403 -Table 1: SDMX-ML Time Format Codes 382 +**Table 1: SDMX-ML Time Format Codes** 404 404 405 405 === {{id name="_Toc291515"/}}4.2.9 Time Zones === 406 406 ... ... @@ -427,11 +427,11 @@ 427 427 428 428 It has been possible since SDMX 2.0 for a Component to specify a representation of a time span. Depending on the format of the data message, this resulted in either an element with 2 XML attributes for holding the start time and the duration or two separate XML attributes based on the underlying Component identifier. For example, if REF_PERIOD were given a representation of time span, then in the Compact data format, it would be represented by two XML attributes; REF_PERIODStartTime (holding the start) and REF_PERIOD (holding the duration). If a new simple type is introduced in the SDMX schemas that can hold ISO 8601 time intervals, then this will no longer be necessary. What was represented as this: 429 429 430 -<Series REF_PERIODStartTime="2000-01-01T00:00:00" REF_PERIOD="P2M"/> 409 +> <Series REF_PERIODStartTime="2000-01-01T00:00:00" REF_PERIOD="P2M"/> 431 431 432 432 can now be represented with this: 433 433 434 -<Series REF_PERIOD="2000-01-01T00:00:00/P2M"/> 413 +> <Series REF_PERIOD="2000-01-01T00:00:00/P2M"/> 435 435 436 436 === {{id name="_Toc291517"/}}4.2.11 Notes on Formats === 437 437 ... ... @@ -460,11 +460,8 @@ 460 460 **Examples:** 461 461 462 462 **Gregorian Period** 463 - 464 464 Query Parameter: Greater than 2010 465 - 466 466 Literal Interpretation: Any data where the start period occurs after 2010-1231T23:59:59. 467 - 468 468 Example Matches: 469 469 470 470 * 2011 or later ... ... @@ -480,11 +480,10 @@ 480 480 * 2010-D185 or later (reporting year start day ~-~-07-01 or later) 481 481 482 482 **Reporting Period** 483 - 484 484 Query Parameter: Greater than or equal to 2010-Q3 460 +Literal Interpretation: Any data with a reporting period where the start period is on or after the start period of 2010-Q3 for the same reporting year start day, or and data where the start period is on or after 2010-07-01. 461 +Example Matches: 485 485 486 -Literal Interpretation: Any data with a reporting period where the start period is on or after the start period of 2010-Q3 for the same reporting year start day, or and data where the start period is on or after 2010-07-01. Example Matches: 487 - 488 488 * 2011 or later 489 489 * 2010-07 or later 490 490 * 2010-07-01 or later