These records describe
items in the output stream that contain two values. There are two
variations of this record form, depending on whether or not StringIDs
are being used. Namespace declaration records are examples of these.
In the case where StringIDs are provided by the caller through the
GXLSYM31 (GXLSYM64) StringID service exit, the record form looks like
the following:
Table 1. Record form 2 (with
StringID)Fields |
record type |
flags |
reserved |
record length |
StringID for
value 1 |
StringID for
value 2 |
When StringIDs are not in use, values one and two are represented
as conventional length and value pairs:
Table 2. Record form 2 (without StringID)Fields |
record type |
flags |
reserved |
record length |
value 1 length |
bytes 1 to
n of value 1 |
value 2 length |
bytes 1 to
n of value 2 |
There are other form 2 records that will always use length
and value pairs, regardless of whether or not StringIDs are available.
Processing instructions are an example of this kind of record, since
the target and value of a processing instruction are always returned
as strings represented by length and value pairs.