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.

Table 1. Suffixes added to PL/I identifiers
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.