En los releases anteriores, podía intercalar un tipo simple en un tipo compuesto del modelo de mensaje. Esto permitía modelar el texto anónimo que puede aparecer entre los códigos XML. Se hace referencia a estos tipos como tipos simples incorporados para diferenciarlos de los tipos simples del esquema XML. Este tema sólo es aplicable si está trabajando con mensajes que modeló en un release anterior y que ha importado utilizando Mandato mqsimigratemsgsets.
Cuando se analiza un mensaje MRM en un árbol lógico, los tipos simples incorporados no tienen identificadores que los definan exclusivamente en ESQL. Si desea interrogar o actualizar los datos contenidos en un tipo simple incorporado, debe hacer referencia al mismo en relación con otros objetos conocidos en el mensaje.
Por ejemplo, si desea actualizar el tipo simple incorporado con el texto Mr. Smith, incluya el ESQL siguiente en el nodo Compute:
SET OutputRoot.MRM.Person.*[3] = 'Mr.Smith';
Esta sentencia establece el tercer hijo del elemento Person en Mr.Smith. Debido a que esta sentencia va dirigida a un elemento anónimo del árbol (un tipo simple incorporado sin nombre), puede establecer su valor solamente si conoce su posición en el árbol.
Considere el mensaje MRM XML siguiente:
<Mess1> <Elem1>abc</Elem1> <Elem2>def<Child1>ghi</Child1></Elem2> </Mess1>
Puede modelar este mensaje XML en el MRM utilizando los objetos siguientes:
La propiedad Tipo se establece en tMess1.
La propiedad Composición se establece en Ordered Set.
El tipo complejo contiene los objetos siguientes:
La propiedad Tipo se establece en el tipo simple del esquema XML xsd:string.
La propiedad Tipo se establece en el tipo complejo tElem2.
La propiedad Composición se establece en Sequence.
El tipo complejo contiene los objetos siguientes:
La propiedad Tipo se establece en el tipo simple del esquema XML xsd:string.
El tipo simple incorporado ComIbmMRM_BaseValueString que se intercala en tMess2 se utiliza para analizar los datos def del mensaje de entrada. Si desea modificar el valor de los datos asociados al tipo simple incorporado en la salida, codifique el ESQL siguiente:
SET OutputRoot.MRM.Elem2.*[1] = 'xyz';
Esto genera el mensaje de salida siguiente:
<Mess1> <Elem1>abc</Elem1> <Elem2>xyz<Child1>ghi</Child1></Elem2> </Mess1>
Si prefiere no crear un modelo de este mensaje en el MRM, puede obtener el mismo resultado con el ESQL siguiente:
SET OutputRoot.XML.Elem2.*[1] = 'xyz';
Un tipo simple incorporado no tiene recursos para manejar los valores nulos que se proporcionan con los elementos. Si establece un tipo simple incorporado en nulo, se suprimirá del árbol de mensaje.
En ESQL, los nombres de elementos suelen utilizarse para hacer referencia a y actualizar elementos MRM. La excepción es cuando están presentes los tipos simples incorporados en el mensaje. Si está utilizando mensajes de varias partes, debe especificar el nombre del mensaje para calificar adicionalmente las referencias de los tipos simples incorporados si el mensaje no es el primer objeto de mensaje de la corriente de bits. En Acceder a mensajes incorporados en el dominio MRM se proporciona información adicional.