Creation of PL/I identifiers
This topic describes how the names of generated Enterprise PL/I major structures, minor structures, and elementary variables are created in the WSDL2PLI scenario.
When the WSDL2PLI file-generation component creates a new PL/I data item (an elementary variable, a minor structure, or a major structure) it derives the identifier for the item from the value in the name attribute of the corresponding XML element.
The valid characters for an identifier in Enterprise PL/I are [A-Z],
[a-z], [0-9], _, #, &, and $. The maximum length of an identifier
is 31 characters.
- However, the maximum length of a PL/I identifier
can be increased to 100 characters by using the PL/I compiler option
LIMITS
, for example:LIMITS(name(100))
. - WSDL2PLI supports generating identifiers up to 100 characters in length by setting the attribute languageNameLimit of the element WSDL2ELSSpec to 100 (see WSDL2ELSSpec).
- It is important to note that if an XML element or attributes name begins with an underscore character (_), that character will not be preserved.
Suffixes appended to PL/I identifiers
In addition to the derivation described above, the WSDL2PLI component also adds suffixes to certain PL/I identifiers to draw attention to variables or structures that are functionally related.
Suffix: | Description: |
---|---|
_att | A minor structure or elementary variable that represents an XML attribute. |
_att_enm | A major structure that contains the PL/I constants for enumerated strings declared in an anonymous string data type that is defined in an attribute. |
_bit | An elementary variable that indicates whether or not the PL/I minor structure or elementary variable that immediately follows it in the language structure was received (input) or is to be generated (output). |
_buf | An array for binary content based on the length
specified in the elementary variable with the suffix _buf_len . |
_buf_len | An elementary variable that indicates the size of decoded binary content in bytes. |
_cnt | An elementary variable that indicates the number of entries used in the array that immediately follows it in the language structure. |
_ele_enm | A major structure that contains the PL/I constants for enumerated strings declared in an anonymous string data type that is defined in an element. |
_lim | An elementary variable that specifies the upper bound of a REFER subject (unbounded array) at execution time. |
_ptr | An elementary variable that contains the starting
address of the storage allocated for a major structure that contains
REFER subjects. This variable is to be used with the PL/I ALLOCATE
statement, for example: allocate (struct) set (@irz_struct_ptr)) . |
_ref | A major structure that contains elementary variables that serve as REFER objects. The objects in this structure are read when allocating the corresponding major structure that contains the REFER subjects. |
_typ_enm | A major structure that contains the PL/I constants for enumerated strings declared in a named string data type that can be referenced by many elements or attributes. |