Acessando o Conteúdo de uma Mensagem no Domínio MRM com o Suporte a Espaço de Nomes Ativado
Utilize os espaços de nomes quando apropriado para mensagens que são analisadas pelo analisador MRM.
Sobre esta tarefa
Quando desejar acessar elementos de uma mensagem e os espaços de nomes estiverem ativados,
será necessário incluir o espaço de nomes quando codificar a referência ESQL ao elemento. Se você não fizer isso, o nó de integração procurará o namespace no target. Se o elemento não for localizado no namespace no target, o nó de integração procurará em todos os outros namespaces conhecidos no dicionário de mensagem (ou seja, no conjunto de mensagens implementado). Por razões de desempenho e
integridade, especifique espaços de nomes sempre que aplicáveis.
A forma mais eficiente de referir-se a elementos quando espaços de nomes estão ativados é definir uma constante de espaço de nomes e utilizá-la em instruções ESQL apropriadas. Esta técnica torna a leitura e manutenção de seu código ESQL muito mais fáceis.
Defina uma constante utilizando a instrução DECLARE NAMESPACE:
DECLARE ns01 NAMESPACE 'http://www.ns01.com'
.
.
SET OutputRoot.MRM.ns01:Element1 = InputBody.ns01:Element1;
ns01 é interpretado corretamente como um
espaço de nomes devido à forma como é declarado.
Também é possível utilizar uma variável CHARACTER para declarar um espaço de nomes:
DECLARE ns02 CHARACTER 'http://www.ns02.com'
.
.
SET OutputRoot.MRM.{ns02}:Element2 = InputBody.{ns02}:Element2;
Se você utilizar este método, deverá colocar a variável declarada entre colchetes para assegurar que ela seja interpretada como um espaço de nomes.
Se você achar que uma variável CHARACTER pode ser alterada, poderá utilizar uma declaração CONSTANT CHARACTER:
DECLARE ns03 CONSTANT CHARACTER 'http://www.ns03.com'
.
.
SET OutputRoot.MRM.{ns03}:Element3 = InputBody.{ns03}:Element3;
É possível declarar um namespace, uma constante e uma variável em um esquema, módulo ou função.