Ao construir uma árvore de mensagens XML, considere a ordem de campos na árvore.
Ordem dos Campos na Árvore de Mensagens
Ao criar uma mensagem de saída XML em um nó Compute, a ordem das linhas do código ESQL é importante, pois os elementos de mensagem são criados na ordem de codificação.
<Order>
<ItemNo>1</ItemNo>
<Quantity>2</Quantity>
</Order>
Se desejar incluir uma Declaração DocType a ele, será necessário inserir a Declaração DocType antes de copiar a mensagem de entrada para a mensagem de saída.
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;
-- mais ESQL --
Se você colocar a última instrução para copiar a mensagem de entrada antes de instruções específicas de XML, será gerado o seguinte XML para a mensagem de saída.
<Order>
<ItemNo>1</ItemNo>
<Quantity>2</Quantity>
</Order>
<?xml version="1.0"?>
Isso não é XML bem formado e causa um erro quando é gravado a partir da árvore de mensagens para um fluxo de bits no nó de saída.
Configurando o Tipo de Campo
Se você copiar uma árvore de mensagens da entrada para a saída sem alterar o domínio, a maioria dos elementos de sintaxe serão criados pelo analisador (XMLNSC ou XMLNS) e os tipos de campos estarão corretos. No entanto, se você construir sua árvore de mensagens a partir de uma consulta de banco de dados, ou de outra árvore de mensagens do analisador, deverá certificar-se de identificar cada elemento da sintaxe corretamente usando seu tipo de campo. É possível localizar detalhes completos das constantes de tipo de campo utilizadas por XMLNSC e XMLNS nos seguintes tópicos: