2.10.1 About the XML Typed Buffer
XML buffers enable Oracle Tuxedo applications to use XML for exchanging data within and between applications. Oracle Tuxedo applications can send and receive simple XML buffers, and route those buffers to the appropriate servers. All logic for dealing with XML documents, including parsing, resides in the application.
An XML document consists of:
- A sequence of characters that encode the text of a document
- A description of the logical structure of the document and information about that structure
The programming model for the XML
buffer type is
similar to that for the CARRAY
buffer type: you must
specify the length of the buffer with the tpalloc() function. The maximum
supported size of an XML document is 4 GB.
Formatting and filtering for Events processing (which are
supported when a STRING buffer type is used) are not supported for
the XML buffer type. Therefore, the _tmfilter
and
_tmformat
function pointers in the buffer type switch
for XML buffers are set to NULL.
The XML parser in the Oracle Tuxedo system performs the following functions:
- Autodetection of character encodings
- Character code conversion
- Detection of element content and attribute values
- Data type conversion
Data-dependent routing is supported for XML buffers. The routing
of an XML document can be based on element content, or on element
type and an attribute value. The XML parser determines the
character encoding being used; if the encoding differs from the
native character sets (US-ASCII or EBCDIC) used in the Oracle
Tuxedo configuration files (UBBCONFIG
and
DMCONFIG
), the element and attribute names are
converted to US-ASCII or EBCDIC.
Attributes configured for routing must be included in an XML document. If an attribute is configured as a routing criteria but it is not included in the XML document, routing processing fails.
The content of an element and the value of an attribute must conform to the syntax and semantics required for a routing field value. The user must also specify the type of the routing field value. XML supports only character data. If a range field is numeric, the content or value of that field is converted to a numeric value during routing processing.