Changes for page 13 Structure Mapping
Last modified by Helena on 2025/09/10 11:19
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 2 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,4 +1,6 @@ 1 -= 13 Structure Mapping = 1 +{{box title="**Contents**"}} 2 +{{toc/}} 3 +{{/box}} 2 2 3 3 == 13.1 Introduction == 4 4 ... ... @@ -16,7 +16,7 @@ 16 16 17 17 * Transforming received data into a common internal structure; 18 18 * Transforming reported data into the data collector's preferred structure; 19 -* Transforming unidimensional datasets ^^[[^^43^^>>path:#sdfootnote43sym||name="sdfootnote43anc"]]^^to multi-dimensional; and21 +* Transforming unidimensional datasets{{footnote}}Unidimensional datasets are those with a single 'indicator' or 'series code' dimension.{{/footnote}} to multi-dimensional; and 20 20 * Transforming internal datasets with a complex structure to a simpler structure with fewer dimensions suitable for dissemination. 21 21 22 22 == 13.2 1-1 structure maps == ... ... @@ -25,25 +25,27 @@ 25 25 26 26 In the example below, ISO 2-character country codes are mapped to their ISO 3character equivalent. 27 27 28 -|Country|Alpha-2 code|Alpha-3 code 29 -|Afghanistan|AF|AFG 30 -|Albania|AL|ALB 31 -|Algeria|DZ|DZA 32 -|American Samoa|AS|ASM 33 -|Andorra|AD|AND 34 -|etc…|| 30 +(% style="width:666.294px" %) 31 +|(% style="width:217px" %)**Country**|(% style="width:251px" %)**Alpha-2 code**|(% style="width:195px" %)**Alpha-3 code** 32 +|(% style="width:217px" %)Afghanistan|(% style="width:251px" %)AF|(% style="width:195px" %)AFG 33 +|(% style="width:217px" %)Albania|(% style="width:251px" %)AL|(% style="width:195px" %)ALB 34 +|(% style="width:217px" %)Algeria|(% style="width:251px" %)DZ|(% style="width:195px" %)DZA 35 +|(% style="width:217px" %)American Samoa|(% style="width:251px" %)AS|(% style="width:195px" %)ASM 36 +|(% style="width:217px" %)Andorra|(% style="width:251px" %)AD|(% style="width:195px" %)AND 37 +|(% style="width:217px" %)etc…|(% style="width:251px" %) |(% style="width:195px" %) 35 35 36 36 Different source values can also map to the same target value, for example when deriving regions from country codes. 37 37 38 -[[image:SDMX 3-0-0 SECTION 6 FINAL-1.0_en_59eee18f.gif||alt="Shape7" height="1" width="192"]] 41 +(% style="width:674.294px" %) 42 +|(% style="width:284px" %)**Source Component: 43 +REF_AREA**|(% style="width:387px" %)**Target Component: 44 +REGION** 45 +|(% style="width:284px" %)FR|(% style="width:387px" %)EUR 46 +|(% style="width:284px" %)DE|(% style="width:387px" %)EUR 47 +|(% style="width:284px" %)IT|(% style="width:387px" %)EUR 48 +|(% style="width:284px" %)ES|(% style="width:387px" %)EUR 49 +|(% style="width:284px" %)BE|(% style="width:387px" %)EUR 39 39 40 -|Source Component: REF_AREA|Target Component: REGION 41 -|FR|EUR 42 -|DE|EUR 43 -|IT|EUR 44 -|ES|EUR 45 -|BE|EUR 46 - 47 47 == 13.3 N-n structure maps == 48 48 49 49 N-n (pronounced 'N to N') mappings describe rules where a specified combination of values in multiple source Components map to specified values in one or more target Components. For example, when mapping a partial Series Key from a highly multidimensional cube (like Balance of Payments) to a single 'Indicator' Dimension in a target Data Structure. ... ... @@ -50,51 +50,42 @@ 50 50 51 51 Example: 52 52 53 -|Rule|Source|Target 54 -|1|((( 57 +(% style="width:760.294px" %) 58 +|(% style="width:58px" %)**Rule**|(% style="width:384px" %)**Source**|(% style="width:313px" %)**Target** 59 +|(% style="width:58px" %)1|(% style="width:384px" %)((( 55 55 If 56 - 57 57 FREQUENCY=A; and ADJUSTMENT=N; and MATURITY=L. 58 -)))|((( 62 +)))|(% style="width:313px" %)((( 59 59 Set 60 - 61 61 INDICATOR=A_N_L 62 62 ))) 63 -|2|((( 66 +|(% style="width:58px" %)2|(% style="width:384px" %)((( 64 64 If 65 - 66 66 FREQUENCY=M; and ADJUSTMENT=S_A1; and MATURITY=TY12. 67 -)))|((( 69 +)))|(% style="width:313px" %)((( 68 68 Set 69 - 70 70 INDICATOR=MON_SAX_12 71 71 ))) 72 72 73 73 N-n rules can also set values for multiple source Components. 74 74 75 -|Rule|Source|Target 76 -|1|((( 76 +(% style="width:757.294px" %) 77 +|(% style="width:62px" %)**Rule**|(% style="width:378px" %)**Source**|(% style="width:312px" %)**Target** 78 +|(% style="width:62px" %)1|(% style="width:378px" %)((( 77 77 If 78 - 79 79 FREQUENCY=A; and ADJUSTMENT=N; and MATURITY=L. 80 -)))|((( 81 +)))|(% style="width:312px" %)((( 81 81 Set 82 - 83 -INDICATOR=A_N_L, STATUS=QXR15, 84 - 83 +INDICATOR=A_N_L, 84 +STATUS=QXR15, 85 85 NOTE="Unadjusted". 86 86 ))) 87 -|2|((( 87 +|(% style="width:62px" %)2|(% style="width:378px" %)((( 88 88 If 89 - 90 90 FREQUENCY=M; and ADJUSTMENT=S_A1; and MATURITY=TY12. 91 -)))|((( 90 +)))|(% style="width:312px" %)((( 92 92 Set 93 - 94 -INDICATOR=MON_SAX_12, 95 - 96 -STATUS=MPM12, 97 - 92 +INDICATOR=MON_SAX_12, STATUS=MPM12, 98 98 NOTE="Seasonally Adjusted" 99 99 ))) 100 100 ... ... @@ -104,37 +104,26 @@ 104 104 105 105 A simple example mapping a source dataset with a single dimension to one with multiple dimensions is shown below: 106 106 107 -|Source|Target|Output Series Key 108 -|SERIES_CODE=XMAN_Z_21|((( 102 +(% style="width:819.294px" %) 103 +|(% style="width:240px" %)**Source**|(% style="width:246px" %)**Target**|(% style="width:329px" %)**Output Series Key** 104 +|(% style="width:240px" %)SERIES_CODE=XMAN_Z_21|(% style="width:246px" %)((( 109 109 Dimensions 110 - 111 111 INDICATOR=XM 112 - 113 113 FREQ=A 114 - 115 115 ADJUSTMENT=N 116 - 117 117 Attributes 118 - 119 119 UNIT_MEASURE=_Z 120 - 121 121 COMP_ORG=21 122 -)))|XM:A:N 123 -|SERIES_CODE=XMAN_Z_34|((( 112 +)))|(% style="width:329px" %)XM:A:N 113 +|(% style="width:240px" %)SERIES_CODE=XMAN_Z_34|(% style="width:246px" %)((( 124 124 Dimensions 125 - 126 126 INDICATOR=XM 127 - 128 128 FREQ=A 129 - 130 130 ADJUSTMENT=N 131 - 132 132 Attributes 133 - 134 134 UNIT_MEASURE=_Z 135 - 136 136 COMP_ORG=34 137 -)))|XM:A:N 121 +)))|(% style="width:329px" %)XM:A:N 138 138 139 139 The above behaviour can be okay if the series XMAN_Z_21 contains observations for different periods of time then the series XMAN_Z_34. If however both series contain observations for the same point in time, the output for this mapping will be two observations with the same series key, for the same period in time. 140 140 ... ... @@ -150,24 +150,26 @@ 150 150 151 151 A Representation Map mapping ISO 2-character to ISO 3-character Codelists would take the following form: 152 152 153 -|CL_ISO_ALPHA2|CL_ISO_ALPHA3 154 -|AF|AFG 155 -|AL|ALB 156 -|DZ|DZA 157 -|AS|ASM 158 -|AD|AND 159 -|etc…| 137 +(% style="width:763.294px" %) 138 +|(% style="width:252px" %)**CL_ISO_ALPHA2**|(% style="width:508px" %)**CL_ISO_ALPHA3** 139 +|(% style="width:252px" %)AF|(% style="width:508px" %)AFG 140 +|(% style="width:252px" %)AL|(% style="width:508px" %)ALB 141 +|(% style="width:252px" %)DZ|(% style="width:508px" %)DZA 142 +|(% style="width:252px" %)AS|(% style="width:508px" %)ASM 143 +|(% style="width:252px" %)AD|(% style="width:508px" %)AND 144 +|(% style="width:252px" %)etc…|(% style="width:508px" %) 160 160 161 161 A Representation Map mapping free text country names to an ISO 2-character Codelist could be similarly described: 162 162 163 -|Text|CL_ISO_ALPHA2 164 -|"Germany"|DE 165 -|"France"|FR 166 -|"United Kingdom"|GB 167 -|"Great Britain"|GB 168 -|"Ireland"|IE 169 -|"Eire"|IE 170 -|etc…| 148 +(% style="width:770.294px" %) 149 +|(% style="width:247px" %)**Text**|(% style="width:520px" %)**CL_ISO_ALPHA2** 150 +|(% style="width:247px" %)"Germany"|(% style="width:520px" %)DE 151 +|(% style="width:247px" %)"France"|(% style="width:520px" %)FR 152 +|(% style="width:247px" %)"United Kingdom"|(% style="width:520px" %)GB 153 +|(% style="width:247px" %)"Great Britain"|(% style="width:520px" %)GB 154 +|(% style="width:247px" %)"Ireland"|(% style="width:520px" %)IE 155 +|(% style="width:247px" %)"Eire"|(% style="width:520px" %)IE 156 +|(% style="width:247px" %)etc…|(% style="width:520px" %) 171 171 172 172 Valuelists, introduced in SDMX 3.0, are equivalent to Codelists but allow the maintenance of non-SDMX identifiers. Importantly, their IDs do not need to conform to IDType, but as a consequence are not Identifiable. 173 173 ... ... @@ -175,10 +175,11 @@ 175 175 176 176 In common with Codelists, each item in a Valuelist has a multilingual name giving it a human-readable label and an optional description. For example: 177 177 178 -|Value|Locale|Name 179 -|$|en|United States Dollar 180 -|%|En|Percentage 181 -||fr|Pourcentage 164 +(% style="width:780.294px" %) 165 +|(% style="width:126px" %)**Value**|(% style="width:153px" %)**Locale**|(% style="width:498px" %)**Name** 166 +|(% style="width:126px" %)$|(% style="width:153px" %)en|(% style="width:498px" %)United States Dollar 167 +|(% style="width:126px" %)%|(% style="width:153px" %)En|(% style="width:498px" %)Percentage 168 +|(% style="width:126px" %) |(% style="width:153px" %)fr|(% style="width:498px" %)Pourcentage 182 182 183 183 Other characteristics of Representation Maps: 184 184 ... ... @@ -202,30 +202,31 @@ 202 202 203 203 Below is an example set of regular expression rules for a particular component. 204 204 205 -|Regex|Description|Output 206 -|A|Rule match if input = 'A'|OUT_A 207 -|^[A-G]|Rule match if the input starts with letters A to G|OUT_B 208 -|A~|B|Rule match if input is either 'A' or 'B'|OUT_C 192 +(% style="width:708.294px" %) 193 +|(% style="width:133px" %)**Regex**|(% style="width:377px" %)**Description**|(% style="width:194px" %)**Output** 194 +|(% style="width:133px" %)A|(% style="width:377px" %)Rule match if input = 'A'|(% style="width:194px" %)OUT_A 195 +|(% style="width:133px" %)^[A-G]|(% style="width:377px" %)Rule match if the input starts with letters A to G|(% style="width:194px" %)OUT_B 196 +|(% style="width:133px" %)A~|B|(% style="width:377px" %)Rule match if input is either 'A' or 'B'|(% style="width:194px" %)OUT_C 209 209 210 210 Like all mapping rules, the output is either a Code, a Value or free text depending on the representation of the Component in the target Data Structure Definition. 211 211 212 212 If the regular expression contains capture groups, these can be used in the definition of the output value, by specifying \//**n** //as an output value where //**n**// is the number of the capture group starting from 1. For example 213 213 214 -|Regex|Target output|Example Input|Example Output 215 -|((( 216 -([0-9]{4})[0- 202 +(% style="width:720.294px" %) 203 +|(% style="width:199px" %)**Regex**|(% style="width:126px" %)**Target output**|(% style="width:192px" %)**Example Input**|(% style="width:200px" %)**Example Output** 204 +|(% style="width:199px" %)((( 205 +([0-9]{4})[0-9]([0-9]{1}) 206 +)))|(% style="width:126px" %)\1-Q\2|(% style="width:192px" %)200933|(% style="width:200px" %)2009-Q3 217 217 218 -9]([0-9]{1}) 219 -)))|\1-Q\2|200933|2009-Q3 220 - 221 221 As regular expression rules can be used as a general catch-all if nothing else matches, the ordering of the rules is important. Rules should be tested starting with the highest priority, moving down the list until a match is found. 222 222 223 223 The following example shows this: 224 224 225 -|Priority|Regex|Description|Output 226 -|1|A|Rule match if input = 'A'|OUT_A 227 -|2|B|Rule match if input = 'B'|OUT_B 228 -|3|[A-Z]|Any character A-Z|OUT_C 212 +(% style="width:725.294px" %) 213 +|(% style="width:198px" %)**Priority**|(% style="width:148px" %)**Regex**|(% style="width:212px" %)**Description**|(% style="width:164px" %)**Output** 214 +|(% style="width:198px" %)1|(% style="width:148px" %)A|(% style="width:212px" %)Rule match if input = 'A'|(% style="width:164px" %)OUT_A 215 +|(% style="width:198px" %)2|(% style="width:148px" %)B|(% style="width:212px" %)Rule match if input = 'B'|(% style="width:164px" %)OUT_B 216 +|(% style="width:198px" %)3|(% style="width:148px" %)[A-Z]|(% style="width:212px" %)Any character A-Z|(% style="width:164px" %)OUT_C 229 229 230 230 The input 'A' matches both the first and the last rule, but the first takes precedence having the higher priority. The output is OUT_A. 231 231 ... ... @@ -237,14 +237,16 @@ 237 237 238 238 For instance: 239 239 240 -|Input String|Start|Length|Output 241 -|ABC_DEF_XYZ|5|3|DEF 242 -|XULADS|1|2|XU 228 +(% style="width:742.294px" %) 229 +|(% style="width:191px" %)**Input String**|(% style="width:154px" %)**Start**|(% style="width:211px" %)**Length**|(% style="width:182px" %)**Output** 230 +|(% style="width:191px" %)ABC_DEF_XYZ|(% style="width:154px" %)5|(% style="width:211px" %)3|(% style="width:182px" %)DEF 231 +|(% style="width:191px" %)XULADS|(% style="width:154px" %)1|(% style="width:211px" %)2|(% style="width:182px" %)XU 243 243 244 244 Sub-strings can therefore be used for the conceptual rule //If starts with 'XU' map to Y// as shown in the following example: 245 245 246 -|Start|Length|Source|Target 247 -|1|2|XU|Y 235 +(% style="width:740.294px" %) 236 +|(% style="width:194px" %)**Start**|(% style="width:151px" %)**Length**|(% style="width:208px" %)**Source**|(% style="width:183px" %)**Target** 237 +|(% style="width:194px" %)1|(% style="width:151px" %)2|(% style="width:208px" %)XU|(% style="width:183px" %)Y 248 248 249 249 == 13.7 Mapping non-SDMX time formats to SDMX formats == 250 250 ... ... @@ -256,15 +256,16 @@ 256 256 257 257 The output of a time-based mapping is derived from the output Frequency, which is either explicitly stated in the mapping or defined as the value output by a specific Dimension or Attribute in the output mapping. If the output frequency is unknown or if the SDMX format is not desired, then additional rules can be provided to specify the output date format for the given frequency Id. The default rules are: 258 258 259 -|Frequency|Format|Example 260 -|A|YYYY|2010 261 -|D|YYYY-MM-DD|2010-01-01 262 -|I|YYYY-MM-DDThh:mm:ss|2010-01T20:22:00 263 -|M|YYYY-MM|2010-01 264 -|Q|YYYY-Qn|2010-Q1 265 -|S|YYYY-Sn|2010-S1 266 -|T|YYYY-Tn|2010-T1 267 -|W|YYYY-Wn|YYYY-W53 249 +(% style="width:771.294px" %) 250 +|(% style="width:187px" %)**Frequency**|(% style="width:159px" %)**Format**|(% style="width:422px" %)**Example** 251 +|(% style="width:187px" %)A|(% style="width:159px" %)YYYY|(% style="width:422px" %)2010 252 +|(% style="width:187px" %)D|(% style="width:159px" %)YYYY-MM-DD|(% style="width:422px" %)2010-01-01 253 +|(% style="width:187px" %)I|(% style="width:159px" %)YYYY-MM-DDThh:mm:ss|(% style="width:422px" %)2010-01T20:22:00 254 +|(% style="width:187px" %)M|(% style="width:159px" %)YYYY-MM|(% style="width:422px" %)2010-01 255 +|(% style="width:187px" %)Q|(% style="width:159px" %)YYYY-Qn|(% style="width:422px" %)2010-Q1 256 +|(% style="width:187px" %)S|(% style="width:159px" %)YYYY-Sn|(% style="width:422px" %)2010-S1 257 +|(% style="width:187px" %)T|(% style="width:159px" %)YYYY-Tn|(% style="width:422px" %)2010-T1 258 +|(% style="width:187px" %)W|(% style="width:159px" %)YYYY-Wn|(% style="width:422px" %)YYYY-W53 268 268 269 269 In the case where the input frequency is lower than the output frequency, the mapping defaults to end of period, but can be explicitly set to start, end or mid-period. 270 270 ... ... @@ -277,76 +277,70 @@ 277 277 278 278 Date and time formats are specified by date and time pattern strings based on Java's Simple Date Format. Within date and time pattern strings, unquoted letters from 'A' to 'Z' and from 'a' to 'z' are interpreted as pattern letters representing the components of a date or time string. Text can be quoted using single quotes (') to avoid interpretation. "''" represents a single quote. All other characters are not interpreted; they're simply copied into the output string during formatting or matched against the input string during parsing. 279 279 280 -Due to the fact that dates may differ per locale, an optional property, defining the locale of the pattern, is provided. This would assist processing of source dates, according to the given locale ^^[[^^44^^>>path:#sdfootnote44sym||name="sdfootnote44anc"]]^^. An indicative list of examples is presented in the following table:271 +Due to the fact that dates may differ per locale, an optional property, defining the locale of the pattern, is provided. This would assist processing of source dates, according to the given locale{{footnote}}Unidimensional datasets are those with a single 'indicator' or 'series code' dimension.{{/footnote}}. An indicative list of examples is presented in the following table: 281 281 282 -|English (en)|Australia (AU)|en-AU 283 -|English (en)|Canada (CA)|en-CA 284 -|English (en)|United Kingdom (GB)|en-GB 285 -|English (en)|United States (US)|en-US 286 -|Estonian (et)|Estonia (EE)|et-EE 287 -|Finnish (fi)|Finland (FI)|fi-FI 288 -|French (fr)|Belgium (BE)|fr-BE 289 -|French (fr)|Canada (CA)|fr-CA 290 -|French (fr)|France (FR)|fr-FR 291 -|French (fr)|Luxembourg (LU)|fr-LU 292 -|French (fr)|Switzerland (CH)|fr-CH 293 -|German (de)|Austria (AT)|de-AT 294 -|German (de)|Germany (DE)|de-DE 273 +(% style="width:772.294px" %) 274 +|(% style="width:190px" %)English (en)|(% style="width:230px" %)Australia (AU)|(% style="width:348px" %)en-AU 275 +|(% style="width:190px" %)English (en)|(% style="width:230px" %)Canada (CA)|(% style="width:348px" %)en-CA 276 +|(% style="width:190px" %)English (en)|(% style="width:230px" %)United Kingdom (GB)|(% style="width:348px" %)en-GB 277 +|(% style="width:190px" %)English (en)|(% style="width:230px" %)United States (US)|(% style="width:348px" %)en-US 278 +|(% style="width:190px" %)Estonian (et)|(% style="width:230px" %)Estonia (EE)|(% style="width:348px" %)et-EE 279 +|(% style="width:190px" %)Finnish (fi)|(% style="width:230px" %)Finland (FI)|(% style="width:348px" %)fi-FI 280 +|(% style="width:190px" %)French (fr)|(% style="width:230px" %)Belgium (BE)|(% style="width:348px" %)fr-BE 281 +|(% style="width:190px" %)French (fr)|(% style="width:230px" %)Canada (CA)|(% style="width:348px" %)fr-CA 282 +|(% style="width:190px" %)French (fr)|(% style="width:230px" %)France (FR)|(% style="width:348px" %)fr-FR 283 +|(% style="width:190px" %)French (fr)|(% style="width:230px" %)Luxembourg (LU)|(% style="width:348px" %)fr-LU 284 +|(% style="width:190px" %)French (fr)|(% style="width:230px" %)Switzerland (CH)|(% style="width:348px" %)fr-CH 285 +|(% style="width:190px" %)German (de)|(% style="width:230px" %)Austria (AT)|(% style="width:348px" %)de-AT 286 +|(% style="width:190px" %)German (de)|(% style="width:230px" %)Germany (DE)|(% style="width:348px" %)de-DE 295 295 296 -[[image:SDMX 3-0-0 SECTION 6 FINAL-1.0_en_59eee18f.gif||alt="Shape8" height="1" width="192"]] 288 +(% style="width:773.294px" %) 289 +|(% style="width:190px" %)German (de)|(% style="width:234px" %)Luxembourg (LU)|(% style="width:345px" %)de-LU 290 +|(% style="width:190px" %)German (de)|(% style="width:234px" %)Switzerland (CH)|(% style="width:345px" %)de-CH 291 +|(% style="width:190px" %)Greek (el)|(% style="width:234px" %)Cyprus (CY)|(% style="width:345px" %)el-CY__([[*>>https://www.oracle.com/java/technologies/javase/jdk8-jre8-suported-locales.html#cldrlocale]])__ 292 +|(% style="width:190px" %)Greek (el)|(% style="width:234px" %)Greece (GR)|(% style="width:345px" %)el-GR 293 +|(% style="width:190px" %)Hebrew (iw)|(% style="width:234px" %)Israel (IL)|(% style="width:345px" %)iw-IL 294 +|(% style="width:190px" %)Hindi (hi)|(% style="width:234px" %)India (IN)|(% style="width:345px" %)hi-IN 295 +|(% style="width:190px" %)Hungarian (hu)|(% style="width:234px" %)Hungary (HU)|(% style="width:345px" %)hu-HU 296 +|(% style="width:190px" %)Icelandic (is)|(% style="width:234px" %)Iceland (IS)|(% style="width:345px" %)is-IS 297 +|(% style="width:190px" %)Indonesian (in)|(% style="width:234px" %)Indonesia (ID)|(% style="width:345px" %)in-ID__([[*>>https://www.oracle.com/java/technologies/javase/jdk8-jre8-suported-locales.html#cldrlocale]])__ 298 +|(% style="width:190px" %)Irish (ga)|(% style="width:234px" %)Ireland (IE)|(% style="width:345px" %)ga-IE__([[*>>https://www.oracle.com/java/technologies/javase/jdk8-jre8-suported-locales.html#cldrlocale]])__ 299 +|(% style="width:190px" %)Italian (it)|(% style="width:234px" %)Italy (IT)|(% style="width:345px" %)it-IT 297 297 298 -|German (de)|Luxembourg (LU)|de-LU 299 -|German (de)|Switzerland (CH)|de-CH 300 -|Greek (el)|Cyprus (CY)|el-CY[[__(*)__>>url:https://www.oracle.com/java/technologies/javase/jdk8-jre8-suported-locales.html#cldrlocale]][[url:https://www.oracle.com/java/technologies/javase/jdk8-jre8-suported-locales.html#cldrlocale]] 301 -|Greek (el)|Greece (GR)|el-GR 302 -|Hebrew (iw)|Israel (IL)|iw-IL 303 -|Hindi (hi)|India (IN)|hi-IN 304 -|Hungarian (hu)|Hungary (HU)|hu-HU 305 -|Icelandic (is)|Iceland (IS)|is-IS 306 -|Indonesian (in)|Indonesia (ID)|in-ID[[__(*)__>>url:https://www.oracle.com/java/technologies/javase/jdk8-jre8-suported-locales.html#cldrlocale]][[url:https://www.oracle.com/java/technologies/javase/jdk8-jre8-suported-locales.html#cldrlocale]] 307 -|Irish (ga)|Ireland (IE)|ga-IE[[__(*)__>>url:https://www.oracle.com/java/technologies/javase/jdk8-jre8-suported-locales.html#cldrlocale]][[url:https://www.oracle.com/java/technologies/javase/jdk8-jre8-suported-locales.html#cldrlocale]] 308 -|Italian (it)|Italy (IT)|it-IT 309 - 310 310 Examples 311 311 312 312 22/06/1981 would be described as dd/MM/YYYY, with locale en-GB 313 - 314 314 2008-mars-12 would be described as YYYY-MMM-DD, with locale fr-FR 315 - 316 316 22 July 1981 would be described as dd MMMM YYYY, with locale en-US 317 - 318 318 22 Jul 1981 would be described as dd MMM YYYY 319 - 320 320 2010 D62 would be described as YYYYDnn (day 62 of the year 2010) 321 321 322 322 The following pattern letters are defined (all other characters from 'A' to 'Z' and from 'a' to 'z' are reserved): 323 323 324 -|Letter|Date or Time Component|Presentation|Examples 325 -|G|Era designator|[[Text>>url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#text]][[url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#text]]|AD 326 -|yy|Year short (upper case is Year of Week^^[[^^45^^>>path:#sdfootnote45sym||name="sdfootnote45anc"]]^^)|[[Year>>url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#year]][[url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#year]]|96 327 -|yyyy|Year Full (upper case is Year of Week)|Year|1996 328 -|MM|Month number in year starting with 1|Month|07 329 -|MMM|Month name short|Month|Jul 330 -|MMMM|Month name full|Month|July 331 -|ww|Week in year|[[Number>>url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]][[url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]]|27 332 -|W|Week in month|[[Number>>url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]][[url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]]|2 333 -|DD|Day in year|[[Number>>url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]][[url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]]|189 334 -|dd|Day in month|[[Number>>url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]][[url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]]|10 335 -|F|Day of week in month|[[Number>>url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]][[url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]]|2 336 -|E|Day name in week|[[Text>>url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#text]][[url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#text]]|Tuesday; Tue 311 +(% style="width:896.294px" %) 312 +|(% style="width:133px" %)**Letter**|(% style="width:414px" %)**Date or Time Component**|(% style="width:157px" %)**Presentation**|(% style="width:172px" %)**Examples** 313 +|(% style="width:133px" %)G|(% style="width:414px" %)Era designator|(% style="width:157px" %)Text|(% style="width:172px" %)AD 314 +|(% style="width:133px" %)yy|(% style="width:414px" %)Year short (upper case is Year of Week{{footnote}}yyyy represents the calendar year while YYYY represents the year of the week, which is only relevant for 53 week years{{/footnote}})|(% style="width:157px" %)Year|(% style="width:172px" %)96 315 +|(% style="width:133px" %)yyyy|(% style="width:414px" %)Year Full (upper case is Year of Week)|(% style="width:157px" %)Year|(% style="width:172px" %)1996 316 +|(% style="width:133px" %)MM|(% style="width:414px" %)Month number in year starting with 1|(% style="width:157px" %)Month|(% style="width:172px" %)07 317 +|(% style="width:133px" %)MMM|(% style="width:414px" %)Month name short|(% style="width:157px" %)Month|(% style="width:172px" %)Jul 318 +|(% style="width:133px" %)MMMM|(% style="width:414px" %)Month name full|(% style="width:157px" %)Month|(% style="width:172px" %)July 319 +|(% style="width:133px" %)ww|(% style="width:414px" %)Week in year|(% style="width:157px" %)Number|(% style="width:172px" %)27 320 +|(% style="width:133px" %)W|(% style="width:414px" %)Week in month|(% style="width:157px" %)Number|(% style="width:172px" %)2 321 +|(% style="width:133px" %)DD|(% style="width:414px" %)Day in year|(% style="width:157px" %)Number|(% style="width:172px" %)189 322 +|(% style="width:133px" %)dd|(% style="width:414px" %)Day in month|(% style="width:157px" %)Number|(% style="width:172px" %)10 323 +|(% style="width:133px" %)F|(% style="width:414px" %)Day of week in month|(% style="width:157px" %)Number|(% style="width:172px" %)2 324 +|(% style="width:133px" %)E|(% style="width:414px" %)Day name in week|(% style="width:157px" %)Text|(% style="width:172px" %)Tuesday; Tue 325 +|(% style="width:132px" %)U|(% style="width:414px" %)Day number of week (1 = Monday, ..., 7 = Sunday)|(% style="width:157px" %)Number|(% style="width:217px" %)1 326 +|(% style="width:132px" %)HH|(% style="width:414px" %)Hour in day (0-23)|(% style="width:157px" %)Number|(% style="width:217px" %)0 327 +|(% style="width:132px" %)kk|(% style="width:414px" %)Hour in day (1-24)|(% style="width:157px" %)Number|(% style="width:217px" %)24 328 +|(% style="width:132px" %)KK|(% style="width:414px" %)Hour in am/pm (0-11)|(% style="width:157px" %)Number|(% style="width:217px" %)0 329 +|(% style="width:132px" %)hh|(% style="width:414px" %)Hour in am/pm (1-12)|(% style="width:157px" %)Number|(% style="width:217px" %)12 330 +|(% style="width:132px" %)mm|(% style="width:414px" %)Minute in hour|(% style="width:157px" %)Number|(% style="width:217px" %)30 331 +|(% style="width:132px" %)ss|(% style="width:414px" %)Second in minute|(% style="width:157px" %)Number|(% style="width:217px" %)55 332 +|(% style="width:132px" %)S|(% style="width:414px" %)Millisecond|(% style="width:157px" %)Number|(% style="width:217px" %)978 333 +|(% style="width:132px" %)n|(% style="width:414px" %)Number of periods, used after a SDMX Frequency Identifier such as M, Q, D (month, quarter, day)|(% style="width:157px" %)Number|(% style="width:217px" %)12 337 337 338 -[[image:SDMX 3-0-0 SECTION 6 FINAL-1.0_en_59eee18f.gif||alt="Shape9" height="1" width="192"]] 339 - 340 -|U|Day number of week (1 = Monday, ..., 7 = Sunday)|[[Number>>url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]][[url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]]|1 341 -|HH|Hour in day (0-23)|[[Number>>url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]][[url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]]|0 342 -|kk|Hour in day (1-24)|[[Number>>url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]][[url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]]|24 343 -|KK|Hour in am/pm (0-11)|[[Number>>url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]][[url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]]|0 344 -|hh|Hour in am/pm (1-12)|[[Number>>url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]][[url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]]|12 345 -|mm|Minute in hour|[[Number>>url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]][[url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]]|30 346 -|ss|Second in minute|[[Number>>url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]][[url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]]|55 347 -|S|Millisecond|[[Number>>url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]][[url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]]|978 348 -|n|Number of periods, used after a SDMX Frequency Identifier such as M, Q, D (month, quarter, day)|[[Number>>url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]][[url:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number]]|12 349 - 350 350 The model is illustrated below: 351 351 352 352 [[image:SDMX 3-0-0 SECTION 6 FINAL-1.0_en_295af259.jpg||height="265" width="477"]] ... ... @@ -367,17 +367,16 @@ 367 367 * microsecond 368 368 * nanosecond 369 369 370 -|Numerical datetime systems|Base|Period 371 -|((( 355 +(% style="width:573.294px" %) 356 +|(% style="width:276px" %)**Numerical datetime systems**|(% style="width:117px" %)**Base**|(% style="width:177px" %)**Period** 357 +|(% style="width:276px" %)((( 372 372 Epoch Time (UNIX) 373 - 374 374 Milliseconds since 01 Jan 1970 375 -)))|1970|millisecond 376 -|((( 360 +)))|(% style="width:117px" %)1970|(% style="width:177px" %)millisecond 361 +|(% style="width:276px" %)((( 377 377 Windows System Time 378 - 379 379 Milliseconds since 01 Jan 1601 380 -)))|1601|millisecond 364 +)))|(% style="width:117px" %)1601|(% style="width:177px" %)millisecond 381 381 382 382 The example above illustrates numerical based datetime mapping rules for two commonly used time standards. 383 383 ... ... @@ -399,41 +399,34 @@ 399 399 400 400 The main use case is setting the value of Observation Attributes in the target dataset. 401 401 402 -|Rule|Source|Target 403 -|1|((( 386 +(% style="width:786.294px" %) 387 +|(% style="width:92px" %)**Rule**|(% style="width:377px" %)**Source**|(% style="width:315px" %)**Target** 388 +|(% style="width:92px" %)1|(% style="width:377px" %)((( 404 404 If 405 - 406 406 INDICATOR=XULADS; and TIME_PERIOD=2007. 407 -)))|((( 391 +)))|(% style="width:315px" %)((( 408 408 Set 409 - 410 410 OBS_CONF=F 411 411 ))) 412 -|2|((( 395 +|(% style="width:92px" %)2|(% style="width:377px" %)((( 413 413 If 414 - 415 415 INDICATOR=XULADS; and TIME_PERIOD=2008. 416 -)))|((( 398 +)))|(% style="width:315px" %)((( 417 417 Set 418 - 419 419 OBS_CONF=F 420 420 ))) 421 -|3|((( 402 +|(% style="width:92px" %)3|(% style="width:377px" %)((( 422 422 If 423 - 424 424 INDICATOR=XULADS; and TIME_PERIOD=2009. 425 -)))|((( 405 +)))|(% style="width:315px" %)((( 426 426 Set 427 - 428 428 OBS_CONF=F 429 429 ))) 430 -|4|((( 409 +|(% style="width:92px" %)4|(% style="width:377px" %)((( 431 431 If 432 - 433 433 INDICATOR=XULADS; and TIME_PERIOD=2010. 434 -)))|((( 412 +)))|(% style="width:315px" %)((( 435 435 Set 436 - 437 437 OBS_CONF=**C** 438 438 ))) 439 439 ... ... @@ -447,27 +447,22 @@ 447 447 448 448 By specifying validity periods, the example from Section 13.8 can be re-written using two rules as follows: 449 449 450 -|Rule|Source|Target 451 -|1|((( 427 +(% style="width:808.294px" %) 428 +|(% style="width:93px" %)**Rule**|(% style="width:385px" %)**Source**|(% style="width:328px" %)**Target** 429 +|(% style="width:93px" %)1|(% style="width:385px" %)((( 452 452 If 453 - 454 454 INDICATOR=XULADS. 455 - 456 456 Validity Period start period=2007 end period=2009 457 -)))|((( 433 +)))|(% style="width:328px" %)((( 458 458 Set 459 - 460 460 OBS_CONF=F 461 461 ))) 462 -|2|((( 437 +|(% style="width:93px" %)2|(% style="width:385px" %)((( 463 463 If 464 - 465 465 INDICATOR=XULADS. 466 - 467 467 Validity Period start period=2010 468 -)))|((( 441 +)))|(% style="width:328px" %)((( 469 469 Set 470 - 471 471 OBS_CONF=F** ** 472 472 ))) 473 473 ... ... @@ -479,37 +479,12 @@ 479 479 480 480 === 13.10.1 Many to one mapping (N-1) === 481 481 482 -|Source|Map To 483 -|((( 484 -**FREQ**="A" 454 +[[image:1747377208446-496.png]] 485 485 486 -ADJUSTMENT="N" 487 - 488 -**REF_AREA**="PL" 489 - 490 -**COUNTERPART_AREA**="W0" 491 - 492 -REF_SECTOR="S1" 493 - 494 -COUNTERPART_SECTOR="S1" ACCOUNTING_ENTRY="B" 495 - 496 -STO="B5G" 497 -)))|((( 498 -FREQ="A" 499 - 500 -REF_AREA="PL" 501 - 502 -COUNTERPART_AREA="W0" 503 - 504 -INDICATOR="IND_ABC" 505 -))) 506 - 507 507 The bold Dimensions map from source to target verbatim. The mapping simply specifies: 508 508 509 509 FREQ => FREQ 510 - 511 511 REF_AREA=> REF_AREA 512 - 513 513 COUNTERPART_AREA=> COUNTERPART _AREA 514 514 515 515 No Representation Mapping is required. The source value simply copies across unmodified. ... ... @@ -528,49 +528,45 @@ 528 528 529 529 The following representation mapping can be used to explicitly map each age to an output code. 530 530 531 -: 532 - 533 533 ((( 534 -|Source Input Free Text|Desired Output Code Id 535 -|0|A 536 -|1|A 537 -|2|A 538 -|3|B 539 -|4|B 479 +(% style="width:669.294px" %) 480 +|(% style="width:218px" %)**Source Input Free Text**|(% style="width:448px" %)**Desired Output Code Id** 481 +|(% style="width:218px" %)0|(% style="width:448px" %)A 482 +|(% style="width:218px" %)1|(% style="width:448px" %)A 483 +|(% style="width:218px" %)2|(% style="width:448px" %)A 484 +|(% style="width:218px" %)3|(% style="width:448px" %)B 485 +|(% style="width:218px" %)4|(% style="width:448px" %)B 540 540 ))) 541 541 542 -If this mapping takes advantage of regular expressions it can be expressed in two 3464rules:488 +If this mapping takes advantage of regular expressions it can be expressed in two rules: 543 543 544 -[[image:SDMX 3-0-0 SECTION 6 FINAL-1.0_en_8c1afe2b.gif||alt="Shape10" height="1" width="302"]] 545 - 546 -__Regular Expression __Desired Output 547 - 548 -: 549 - 550 550 ((( 551 -|[0-2]|A 552 -|[3-4]|B 491 +(% style="width:675.294px" %) 492 +|(% style="width:219px" %)((( 493 +**Regular Expression** 494 +)))|(% style="width:453px" %)**Desired Output** 495 +|(% style="width:219px" %)[0-2]|(% style="width:453px" %)A 496 +|(% style="width:219px" %)[3-4]|(% style="width:453px" %)B 497 + 498 +(% style="color:inherit; font-family:inherit; font-size:max(21px, min(23px, 17.4444px + 0.462963vw))" %)13.10.3 Observation Attributes for Time Period 553 553 ))) 554 554 555 -=== 13.10.3 Observation Attributes for Time Period === 556 - 557 557 This use case is where a specific observation for a specific time period has an attribute 3468 value. 558 558 559 -: 560 - 561 561 ((( 562 -|Input INDICATOR|Input TIME_PERIOD|Output OBS_CONF 563 -|XULADS|2008|C 564 -|XULADS|2009|C 565 -|XULADS|2010|C 504 +(% style="width:689.294px" %) 505 +|(% style="width:220px" %)**Input INDICATOR**|(% style="width:223px" %)**Input TIME_PERIOD**|(% style="width:243px" %)**Output OBS_CONF** 506 +|(% style="width:220px" %)XULADS|(% style="width:223px" %)2008|(% style="width:243px" %)C 507 +|(% style="width:220px" %)XULADS|(% style="width:223px" %)2009|(% style="width:243px" %)C 508 +|(% style="width:220px" %)XULADS|(% style="width:223px" %)2010|(% style="width:243px" %)C 566 566 ))) 567 567 568 - __Or using a validity period on the Representation Mapping__:511 +Or using a validity period on the Representation Mapping: 569 569 570 -[[image:SDMX 3-0-0 SECTION 6 FINAL-1.0_en_6dbf7f.gif||alt="Shape11" height="36" width="555"]] Input INDICATOR Valid From/ Valid To Output OBS_CONF 513 +(% style="width:693.294px" %) 514 +|(% style="width:221px" %)**Input INDICATOR**|(% style="width:222px" %)**Valid From/ Valid To**|(% style="width:246px" %)**Output OBS_CONF** 515 +|(% style="width:221px" %)XULADS|(% style="width:222px" %)2008/2010|(% style="width:246px" %)C 571 571 572 -XULADS 2008/2010 C 573 - 574 574 === 13.10.4 Time mapping === 575 575 576 576 This use case is to create a time period from an input that does not respect SDMXTime Formats. ... ... @@ -577,49 +577,38 @@ 577 577 578 578 The Component Mapping from SYS_TIME to TIME_PERIOD specifies itself as a time mapping with the following details: 579 579 580 -: 581 - 582 582 ((( 583 -|Source Value|Source Mapping|Target Frequency|Output 584 -|18/07/1981|dd/MM/yyyy|A|1981 524 +(% style="width:763.294px" %) 525 +|(% style="width:163px" %)**Source Value**|(% style="width:219px" %)**Source Mapping**|(% style="width:198px" %)**Target Frequency**|(% style="width:180px" %)**Output** 526 +|(% style="width:163px" %)18/07/1981|(% style="width:219px" %)dd/MM/yyyy|(% style="width:198px" %)A|(% style="width:180px" %)1981 585 585 ))) 586 586 587 -When the target frequency is based on another target Dimension value, in this example __the value of the FREQ Dimension in the tar__get DSD.529 +When the target frequency is based on another target Dimension value, in this example the value of the FREQ Dimension in the target DSD. 588 588 589 -[[image:SDMX 3-0-0 SECTION 6 FINAL-1.0_en_dbe68698.gif||alt="Shape12" height="1" width="273"]] 590 - 591 -: 592 -:: 593 - 594 594 ((( 595 -|Source Value|Source Mapping|Target Frequency Output Dimension 532 +(% style="width:734.294px" %) 533 +|(% style="width:165px" %)**Source Value**|(% style="width:220px" %)**Source Mapping**|(% style="width:161px" %)**Target Frequency**|(% style="width:251px" %)**Output Dimension** 534 +|(% style="width:165px" %)18/07/1981|(% style="width:220px" %)dd/MM/yyyy|(% style="width:161px" %)FREQ|(% style="width:251px" %)1981-07-18 (when FREQ=D) 596 596 597 -|18/07/1981 dd/MM/yyyy|FREQ||1981-07-18 (when FREQ=D) 598 -|(% rowspan="2" %)((( 599 -__When the source is a numerical form__at 536 +When the source is a numerical format 600 600 601 -Source Value Start Period Interv 602 -)))||| 603 -|al|((( 604 -Target 538 +(% style="width:892.294px" %) 539 +|(% style="width:165px" %)**Source Value**|(% style="width:133px" %)**Start Period**|(% style="width:191px" %)**Interv**|(% style="width:264px" %)**Target FREQ**|(% style="width:167px" %)**Output** 540 +|(% style="width:165px" %)1589808220|(% style="width:133px" %)1970|(% style="width:191px" %)millisecond|(% style="width:264px" %)1981-07-18 (when FREQ=D)|(% style="width:167px" %)2020-05 605 605 606 -FREQ 607 -)))|Output 608 -|(% colspan="2" %)1589808220 1970 millisecond|M|2020-05 542 +When the source frequency is lower than the target frequency additional information 3485 can be provided for resolve to start of period, end of period, or mid period, as shown 3486 in the following example: 609 609 ))) 610 610 611 -When the source frequency is lower than the target frequency additional information 3485 can be provided for resolve to start of period, end of period, or mid period, as shown 3486 in the following example: 545 +(% style="width:892.294px" %) 546 +|(% style="width:165px" %)**Source Value**|(% style="width:133px" %)**Source Mapping**|(% style="width:191px" %)**Target Dimension**|(% style="width:264px" %)**Frequency**|(% style="width:167px" %)**Output** 547 +|(% style="width:165px" %)1981|(% style="width:133px" %)yyyy|(% style="width:191px" %)D – End of Period|(% style="width:264px" %) |(% style="width:167px" %)1981-12-31 612 612 613 -Source Value Source Mapping Target Frequency Output 614 - 615 -Dimension 616 - 617 -[[image:SDMX 3-0-0 SECTION 6 FINAL-1.0_en_4ec4bb31.gif||alt="Shape13" height="173" width="555"]] 1981 yyyy D – End of Period 1981-12-31 618 - 619 619 When the start of year is April 1^^st^^ the Structure Map has YearStart=04-01: 620 620 621 -Source Value Source Mapping Target Frequency Output 551 +(% style="width:892.294px" %) 552 +|(% style="width:165px" %)**Source Value**|(% style="width:133px" %)**Source Mapping**|(% style="width:191px" %)**Target Dimension**|(% style="width:264px" %)**Frequency**|(% style="width:167px" %)**Output** 553 +|(% style="width:165px" %)1981|(% style="width:133px" %)yyyy|(% style="width:191px" %)D – End of Period|(% style="width:264px" %) |(% style="width:167px" %)1982-03-31 622 622 623 - Dimension555 +---- 624 624 625 - 1981 yyyy D – Endof Period 1982-03-31557 +{{putFootnotes/}}
- 1747377208446-496.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +28.0 KB - Content
- SDMX 3-0-0 SECTION 6 FINAL-1.0_en_a3215c79.jpg
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.helena - Size
-
... ... @@ -1,0 +1,1 @@ 1 +30.6 KB - Content