Changes for page 12 Validation and Transformation Language (VTL)
Last modified by Helena on 2025/09/10 11:19
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -419,6 +419,7 @@ 419 419 420 420 ‘DF1(1.0.0)/POPULATION.CANADA’ := 421 421 DF1(1.0.0) [ sub INDICATOR=“POPULATION”, COUNTRY=“CANADA” ]; 422 + 422 422 … … … 423 423 424 424 In fact the VTL operator “sub” has exactly the same behaviour. Therefore, mapping different parts of a SDMX Dataflow to different VTL Data Sets in the direction from SDMX to VTL through the ordered concatenation notation is equivalent to a proper use of the operator “**sub**” on such a Dataflow.{{footnote}}In case the ordered concatenation notation is used, the VTL Transformation described above, e.g. ‘DF1(1.0)/POPULATION.USA’ := DF1(1.0) [ sub INDICATOR=“POPULATION”, COUNTRY=“USA”], is implicitly executed. In order to test the overall compliance of the VTL program to the VTL consistency rules, it has to be considered as part of the VTL program even if it is not explicitly coded.{{/footnote}} ... ... @@ -471,23 +471,37 @@ 471 471 VTL dataset INDICATOR value COUNTRY value 472 472 473 473 ‘DF2(1.0.0)/GDPPERCAPITA.USA’ GDPPERCAPITA USA 475 + 474 474 ‘DF2(1.0.0)/GDPPERCAPITA.CANADA’ GDPPERCAPITA CANADA … … … 477 + 475 475 ‘DF2(1.0.0)/POPGROWTH.USA’ POPGROWTH USA 479 + 476 476 ‘DF2(1.0.0)/POPGROWTH.CANADA’ POPGROWTH CANADA 481 + 477 477 … … … 478 478 479 479 It should be noted that the application of this many-to-one mapping from VTL to SDMX is equivalent to an appropriate sequence of VTL Transformations. These use the VTL operator “calc” to add the proper VTL identifiers (in the example, INDICATOR and COUNTRY) and to assign to them the proper values and the operator “union” in order to obtain the final VTL dataset (in the example DF2(1.0.0)), that can be mapped oneto-one to the homonymous SDMX Dataflow. Following the same example, these VTL Transformations would be: 480 480 481 481 DF2bis_GDPPERCAPITA_USA := ‘DF2(1.0.0)/GDPPERCAPITA.USA’ [calc identifier INDICATOR := ”GDPPERCAPITA”, identifier COUNTRY := ”USA”]; 487 + 482 482 DF2bis_GDPPERCAPITA_CANADA := ‘DF2(1.0.0)/GDPPERCAPITA.CANADA’ [calc identifier INDICATOR:=”GDPPERCAPITA”, identifier COUNTRY:=”CANADA”]; … … … 489 + 483 483 DF2bis_POPGROWTH_USA := ‘DF2(1.0.0)/POPGROWTH.USA’ 491 + 484 484 [calc identifier INDICATOR := ”POPGROWTH”, identifier COUNTRY := ”USA”]; 493 + 485 485 DF2bis_POPGROWTH_CANADA’ := ‘DF2(1.0.0)/POPGROWTH.CANADA’ [calc identifier INDICATOR := ”POPGROWTH”, identifier COUNTRY := ”CANADA”]; … … … 495 + 486 486 DF2(1.0) <- UNION (DF2bis_GDPPERCAPITA_USA’, 497 + 487 487 DF2bis_GDPPERCAPITA_CANADA’, 499 + 488 488 … , 501 + 489 489 DF2bis_POPGROWTH_USA’, 503 + 490 490 DF2bis_POPGROWTH_CANADA’ 505 + 491 491 …); 492 492 493 493 In other words, starting from the datasets explicitly calculated through VTL (in the example ‘DF2(1.0)/GDPPERCAPITA.USA’ and so on), the first step consists in calculating other (non-persistent) VTL datasets (in the example