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
-
... ... @@ -580,10 +580,8 @@ 580 580 581 581 Therefore, it is important to be aware that some VTL operations (for example the binary operations at data set level) are consistent only if the components having the same names in the operated VTL Data Sets have also the same representation (i.e. the same Value Domain as for VTL). For example, it is possible to obtain correct results from the VTL expression 582 582 583 -DS_c := DS_a + DS_b (where DS_a, DS_b, DS_c are VTL Data Sets) 583 +DS_c := DS_a + DS_b (where DS_a, DS_b, DS_c are VTL Data Sets) if the matching components in DS_a and DS_b (e.g. ref_date, geo_area, sector …) refer to the same general representation. In simpler words, DS_a and DS_b must use the same values/codes (for ref_date, geo_area, sector … ), otherwise the relevant values would not match and the result of the operation would be wrong. 584 584 585 -if the matching components in DS_a and DS_b (e.g. ref_date, geo_area, sector …) refer to the same general representation. In simpler words, DS_a and DS_b must use the same values/codes (for ref_date, geo_area, sector … ), otherwise the relevant values would not match and the result of the operation would be wrong. 586 - 587 587 As mentioned, the property above is not enforced by construction in SDMX, and different representations of the same Concept can be not compatible one another (for example, it may happen that geo_area is represented by ISO-alpha-3 codes in DS_a and by ISO alpha-2 codes in DS_b). Therefore, it will be up to the definer of VTL 588 588 589 589 Transformations to ensure that the VTL expressions are consistent with the actual representations of the correspondent SDMX Concepts. ... ... @@ -600,8 +600,7 @@ 600 600 601 601 [[image:SDMX 3-0-0 SECTION 6 FINAL-1.0_en_e3df33ae.png||height="543" width="483"]] 602 602 603 -(% class="wikigeneratedid" id="HFigure222013VTLDataTypes" %) 604 -**Figure 22 – VTL Data Types** 601 +==== Figure 22 – VTL Data Types ==== 605 605 606 606 The VTL scalar types are in turn subdivided in basic scalar types, which are elementary (not defined in term of other data types) and Value Domain and Set scalar types, which are defined in terms of the basic scalar types. 607 607 ... ... @@ -608,12 +608,131 @@ 608 608 The VTL basic scalar types are listed below and follow a hierarchical structure in terms of supersets/subsets (e.g. "scalar" is the superset of all the basic scalar types): 609 609 610 610 611 -**Figure 23 – VTL Basic Scalar Types** 612 612 613 613 ((( 614 - 610 +//n// 611 + 612 +//a// 613 + 614 +//e// 615 + 616 +//l// 617 + 618 +//o// 619 + 620 +//o// 621 + 622 +//B// 623 + 624 +//n// 625 + 626 +//o// 627 + 628 +//i// 629 + 630 +//t// 631 + 632 +//a// 633 + 634 +//r// 635 + 636 +//u// 637 + 638 +//D// 639 + 640 +//d// 641 + 642 +//o// 643 + 644 +//i// 645 + 646 +//r// 647 + 648 +//e// 649 + 650 +//p// 651 + 652 +//_// 653 + 654 +//e// 655 + 656 +//m// 657 + 658 +//i// 659 + 660 +//T// 661 + 662 +//e// 663 + 664 +//t// 665 + 666 +//a// 667 + 668 +//D// 669 + 670 +//e// 671 + 672 +//m// 673 + 674 +//i// 675 + 676 +//T// 677 + 678 +//r// 679 + 680 +//e// 681 + 682 +//g// 683 + 684 +//e// 685 + 686 +//t// 687 + 688 +//n// 689 + 690 +//I// 691 + 692 +//r// 693 + 694 +//e// 695 + 696 +//b// 697 + 698 +//m// 699 + 700 +//u// 701 + 702 +//N// 703 + 704 +//g// 705 + 706 +//n// 707 + 708 +//i// 709 + 710 +//r// 711 + 712 +//t// 713 + 714 +//S// 715 + 716 +//r// 717 + 718 +//a// 719 + 720 +//l// 721 + 722 +//a// 723 + 724 +//c// 725 + 726 +//S// 727 + 728 +[[image:SDMX 3-0-0 SECTION 6 FINAL-1.0_en_82d45833.gif||alt="Shape6" height="231" width="184"]] 615 615 ))) 616 616 731 +==== Figure 23 – VTL Basic Scalar Types ==== 732 + 617 617 === 12.4.2 VTL basic scalar types and SDMX data types === 618 618 619 619 The VTL assumes that a basic scalar type has a unique internal representation and can have more external representations. ... ... @@ -636,55 +636,70 @@ 636 636 637 637 The following table describes the default mapping for converting from the SDMX data types to the VTL basic scalar types. 638 638 639 -| (% style="width:501px" %)SDMX data type (BasicComponentDataType)|(% style="width:1437px" %)Default VTL basic scalar type640 -|( % style="width:501px" %)(((755 +|SDMX data type (BasicComponentDataType)|Default VTL basic scalar type 756 +|((( 641 641 String 758 + 642 642 (string allowing any character) 643 -)))| (%style="width:1437px" %)string644 -|( % style="width:501px" %)(((760 +)))|string 761 +|((( 645 645 Alpha 763 + 646 646 (string which only allows A-z) 647 -)))| (%style="width:1437px" %)string648 -|( % style="width:501px" %)(((765 +)))|string 766 +|((( 649 649 AlphaNumeric 768 + 650 650 (string which only allows A-z and 0-9) 651 -)))| (%style="width:1437px" %)string652 -|( % style="width:501px" %)(((770 +)))|string 771 +|((( 653 653 Numeric 773 + 654 654 (string which only allows 0-9, but is not numeric so that is can having leading zeros) 655 -)))| (%style="width:1437px" %)string656 -|( % style="width:501px" %)(((775 +)))|string 776 +|((( 657 657 BigInteger 778 + 658 658 (corresponds to XML Schema xs:integer datatype; infinite set of integer values) 659 -)))| (% style="width:1437px" %)integer660 -|( % style="width:501px" %)(((780 +)))|integer 781 +|((( 661 661 Integer 662 -(corresponds to XML Schema xs:int datatype; between -2147483648 and +2147483647 (inclusive)) 663 -)))|(% style="width:1437px" %)integer 664 -|(% style="width:501px" %)((( 783 + 784 +(corresponds to XML Schema xs:int datatype; between -2147483648 and +2147483647 785 + 786 +(inclusive)) 787 +)))|integer 788 +|((( 665 665 Long 790 + 666 666 (corresponds to XML Schema xs:long datatype; between -9223372036854775808 and 667 667 668 668 +9223372036854775807 (inclusive)) 669 -)))| (% style="width:1437px" %)integer670 -|( % style="width:501px" %)(((794 +)))|integer 795 +|((( 671 671 Short 797 + 672 672 (corresponds to XML Schema xs:short datatype; between -32768 and -32767 (inclusive)) 673 -)))| (% style="width:1437px" %)integer674 -| (% style="width:501px" %)Decimal (corresponds to XML Schema xs:decimal datatype; subset of real numbers that can be represented as decimals)|(% style="width:1437px" %)number675 -|( % style="width:501px" %)(((799 +)))|integer 800 +|Decimal (corresponds to XML Schema xs:decimal datatype; subset of real numbers that can be represented as decimals)|number 801 +|((( 676 676 Float 803 + 677 677 (corresponds to XML Schema xs:float datatype; patterned after the IEEE single-precision 32-bit floating point type) 678 -)))| (% style="width:1437px" %)number679 -|( % style="width:501px" %)(((805 +)))|number 806 +|((( 680 680 Double 808 + 681 681 (corresponds to XML Schema xs:double datatype; patterned after the IEEE double-precision 64-bit floating point type) 682 -)))| (% style="width:1437px" %)number683 -|( % style="width:501px" %)(((810 +)))|number 811 +|((( 684 684 Boolean 685 -(corresponds to the XML Schema xs:boolean datatype; support the mathematical concept of binary-valued logic: {true, false}) 686 -)))|(% style="width:1437px" %)boolean 687 687 814 +(corresponds to the XML Schema xs:boolean datatype; support the mathematical concept of 815 + 816 +binary-valued logic: {true, false}) 817 +)))|boolean 818 + 688 688 | |(% colspan="2" %)((( 689 689 URI 690 690