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.
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 utilizados 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() Environment
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

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>

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. 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 seguinte código Java 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
Tarefas relacionadas
Gravando Java
Referências relacionadas
Nó JavaCompute
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

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

ac30330_