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:
  • 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 é emitida.
Este tópico contém as seguintes 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
Os métodos a seguir 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.".

O código Java a seguir 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 os métodos a seguir para retornar informações sobre o elemento referido. A API Java do Nó Definido pelo Usuário fornece detalhes adicionais sobres estes 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 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 específico do analisador do elemento
getNamespace()
Retorna a URI do espaço de nomes deste elemento
Informações relacionadas
API de Nó Java Definido Pelo Usuário
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ac30330_