Em releases anteriores, era possível incorporar um tipo simples em um tipo composto no modelo de mensagem. Isso permitia que o texto anônimo que ocorre entre as marcações XML fosse modelado. Esses tipos simples são referidos como tipos simples incorporados para distingui-los de tipos simples do esquema XML. Este tópico é aplicável apenas se você estiver trabalhando com mensagens modeladas em um release anterior e importadas utilizando Comando mqsimigratemsgsets.
Quando uma mensagem MRM é analisada em uma árvore lógica, os tipos simples incorporados não possuem identificadores que os definem exclusivamente no ESQL. Se desejar interrogar ou atualizar os dados contidos em um tipo simples incorporado, será necessário fazer referência a ele em relação a outros objetos conhecidos na mensagem.
Por exemplo, se você desejar atualizar o tipo simples incorporado com o texto Mr. Smith, inclua o seguinte ESQL no nó Compute:
SET OutputRoot.MRM.Person.*[3] = 'Mr.Smith';
Essa instrução define o terceiro filho do elemento Person como Mr.Smith. Como essa instrução aborda um elemento anônimo na árvore (um tipo simples incorporado que não possui nome), você poderá definir seu valor apenas se souber sua posição específica na árvore.
Considere a seguinte mensagem MRM XML:
<Mess1> <Elem1>abc</Elem1> <Elem2>def<Child1>ghi</Child1></Elem2> </Mess1>
Você pode modelar essa mensagem XML no MRM utilizando os seguintes objetos.
A propriedade Tipo está definida como tMess1.
A propriedade Composição está definida como Conjunto Solicitado.
O tipo complexo contém os seguintes objetos:
A propriedade Tipo é definida como o tipo simples de Esquema XML xsd:string.
A propriedade Tipo está definida como o tipo complexo tElem2.
A propriedade Composição está definida como Seqüência.
O tipo complexo contém os seguintes objetos:
A propriedade Tipo é definida como o tipo simples de Esquema XML xsd:string.
O tipo simples incorporado ComIbmMRM_BaseValueString que está incorporado em tMess2 é utilizado para analisar a definição de dados da mensagem de entrada. Se desejar alterar o valor dos dados associados ao tipo simples incorporado na saída, codifique o seguinte ESQL:
SET OutputRoot.MRM.Elem2.*[1] = 'xyz';
Isso gera a seguinte mensagem de saída:
<Mess1> <Elem1>abc</Elem1> <Elem2>xyz<Child1>ghi</Child1></Elem2> </Mess1>
Se preferir não modelar essa mensagem no MRM, você poderá obter o mesmo resultado com o seguinte ESQL:
SET OutputRoot.XML.Elem2.*[1] = 'xyz';
Um tipo simples incorporado não possui os recursos para o manuseio de nulos que é fornecido com os elementos. Se você definir um tipo simples incorporado como nulo, ele será excluído da árvore de mensagens.
Em ESQL, os nomes de elementos geralmente são utilizados para fazer referência e atualizar elementos MRM. A exceção é quando os tipos incorporados estão presentes na mensagem. Se estiver utilizando mensagens de várias partes, será necessário especificar o nome da mensagem para qualificar adicionalmente as referências de tipos simples incorporados, se a mensagem não for o primeiro objeto de mensagem no fluxo de bits. Acessando Mensagens Incorporadas no Domínio MRM fornece informações adicionais.