Este tópico fornece orientação para criar seu nó de processamento de mensagens para assegurar que ele funcione corretamente. Ele explica como você pode utilizar seu nó de processamento de mensagem para navegar uma mensagem.
Um elemento de sintaxe com conexões a outros elementos
Árvore de elementos de sintaxe
O elemento A é o elemento raiz da árvore. Ele não tem pai porque é o raiz. Ele possui um primeiro filho de elemento B. Como A não possui filhos, o elemento B também será o último filho de A.
O elemento B tem três filhos: elementos C, D e E. O elemento C é o primeiro filho de B; o elemento E é o último filho de B.
O elemento C tem dois irmãos: elementos D e E. O próximo irmão do elemento C é o elemento D. O próximo irmão do elemento D é o elemento E. O irmão anterior do elemento E é o elemento D. O irmão anterior do elemento D é o elemento C.
Primeira geração de elementos de sintaxe em uma mensagem típica
Esses elementos na primeira geração são muitas vezes denominados "pastas", nas quais os elementos de sintaxe que representam cabeçalhos de mensagem e dados de conteúdo de mensagem são armazenados. Neste exemplo, o primeiro filho de root é a pasta Propriedades. O próximo irmão de Propriedades é a pasta para o MQMD das mensagens de entrada do WebSphere MQ. O próximo irmão é a pasta para o cabeçalho MQRFH2. Finalmente, há a pasta que representa o conteúdo da mensagem, a qual (neste exemplo) é uma mensagem XML.
A figura acima inclui um cabeçalho MQMD e um MQRFH2. Todas as mensagens recebidas por um nó de processamento MQmessage incluem um cabeçalho MQMD, e existem vários outros cabeçalhos que podem também ser incluídos.
<Business>
<Product type='messaging'></Product>
<Company>
<Title>IBM</Title>
<Location>Hursley</Location>
<Department>WebSphere MQ</Department>
</Company>
</Business>
Você pode utilizar funções e métodos utilitários do nó (ou as funções similares do analisador) para navegar por uma mensagem. Tomando a mensagem XML mostrada acima, você precisa chamar cniRootElement primeiro, com a mensagem recebida pelo nó como entrada para essa função. Em Java você precisa chamar getRootElement na MbMessage de entrada. Isso retorna um MbElement que representa a raiz do elemento. O elemento raiz não deve ser modificado pelo nó definido pelo usuário.
A figura acima mostra que o último filho do elemento raiz é a pasta que contém a árvore de análise XML. Você pode navegar até essa pasta chamando cniLastChild (com a saída da chamada anterior como entrada para essa função) em um nó C, ou chamando o método getLastChild no elemento raiz em um nó Java.
Há somente um elemento (<Business>) no nível superior da mensagem, portanto chamar cniFirstChild (em C) ou getFirstChild (em Java) moverá para este ponto na árvore. Você pode utilizar cniElementType ou getElementType para obter seu tipo (que é name), seguido por cniElementName ou getName para retornar o próprio nome (Business).
<Business> tem dois filhos, <Product> e <Company>, portanto você pode utilizar cniFirstChild ou getFirstChild seguido de cniNextSibling ou getNextSibling para navegar para eles.
<Product> tem um atributo (type='messaging'), que é um elemento filho. Utilize cniFirstChild ou getFirstChild novamente para navegar até este elemento, e cniElementType ou getType para retornar seu tipo (que é name-value). Utilize cniElementName ou getName como anteriormente para obter o nome. Para obter o valor, chame cniElementValueType para retornar o tipo, seguido pela função apropriada no grupo cniElementValue. Neste exemplo ela será cniElementCharacterValue. Em Java utilize o método getValue, o qual irá retornar um objeto Java representando o valor do elemento.
<Company> tem três filhos, cada um deles tendo um filho que é um elemento de valor (IBM, Hursley e WebSphere MQ). Você pode utilizar as funções já descritas para navegar até eles e acessar seus valores.
Outras funções estão disponíveis para copiar a árvore de elementos (ou parte dela). A cópia pode então ser modificada incluindo ou removendo elementos e alterando seus nomes e valores, para criar uma mensagem de saída.