Al construir un árbol de mensajes XML, tenga en cuenta el orden de los campos en el árbol.
Orden de los campos en el árbol de mensajes
Cuando se crea un mensaje de salida XML en un nodo Compute, el orden de las líneas de código ESQL es importante, porque los elementos de mensaje se crean en el orden en el que se codifican.
<Order>
<ItemNo>1</ItemNo>
<Quantity>2</Quantity>
</Order>
Si desea añadir a esto una declaración de tipo de documento (DocType Declaration), insértela antes de copiar el mensaje de entrada en el mensaje de salida.
SET OutputRoot.XMLNS.(XML.XmlDecl) = '';
SET OutputRoot.XMLNS.(XML.XmlDecl).(XML.Version) = '1.0';
SET OutputRoot.XMLNS.(XML.DocTypeDecl)Order ='';
SET OutputRoot.XMLNS.(XML.DocTypeDecl).(XML.SystemId) = 'NewDtdName.dtd';
SET OutputRoot = InputRoot;
-- más ESQL --
Si pone la última sentencia para copiar el mensaje de entrada antes de las sentencias específicas de XML, se genera el siguiente XML para el mensaje de salida.
<Order>
<ItemNo>1</ItemNo>
<Quantity>2</Quantity>
</Order>
<?xml version="1.0"?>
Este formato XML no es correcto y genera un error cuando se graba desde el árbol de mensajes en una corriente de bits en el nodo de salida.
Establecimiento del tipo de campo
Si copia un árbol de mensajes de la entrada a la salida sin cambiar el dominio, la mayoría de los elementos de la sintaxis los creará el analizador ( XMLNSC o XMLNS ) y los tipos de campos serán correctos. No obstante, si crea un árbol de mensajes a partir de una consulta de base de datos o desde el árbol de mensajes de otro analizador, deberá asegurarse de que identifica cada elemento de sintaxis correctamente mediante el tipo de campo. Encontrará detalles completos de las constantes de tipo de campo utilizadas por XMLNSC y XMLNS en los temas siguientes: