Serializes a BDL variable into a XML element node using a StaxWriter object.

This API implements the XML-binary Optimized packaging specification. See https://www.w3.org/TR/xop10/.


   var RECORD,
   stax xml.StaxWriter,
   xopTable RECORD )
  1. var is any Genero BDL variable with optional XML mapping attributes.
  2. stax is a StaxWriter object.
  3. xopTable is a dynamic array, defined as follows:
      cid STRING, # Content-ID to identify the part in a XML Optimized document
      data BYTE,  # Blob handled as part in a XML Optimized document
      file STRING # Name of the file handled as part in an XML Optimized document
    The XOPtable dynamic array is necessary to keep the relation between the data to be handled as separate part in an XML Optimized document via an href attribute containing the Content-ID value. This parameter can be NULL.


The resulting XML element node of the serialization process will be added at the current cursor position of the StaxWriter object.

In case of error, the method throws an exception and sets the STATUS variable. Depending on the error, a human-readable description of the problem is available in the SQLCA.SQLERRM register. See Error handling in GWS calls (STATUS).

Optimized APIs

Optimized APIs work in the same method as the non-Optimized APIs, with the addition that the optimized API supports XML-binary Optimized format, and return in the XOPTable (if not NULL) the BYTE or the file on disk to handle as a separate part based on the Content-ID.

For instance, if a BYTE has to be sent as an attachment via MTOM, the API will create an XML Optimized node with an href containing the Content-ID returned in the XOP table. This node will include a reference to that BYTE.

For example, given this example of an XML-optimized document:
<m:data xmlns:m='http://example.org/stuff'>
  <xop:Include xmlns:xop='http://www.w3.org/2004/08/xop/include' 
If you have NOT used XMLOptimizedContent, the XOPTable will contain one element where:
  • cid contains "myref@tempuri.org".
  • data contains the BYTE to be sent or to be received as an attachment.
  • file contains NULL.
If you have used XMLOptimizedContent, the XOPtable contains one element where:
  • cid contains "myref@tempuri.org".
  • data contains NULL.
  • file contains the file name to be sent or to be received as an attachment..