La estructura del árbol lógico es la representación interna (intermediario) de un mensaje.
Cuando un mensaje llega a un intermediario, lo recibe un nodo de entrada que ha configurado en un flujo de mensajes. Antes de que el mensaje pueda ser procesado por el flujo de mensajes, debe ser interpretado por uno o más analizadores que crean una representación de árbol lógico a partir de la corriente de bits de los datos del mensaje.
El formato de árbol comprende un contenido idéntico al de la corriente de bits a partir de la cual se ha creado, pero es más fácil de manipular dentro del flujo de mensajes. Muchos de los nodos de flujo de mensajes incorporados proporcionan una interfaz para que pueda consultar y actualizar el contenido del mensaje dentro del árbol, y efectuar otras acciones en los mensajes y las bases de datos, para ayudarle a proporcionar la función necesaria en cada nodo.
Se proporcionan tres interfaces:
La estructura de árbol creada por los analizadores es, en gran parte, independiente del formato del mensaje (por ejemplo, XML). La excepción a esto es el subárbol que se crea como parte del árbol de mensaje y que representa el cuerpo del mensaje. Este subárbol es dependiente del mensaje y su contenido no se describe adicionalmente.
El nodo de entrada crea el árbol lógico, que consta de cuatro subárboles:
El primero de estos árboles se rellena con el contenido de la corriente de bits del mensaje de entrada, tal como se describe en Cómo se llena el árbol de mensaje: inicialmente, los tres restantes están vacíos.
Cada uno de los cuatro árboles creados tiene un elemento raíz (con un nombre específico para cada árbol). Cada árbol está formado por varias partes distintas de información denominadas elementos. El elemento raíz no tiene ningún elemento padre ni hermano (los elementos hermano son aquellos que comparten un mismo elemento padre). El elemento raíz es el elemento padre de varios elementos hijo. Cada elemento hijo debe tener un elemento padre, puede o no tener elementos hermano, y puede tener o no elementos hijo.
Los cuatro árboles se crean tanto para los analizadores y nodos de entrada incorporados como para los definidos por el usuario.
El nodo de entrada pasa la estructura del árbol lógico que ha creado a los siguientes nodos de proceso de mensajes en el flujo de mensajes:
Para determinar cuáles de los otros tres árboles se incluyen, debe especificar un valor para la propiedad Modalidad de cálculo del nodo (que se muestra en el separador Avanzadas). La acción por omisión es sólo para el mensaje a crear. En el árbol de salida puede especificar cualquier combinación de mensaje y árboles Entorno local y Lista de excepciones.
Si quiere que el árbol de salida contenga una copia completa del árbol de mensaje de entrada, puede codificar una sola sentencia SET de ESQL para efectuar la copia. Si desea que el mensaje de salida contenga un subconjunto del árbol de mensaje de entrada, codifique ESQL para copiar las partes que desee. En ambos casos, la selección de Modalidad de cálculo debe incluir Message.
Si quiere que el árbol de salida contenga todo o parte del contenido del árbol Entorno local o Lista de excepciones, codifique el ESQL adecuado para copiar la información que desea conservar en ese árbol. La selección de Modalidad de cálculo debe incluir LocalEnvironment, o Exception, o ambos.
También puede codificar ESQL para rellenar el mensaje de salida, el árbol Entorno, Entorno local o Lista de excepciones con la información que no se copia del árbol de entrada. Por ejemplo, puede recuperar datos de una base de datos, o calcular el contenido a partir de los datos del mensaje de entrada.