Puede utilizar el soporte de espacio de nombres para los mensajes que analiza el analizador MRM.
Cuando desee acceder a los elementos de un mensaje y estén habilitados los espacios de nombres, debe incluir el espacio de nombres cuando codifique la referencia ESQL en el elemento. Si no es así, el intermediario busca el espacio de nombres notarget. Si el elemento no se encuentra en el espacio de nombres notarget, el intermediario busca todos los demás espacios de nombres en el diccionario de mensajes (esto es, en el juego de mensajes desplegado). Por motivos de rendimiento e integridad, especifique los espacios de nombres donde resulten aplicables.
La forma más eficaz de hacer referencia a los elementos cuando se habilitan los espacios de nombres es definir una constante de espacio de nombres y utilizarla en las sentencias ESQL adecuadas. Esto hace que el código ESQL sea más fácil de leer y mantener.
Defina una constante utilizando la sentencia DECLARE NAMESPACE:
DECLARE ns01 NAMESPACE 'http://www.ns01.com' . . SET OutputRoot.MRM.Element1 = InputBody.ns01:Element1;
ns01 se interpreta correctamente como un espacio de nombres debido al modo en que se declara.
También puede utilizar una variable CHARACTER para declarar un espacio de nombres:
DECLARE ns02 CHARACTER 'http://www.ns02.com' . . SET OutputRoot.MRM.Element2 = InputBody.{ns02}:Element2;
Si utiliza este método, debe encerrar la variable declarada entre llaves para garantizar que se interprete como un espacio de nombres.
Si le preocupa que pueda modificarse una variable CHARACTER, puede utilizar una declaración CONSTANT CHARACTER:
DECLARE ns03 CONSTANT CHARACTER 'http://www.ns03.com' . . SET OutputRoot.MRM.Element3 = InputBody.{ns03}:Element3;
Puede declarar un espacio de nombres, una constante y una variable en un módulo o función. No obstante, puede declarar solamente un espacio de nombres o una constante en un ámbito de esquema (esto es, fuera de un ámbito de módulo).
El ejemplo Vídeo proporciona ejemplos adicionales del uso de los espacios de nombres.
Los espacios de nombres no están soportados por la Versión 2.1, por lo tanto, no puede desplegar un conjunto de mensajes o un flujo de mensajes que utilice espacios de nombres en un intermediario de la Versión 2.1.