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

Quando quiser acessar o conteúdo de uma mensagem, para ler ou gravar, utilize a estrutura e a organização dos elementos da árvore que o analisador cria a partir do fluxo de bits de entrada. Siga os relacionamentos entre pai e filho relevantes do início da árvore para baixo, até chegar no elemento requerido.

A árvore de mensagens é transmitida a um nó JavaCompute como um argumento do método de avaliação. O argumento é um objeto MbMessageAssembly. MbMessageAssembly contém quatro objetos de mensagem: Esses objetos são de leitura, exceto para o Ambiente Global. Se você tentar gravá-los, uma MbReadOnlyException será emitida.
Este tópico contém informações sobre como acessar elementos em uma árvore de mensagens:

Percorrendo a Árvore de Elementos

Esta tabela mostra os métodos Java que podem ser utilizados para acessar árvores de elementos e o nome de correlação ESQL equivalente para cada ponto da árvore.
Acessador Java de MbMessageAssembly nome de correlação ESQL
getMessage().getRootElement() InputRoot
getMessage().getRootElement().getLastChild() InputBody
getLocalEnvironment().getRootElement() InputLocalEnvironment
getGlobalEnvironment().getRootElement() Ambiente
getExceptionList().getRootElement() InputExceptionList
Estes métodos podem ser utilizados para percorrer uma árvore de mensagens a partir 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

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


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

Este diagrama mostra os
métodos chamados para navegar pela árvore de mensagens. A árvore utilizada
aqui é a criada analisando o exemplo XML fornecido neste tópico. A partir da
parte Raiz da árvore, chamar getFirstChild() navega
até Propriedades. Também a partir de Raiz, chamar getLastChild() retorna
XML. A partir de Propriedades, chamar getParent() retorna Raiz e chamar
getNextSibling() retorna MQMD. A partir de MQMD, chamar getPreviousSibling() retorna
Propriedades, chamar getParent() retorna Raiz e chamar getNextSibling() retorna
XML. A partir de XML, chamar getPreviousSibling() retorna MQMD,
chamar getParent() retorna Raiz, chamar
getFirstChild() retorna
documento e chamar getLastChild() também retorna documento.
A partir de documento, chamar getParent() retorna XML, chamar  getFirstChild() retorna
capítulo e chamar getLastChild() também retorna capítulo.
A partir de capítulo, chamar getParent() retorna documento, chamar getFirstChild() retorna título e chamar
getLastChild() retorna o filho que contém os dados
da mensagem "Some text.".

Este código Java acessa o elemento capítulo da árvore lógica:
MbElement root = assembly.getMessage().getRootElement();
MbElement chapter = root.getLastChild().getFirstChild().getFirstChild();

Acessando Informações sobre um Elemento Utilizando um nó JavaCompute

Utilize estes métodos para retornar informações sobre o elemento referido. API do Nó Definido pelo Usuário Java fornece detalhes adicionais sobre os métodos:
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:
  • 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 específico de analisador do elemento
getNamespace()
retorna o URI do espaço de nomes desse elemento
Informações relacionadas
API de Nó Java Definido Pelo Usuário
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2005 Última Atualização: 04/11/2005
ac30330_