Este tema proporciona instrucciones para escribir el nodo de proceso de mensajes, a fin de garantizar que funciona correctamente. En él se explica cómo utilizar el nodo de proceso de mensajes para desplazarse por un mensaje.
Un elemento de sintaxis con conexiones con otros elementos
Árbol de elementos de sintaxis
El elemento A es el elemento raíz del árbol. No tiene elemento superior porque es la raíz. Su primer elemento dependiente es el elemento B. Dado que A no tiene otros elementos dependientes, el elemento B es también el último elemento dependiente de A.
El elemento B tiene tres elementos dependientes: los elementos C, D y E. El elemento C es el primer elemento dependiente de B; el elemento E es el último elemento dependiente de B.
El elemento C tiene dos elementos iguales: los elementos D y E. El elemento igual posterior del elemento C es el elemento D. El elemento igual posterior del elemento D es el elemento E. El elemento igual anterior del elemento E es el elemento D. El elemento igual anterior del elemento D es el elemento C.
Primera generación de elementos de sintaxis en un mensaje típico
Con frecuencia, a estos elementos de la primera generación se les denomina "carpetas", en las cuales se guardan elementos de sintaxis que representan cabeceras de mensajes y contenido de mensajes. En este ejemplo, el primer elemento dependiente de la raíz es la carpeta Propiedades. El elemento igual posterior de Propiedades es la carpeta para el MQMD de los mensajes de WebSphere MQ entrantes. El elemento igual posterior es la carpeta para la cabecera MQRFH2. Finalmente, está la carpeta que representa el contenido del mensaje, que (en este ejemplo) es un mensaje XML.
La figura anterior incluye una cabecera MQMD y otra MQRFH2. Todos los mensajes que recibe un nodo de proceso MQmessage incluyen una cabecera MQMD; hay otras cabeceras que también pueden incluirse.
<Business>
<Product type='messaging'></Product>
<Company>
<Title>IBM</Title>
<Location>Hursley</Location>
<Department>WebSphere MQ</Department>
</Company>
</Business>
Puede utilizar métodos y funciones de programa de utilidad de nodo (o las funciones de programa de utilidad de analizador similares) para desplazarse por un mensaje. Si consideramos el mensaje XML mostrado anteriormente, primero debe invocar cniRootElement, con el mensaje recibido por el nodo como entrada de esta función. En Java, debe invocar getRootElement en el MbMessage entrante. Esta acción devuelve un MbElement que representa la raíz del elemento. El elemento raíz no debe modificarse mediante un nodo de plug-in.
La figura anterior muestra que el último elemento dependiente del elemento raíz es la carpeta que contiene el árbol de analizadores XML. Para navegar hasta esta carpeta, puede invocar cniLastChild (con la salida de la llamada anterior como entrada de esta función) en un nodo C, o invocar el método getLastChild en el elemento raíz, en un nodo Java.
Sólo hay un elemento (<Business>) en el nivel superior del mensaje, por lo tanto, al invocar cniFirstChild (en C) o getFirstChild (en Java) se llega a este punto del árbol. Puede utilizar cniElementType o getElementType para obtener el tipo correspondiente (es decir, name), seguido de cniElementName o getName para devolver el propio nombre (Business).
<Business> tiene dos elementos dependientes, <Product> y <Company>, así que puede utilizar cniFirstChild o getFirstChild seguido de cniNextSibling o getNextSibling para desplazarse hasta cada uno de ellos.
<Product> tiene un atributo (type='messaging'), que es un elemento dependiente. Utilice cniFirstChild o getFirstChild otra vez para desplazarse hasta este elemento, y cniElementType o getType para devolver el tipo correspondiente (es decir, name-value). Utilice cniElementName o getName como antes para obtener el nombre. Para obtener el valor, invoque cniElementValueType para que devuelva el tipo, seguido de la función adecuada del grupo cniElementValue. En este ejemplo, será cniElementCharacterValue. En Java, utilice el método getValue, que devolverá un objeto Java que representa el valor de elemento.
<Company> tiene tres elementos dependientes, y cada uno de ellos tiene un elemento dependiente que es un elemento de valor IBM, Hursley y WebSphere MQ). Puede utilizar las funciones ya descritas para desplazarse hasta ellos y acceder a sus valores.
Hay otras funciones disponibles para copiar el árbol de elementos (o parte del mismo). Por lo tanto la copia puede modificarse añadiendo o eliminando elementos y cambiando sus nombres y valores para crear un mensaje de salida.
Conceptos relacionados
Diseño de extensiones definidas por el usuario
Nodos del flujo de mensajes
Nodos de proceso de mensajes definidos por el usuario
Ciclo de vida de los nodos de proceso de mensajes definidos por el usuario
Tareas relacionadas
Creación de un nodo de proceso de mensajes en C
Creación de un nodo de proceso de mensajes o un nodo de salida en Java
Referencia relacionada
Funciones de programa de utilidad de nodo de lenguaje C
Funciones de programa de utilidad de analizador
Avisos |
Marcas registradas |
Descargas |
Biblioteca |
Soporte |
Información de retorno (feedback)
![]() ![]() |
as01395_ |