Manipulando caminhos e tipos em uma mensagem XML

Quando consultar ou configurar elementos em um corpo da mensagem XML, é necessário utilizar as constantes de tipo de campo corretas, em referências de campo ESQL para tratá-los.

A tabela a seguir lista as constantes de tipo de campo para todos os elementos válidos.

Elemento de Sintaxe constante do tipo de campo
CDataSection (XML.CDataSection)
Comment (XML.Comment)
Content

(XML.Content)
(XML.pcdata) também é suportado

Element

(XML.Element)
(XML.tag) também é suportado

EntityReferenceEnd (XML.EntityReferenceEnd)
EntityReferenceStart (XML.EntityReferenceStart)
ProcessingInstruction (XML.ProcessingInstruction)
WhiteSpace (XML.WhiteSpace)

Quando um tipo não está presente em um elemento de caminho, o tipo do elemento de sintaxe não é importante. Ou seja, um elemento de caminho de name corresponde qualquer elemento de sintaxe ao nome de name, independentemente do tipo de elemento.Da mesma forma que um elemento de caminho pode especificar um nome e não um tipo, um elemento de caminho pode especificar um tipo e não um nome. Este tipo de elemento de caminho corresponde qualquer elemento de sintaxe que tenha o tipo especificado, independentemente do nome. Considere o seguinte exemplo:

 FIELDNAME(InputBody.(XML.Element)[1])

Este exemplo retorna o nome do primeiro elemento no corpo da mensagem. O exemplo a seguir de XML genérico mostra quando você deve utilizar tipos em caminhos:

<tag1 attr1='abc'>
    <attr1>123<attr1>
</tag1>

O caminho InputBody.tag1.attr1 refere-se ao atributo chamado attr1, porque os atributos aparecem antes dos elementos aninhados em uma árvore de sintaxe gerada por um analisador XML. Para referir-se ao elemento chamado attr1 é necessário utilizar um caminho:

InputBody.tag1.(XML.Element)attr1

Sempre inclua tipos nesses casos para ser explícito sobre a qual elemento de sintaxe você está se referindo.

O seguinte ESQL:

SET
OutputRoot.XML.Element1.(XML.Element)Attribute1 = '123';

é essencialmente prático para o caminho completo a seguir:

SET OutputRoot.XML.(XML.Element)Element1.(XML.Element)Attribute1. 	
(XML.Content) = '123';

Considere o seguinte XML:

 <?xml version="1.0"?>
<!DOCTYPE Order SYSTEM "Order.dtd">
<Order>
      <ItemNo>1</ItemNo>
          <Quantity>2</Quantity>
</Order>

O caminho InputBody.Order refere-se ao elemento de sintaxe (XML.DocTypeDecl), porque ele aparece antes do Corpo XML na árvore de sintaxe e possui o mesmo nome. Para se referir ao elemento ItemNo, utilize um caminho InputBody.(XML.Element)Order.ItemNo. Por exemplo, considere a seguinte mensagem de entrada XML:

<doc><i1>100</i1></doc>

Para designar 112233 a <i1>, utilize a seguinte expressão ESQL:

SET OutputRoot.XML.(XML.Element)doc.I1=112233;
Conceitos relacionados
Visão Geral de Fluxos de Mensagens
Visão Geral do ESQL
Modelagem de Mensagens
Tarefas relacionadas
Projetando um Fluxo de Mensagens
Definindo o Conteúdo do Fluxo de Mensagens
Gerenciando Arquivos ESQL
Acessando Atributos em Mensagens XML
Acessando o XmlDecl em uma Mensagem XML
Acessando o DocTypeDecl em uma Mensagem XML
Referências relacionadas
Nó Compute
Referência de ESQL
Função FIELDNAME
Instrução SET
Visão geral da referência de campo ESQL
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última atualização : 2009-02-13 16:11:50

ac17280_