Manipulando caminhos e tipos em uma mensagem XML

Ao fazer referência a ou configurar elementos em um corpo de mensagem XML, você deve utilizar os nomes de correlação corretos, em referências de campo ESQL, para abordá-los. A tabela a seguir lista os nomes de correlação para todos os elementos válidos. Para obter os nomes de correlação para os atributos XmlDec e DocTypeDecl, consulte Acessando Atributos em Mensagens XML, Acessando o XmlDecl em uma Mensagem XML e Acessando o DocTypeDecl em uma Mensagem XML. Para obter informações sobre as referências aos campos, consulte Referências de Campos ESQL.

Elemento de Sintaxe Nome de correlação
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. A seguir está um exemplo disso:

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

Este exemplo retorna o nome do primeiro elemento no corpo da mensagem. O exemplo de XML genérico a seguir, mostra quando é necessário 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 recomendável incluir tipos nestes casos para que fique explícito qual elemento de sintaxe está sendo referido.

O seguinte ESQL:

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

é essencialmente prático para o caminho qualificado 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 referir-se ao elemento ItemNo é necessário utilizar um caminho InputBody.(XML.Element)Order.ItemNo. O exemplo a seguir demonstra a mesma idéia, utilizando a seguinte mensagem XML de entrada:

<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
Referências relacionadas
Nó Compute
Nó Database
Nó Filter
Referência de ESQL
Função FIELDNAME
Instrução SET
Referências de Campos ESQL
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ac17280_