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,7 +419,6 @@ 419 419 420 420 ‘DF1(1.0.0)/POPULATION.CANADA’ := 421 421 DF1(1.0.0) [ sub INDICATOR=“POPULATION”, COUNTRY=“CANADA” ]; 422 - 423 423 … … … 424 424 425 425 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}} ... ... @@ -472,37 +472,23 @@ 472 472 VTL dataset INDICATOR value COUNTRY value 473 473 474 474 ‘DF2(1.0.0)/GDPPERCAPITA.USA’ GDPPERCAPITA USA 475 - 476 476 ‘DF2(1.0.0)/GDPPERCAPITA.CANADA’ GDPPERCAPITA CANADA … … … 477 - 478 478 ‘DF2(1.0.0)/POPGROWTH.USA’ POPGROWTH USA 479 - 480 480 ‘DF2(1.0.0)/POPGROWTH.CANADA’ POPGROWTH CANADA 481 - 482 482 … … … 483 483 484 484 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: 485 485 486 486 DF2bis_GDPPERCAPITA_USA := ‘DF2(1.0.0)/GDPPERCAPITA.USA’ [calc identifier INDICATOR := ”GDPPERCAPITA”, identifier COUNTRY := ”USA”]; 487 - 488 488 DF2bis_GDPPERCAPITA_CANADA := ‘DF2(1.0.0)/GDPPERCAPITA.CANADA’ [calc identifier INDICATOR:=”GDPPERCAPITA”, identifier COUNTRY:=”CANADA”]; … … … 489 - 490 490 DF2bis_POPGROWTH_USA := ‘DF2(1.0.0)/POPGROWTH.USA’ 491 - 492 492 [calc identifier INDICATOR := ”POPGROWTH”, identifier COUNTRY := ”USA”]; 493 - 494 494 DF2bis_POPGROWTH_CANADA’ := ‘DF2(1.0.0)/POPGROWTH.CANADA’ [calc identifier INDICATOR := ”POPGROWTH”, identifier COUNTRY := ”CANADA”]; … … … 495 - 496 496 DF2(1.0) <- UNION (DF2bis_GDPPERCAPITA_USA’, 497 - 498 498 DF2bis_GDPPERCAPITA_CANADA’, 499 - 500 500 … , 501 - 502 502 DF2bis_POPGROWTH_USA’, 503 - 504 504 DF2bis_POPGROWTH_CANADA’ 505 - 506 506 …); 507 507 508 508 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