Cuando desee acceder al contenido de un mensaje para leer o escribir,
utilice la estructura y la disposición de los elementos del árbol que el analizador
crea a partir de la corriente de bits de entrada. Siga las relaciones pertinentes de padres e hijos desde la parte superior del árbol hacia abajo, hasta que llegue al
elemento que necesite.
El árbol de mensaje se pasa a un nodo JavaCompute como argumento del método
de evaluación. El argumento es un objeto MbMessageAssembly. MbMessageAssembly
contiene cuatro objetos de mensaje:
- Mensaje
- Entorno local
- Entorno global
- Lista de excepciones
Estos objetos son sólo de lectura, excepto el Entorno global. Si intenta grabar
en ellos, se genera MbReadOnlyException.
Este tema contiene información sobre cómo acceder a los elementos de un árbol de mensaje:
Cómo atravesar el árbol de elementos
Esta tabla muestra
los métodos Java que se pueden utilizar para acceder a los árboles de elementos y el nombre
de correlación ESQL equivalente para cada punto del árbol.
Accesor Java desde MbMessageAssembly |
Nombre de correlación ESQL |
getMessage().getRootElement() |
InputRoot |
getMessage().getRootElement().getLastChild() |
InputBody |
getLocalEnvironment().getRootElement() |
InputLocalEnvironment |
getGlobalEnvironment().getRootElement() |
Environment |
getExceptionList().getRootElement() |
InputExceptionList |
Se pueden utilizar estos métodos para atravesar un árbol de mensaje desde un
elemento de tipo MbElement:
- getParent()
- devuelve el padre del elemento actual
- getPreviousSibling()
- devuelve el igual anterior del elemento actual
- getNextSibling()
- devuelve el igual siguiente del elemento actual
- getFirstChild()
- devuelve el primer hijo del elemento actual
- getLastChild()
- devuelve el último hijo del elemento actual
El ejemplo siguiente muestra un mensaje XML simple y el árbol lógico
que se creará a partir del mensaje. En este ejemplo el mensaje se ha enviado utilizando
WebSphere MQ. El diagrama de árbol lógico también muestra los
métodos de llamada para navegar por el árbol.
<document>
<chapter title='Introduction'>
Texto.
</chapter>
</document>

Este código Java accede al
elemento 'chapter' del árbol lógico:
MbElement root = assembly.getMessage().getRootElement();
MbElement chapter = root.getLastChild().getFirstChild().getFirstChild();
Acceso a información sobre un elemento utilizando un nodo
JavaCompute
Utilice estos métodos para devolver información sobre el elemento
de referencia. La
API de nodo Java
definida por el usuario proporciona detalles adicionales sobre los métodos:
- getName()
- devuelve el nombre de elemento como java.lang.String
- getValue()
- devuelve el valor de elemento
- getType()
- devuelve el tipo genérico, que es uno de los siguientes:
- NAME. Un elemento de este tipo tiene un nombre, pero no tiene valor.
- VALUE. Un elemento de este tipo tiene un valor, pero no tiene nombre.
- NAME/VALUE. Un elemento de este tipo tiene un valor y un nombre.
- getSpecificType()
- devuelve el tipo específico de analizador del elemento
- getNamespace()
- devuelve el URI de espacio de nombres de este elemento