Aux info record

When the source document offsets feature (GXLHXEC_FEAT_SOURCE_OFFSETS) is selected, or the character reference record (GXLHXEC_UNREPRESENTABLE_CHARREF_REC) is requested, an information record is inserted in the output buffer. The record has the following structure:
Table 1. Aux info record
  Fields
+0 record type flags reserved
+4 record length
+8 aux flags information type
+C -varied information-
The record values are defined as follows:
Record header
This is the standard record header of all records in the data model. The record type is GXLHXEC_TOK_AUX_INFO.
Aux flags
These flags provide information about the form of the data in the rest of the record:
  • XEH_AUX_LONG_VALUE - This flag is only used in records which contain values which can vary in size. This bit will be OFF if the record contains integer values that are 4 bytes in length. The bit will be ON if the record contains values that are 8 bytes in length. Any value or record length fields in the record such as the record length in the header will always be 4 bytes no matter what the value of this bit is.

    All offset values which are under 4GB-1 in magnitude will be represented as a 4 byte value in the data stream and the XEH_AUX_LONG_VALUE flag will be OFF. When an offset is encountered which exceeds 4 GB, then all offset records from that point on will be represented as 8 byte values in the data stream and the XEH_AUX_LONG_VALUE will be set ON.

  • AUX_ENTITY - This is set for information records that are generated from entities.
Information type
This value identifies what information is contained in the record. See information types for details on the different types.
-varied information-
The contents of the additional information will depend on the information type and flags. For offset records, this will contain either a 4 or an 8 byte value which represents the offset of the particular structure from the beginning of the document. It will be 4 bytes if the XEH_AUX_LONG_VALUE bit flag bit is OFF in the header. It will be 8 bytes if the XEH_AUX_LONG_VALUE bit flag is ON in the header.
Information types:
GXLHXEC_OFFSET_START_STARTTAG
This is the offset of the ‘<’ at the beginning of an XML start tag. This record occurs in the datastream immediately preceding the GXLHXEC_TOK_START_ELEM .
GXLHXEC_OFFSET_END_STARTTAG
This is the offset of the ‘>’ at the end of an XML start tag. This record occurs in the datastream immediately after the last GXLHXEC_OFFSET_END_ATTRVALUE, if there are attributes, or the GXLHXEC_OFFSET_END_STARTTAGNAME record if there are no attributes.
GXLHXEC_OFFSET_END_STARTTAGNAME
This is the offset to the end of the XML start name qname. This record occurs in the datastream immediately following the GXLHXEC_TOK_START_ELEM.
GXLHXEC_OFFSET_START_ATTRVALUE
This is the offset of the beginning quote of the attribute value. This record occurs in the datastream immediately preceding the GXLHXEC_TOK_ATTR_VALUE.
GXLHXEC_OFFSET_END_ATTRVALUE
This is the offset of the ending quote of the attribute value. This record occurs in the datastream immediately after the GXLHXEC_TOK_ATTR_VALUE.
GXLHXEC_OFFSET_START_COMMENT
This is the offset of the ‘<’ at the beginning of an XML comment. This record occurs in the datastream immediately preceding the GXLHXEC_TOK_COMMENT.
GXLHXEC_OFFSET_END_COMMENT
This is the offset of the ‘>’ at the end of an XML comment. This record occurs in the datastream immediately following the GXLHXEC_TOK_COMMENT.
GXLHXEC_OFFSET_START_CDATA
This is the offset of the ‘<’ at the beginning of an XML CDATA. This record occurs in the datastream immediately preceding the GXLHXEC_TOK_START_CDATA.
GXLHXEC_OFFSET_END_CDATA
This is the offset of the ‘>’ at the end of an XML CDATA. This record occurs in the datastream immediately following the GXLHXEC_TOK_END_CDATA.
GXLHXEC_OFFSET_START_PI
This is the offset of the ‘<’ at the beginning of an XML PI. This record occurs in the datastream immediately preceding the GXLHXEC_TOK_PI.
GXLHXEC_OFFSET_END_PI
This is the offset of the ‘>’ at the end of an XML PI. This record occurs in the datastream immediately following the GXLHXEC_TOK_PI.
GXLHXEC_OFFSET_START_XMLDECL
This is the offset of the ‘<’ at the beginning of an XML Declaration. This record occurs in the datastream immediately preceding the GXLHXEC_TOK_XML_DECL.
GXLHXEC_OFFSET_END_XMLDECL
This is the offset of the ‘>’ at the end of an XML Declaration. This record occurs in the datastream immediately following the GXLHXEC_TOK_XML_DECL.
GXLHXEC_OFFSET_START_ENDTAG
This is the offset of the ‘<’ at the beginning of an XML end tag. This record occurs in the datastream immediately preceding the GXLHXEC_TOK_END_ELEM.
GXLHXEC_OFFSET_END_ENDTAG
This is the offset of the ‘>’ at the end of an XML end tag. This record occurs in the datastream immediately following the GXLHXEC_TOK_END_ELEM.
GXLHXEC_OFFSET_START_DTD
This is the offset of the ‘<’ at the beginning of an XML DOCTYPE declaration. This record occurs in the datastream immediately preceding the GXLHXEC_TOK_DTD_DATA.
GXLHXEC_OFFSET_END_DTD
This is the offset of the ‘>’ at the end of an XML DOCTYPE declaration. This record occurs in the datastream immediately following the GXLHXEC_TOK_DTD_DATA.
GXLHXEC_OFFSET_START_NSVALUE
This is the offset of the quote at the beginning of an XML namespace declaration value. This record occurs in the datastream immediately preceding the GXLHXEC_TOK_NS_DECL.
GXLHXEC_OFFSET_END_NSVALUE
This is the offset of the quote at the end of an XML namespace declaration value. This record occurs in the datastream immediately following the GXLHXEC_TOK_NS_DECL.
GXLHXEC_OFFSET_ROOT_ELEMENT
This is the offset of the < at the beginning of the root element start tag. This record occurs in the datastream immediately preceding the GXLHXEC_TOK_ROOT_ELEMENT.
GXLHXEC_CHARREF_UNREP_REC
This record type contains information about non representable character references in the document.
Note: This information type contains a different auxiliary information record than the previous information types. The variable section of the record is as follows:
Table 2. Alternate structure for variable section of aux info record (GXLHXEH_AUX_LONG_VALUE = OFF)
  Fields
+0 The binary value of the character reference that cannot be represented.
+4 The offset of the character reference that cannot be represented in the document.
+8 The offset into the string of the previous replacement character's record in the output record.
If the GXLHXEH_AUX_LONG_VALUE bit is set to 'ON' in the GXLHXEH_AUX flag, the variable section of the record has the following structure:
Table 3. Alternate structure for variable section of aux info record (GXLHXEH_AUX_LONG_VALUE = ON)
  Fields
+0 The binary value of the character reference that cannot be represented.
+4 -reserved-
+8 The offset of the character reference that cannot be represented in the document.
+C
+10 The offset into the string of the previous replacement character's record in the output record.
+14
The above information type names are for the C/C++ callers. Assembler callers use information type names without the "GXLH" prefix.