WebSphere Message Broker, Versão 8.0.0.5 Sistemas operacionais: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte as informações sobre a versão mais recente do produto em IBM Integration Bus, Versão 9.0

Acessando Elementos em uma Árvore de Mensagens a partir de um Nó JavaCompute

Acesse o conteúdo de uma mensagem, para leitura ou gravação, utilizando a estrutura e disposição dos elementos na árvore criada pelo analisador a partir do fluxo de bits de entrada.

Siga os relacionamentos relevantes entre pai e filho do início da árvore para baixo, até atingir o elemento requerido.

A árvore de mensagens é transmitida para um nó JavaCompute como um argumento do método evaluate. O argumento é um objeto MbMessageAssembly. MbMessageAssembly contém quatro objetos de mensagem:
  • Mensagem
  • Ambiente Local
  • Ambiente Global
  • Lista de Exceção
Esses objetos são de leitura, exceto para o Ambiente Global. Se você tentar gravar nos objetos de leitura, uma MbReadOnlyException será emitida.

Alternativamente, use objetos Java™ JAXB com os métodos getter e setter; consulte Usando JAXB com um Nó JavaCompute.

Este tópico contém as seguintes informações sobre como acessar elementos em uma árvore de mensagens:

Percorrendo a Árvore de Elementos

A tabela a seguir mostra os métodos Java que podem ser usados para acessar árvores de elementos e a constante de tipo de campo ESQL equivalente para cada ponto na árvore.
Acessador Java de MbMessageAssembly Constante do tipo de campo ESQL
getMessage().getRootElement() InputRoot
getMessage().getRootElement().getLastChild() InputBody
getLocalEnvironment().getRootElement() InputLocalEnvironment
getGlobalEnvironment().getRootElement() Ambiente
getExceptionList().getRootElement() InputExceptionList
Utilize os métodos a seguir para percorrer uma árvore de mensagens de um elemento do tipo MbElement:
getParent()
retorna o pai do elemento atual
getPreviousSibling()
retorna o irmão anterior do elemento atual
getNextSibling()
retorna o próximo irmão do elemento atual
getFirstChild()
retorna o primeiro filho do elemento atual
getLastChild()
retorna o último filho do elemento atual

Alternativamente, use um objeto Document Object Model (DOM) e use a API do DOM para navegar e manipular os elementos.

MBMessage fornece os métodos a seguir:
getDOMDocument()
obtém um objeto W3C org.w3c.dom.Document para o corpo da mensagem.
createDOMDocument()
obtém um objeto W3C org.w3c.dom.Document para o corpo da mensagem.
MbElement fornece o método a seguir:
getDOMNode()
obtém um objeto org.w3c.dom.Node do W3C para o elemento de mensagem.

O exemplo a seguir mostra uma mensagem XML simples e a árvore lógica que seria criada da mensagem. A mensagem foi enviada utilizando o WebSphere MQ. O diagrama de árvore lógica também mostra os métodos a serem chamados a fim de navegar na árvore.

<document>
  <chapter title='Introduction'>
    Some text
  </chapter>
</document>

O Diagrama Mostra os Métodos que É Possível Chamar para Navegar por uma Árvore de Mensagens e É Descrito no Texto Circundante.

A árvore usada nesse diagrama é aquela que é criada analisando o exemplo XML anterior.
  • A partir da parte Raiz da árvore, chamar getFirstChild() navega para as Propriedades. Também a partir de Raiz, chamar getLastChild() retorna XML.
  • Em Propriedades, a chamada de getParent() retorna Raiz; a chamada de getNextSibling() retorna MQMD.
  • Em MQMD, a chamada de getPreviousSibling() retorna Propriedades, a chamada de getParent() retorna Raiz e a chamada de getNextSibling() retorna XML.
  • Em XML, a chamada de getPreviousSibling() retorna MQMD, a chamada de getParent() retorna Raiz, a chamada de getFirstChild() retorna documento e a chamada de getLastChild() também retorna documento.
  • Em documento, a chamada de getParent() retorna XML, a chamada de getFirstChild() retorna capítulo e a chamada de getLastChild() também retorna capítulo.
  • Em capítulo, a chamada de getParent() retorna documento, a chamada de getFirstChild() retorna título e a chamada de getLastChild() retorna o filho que contém os dados de mensagem "Um texto.".
O código Java a seguir acessa o elemento de capítulo na árvore lógica para uma mensagem XML que não contém espaços em branco. O analisador XML retém o espaço em branco na árvore analisada, mas os analisadores XMLNS e XMLNSC não.
MbElement root = assembly.getMessage().getRootElement();
MbElement chapter = root.getLastChild().getFirstChild().getFirstChild();

Acessando Informações sobre um Elemento

Utilize os seguintes métodos para retornar informações sobre o elemento referido:
getName()
retorna o nome do elemento como um java.lang.String
GetValue()
retorna o valor do elemento
GetType()
retorna o tipo genérico, que é um dos seguintes tipos:
  • NAME: um elemento desse tipo tem um nome, mas nenhum valor.
  • VALUE: um elemento desse tipo tem um valor, mas nenhum nome.
  • NAME/VALUE: um elemento desse tipo tem um valor e um nome.
getSpecificType()
retorna o tipo do elemento de analisador específico
getNamespace()
retorna o URI do espaço de nomes desse elemento
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última atualização:
        
        Última atualização: 2015-02-28 18:28:34


Tópico de TarefaTópico de Tarefa | Versão 8.0.0.5 | ac30330_