In früheren Releases konnte ein einfacher Typ im Nachrichtenmodell in einen Verbundtyp eingebettet werden. Auf diese Weise konnte der anonyme Text, der zwischen den XML-Tags stehen kann, modelliert werden. Diese einfachen Typen werden als 'eingebettete einfache Typen' bezeichnet, um sie von den einfachen Typen des XML-Schemas zu unterscheiden. Dieses Thema ist nur relevant, wenn Sie mit Nachrichten arbeiten, die Sie in einem Vorgängerrelease modelliert und mit Hilfe von Befehl 'mqsimigratemsgsets' importiert haben.
Wenn eine MRM-Nachricht in einer logischen Baumstruktur syntaktisch analysiert wird, haben die eingebetteten einfachen Typen keine IDs, über die sie in ESQL eindeutig definiert werden. Falls Sie die Daten in einem eingebetteten einfachen Typ abfragen oder aktualisieren möchten, müssen Sie sich auf diese in Relation zu anderen bekannten Objekten in der Nachricht beziehen.
Wenn Sie beispielsweise den eingebetteten einfachen Typ mit dem Text 'Mr. Smith' aktualisieren möchten, fügen Sie folgenden ESQL-Code in Ihrem Rechenknoten ein:
SET OutputRoot.MRM.Person.*[3] = 'Mr.Smith';
Diese Anweisung setzt das dritte untergeordnete Element des Elements 'Person' auf 'Mr.Smith'. Da sich diese Anweisung auf ein anonymes Element in der Baumstruktur (einen eingebetteten einfachen Typen ohne Namen) bezieht, können Sie dessen Wert nur festlegen, wenn Sie seine Position in der Baumstruktur kennen.
Beachten Sie die folgende MRM-XML-Nachricht:
<Mess1> <Elem1>abc</Elem1> <Elem2>def<Child1>ghi</Child1></Elem2> </Mess1>
Sie können diese XML-Nachricht in der MRM unter Verwendung der folgenden Objekte modellieren.
Die Eigenschaft Typ wird auf tMess1 gesetzt.
Die Eigenschaft Zusammensetzung wird auf Elemente in angegebener Reihenfolge gesetzt.
Der komplexe Typ enthält die folgenden Objekte:
Die Eigenschaft Typ wird auf den einfachen Typen xsd:string des XML-Schemas gesetzt.
Die Eigenschaft Typ wird auf den komplexen Typen tElem2 gesetzt.
Die Eigenschaft Zusammensetzung wird auf Folge gesetzt.
Der komplexe Typ enthält die folgenden Objekte:
Die Eigenschaft Typ wird auf den einfachen Typen xsd:string des XML-Schemas gesetzt.
Der eingebettete einfache Typ 'ComIbmMRM_BaseValueString', der in 'tMess2' eingebettet ist, wird zur Syntaxanalyse der Daten 'def' aus der Eingabenachricht verwendet. Wenn Sie den Wert der Daten ändern möchten, die dem eingebetteten einfachen Typen bei der Ausgabe zugeordnet werden, müssen Sie folgenden ESQL-Code verwenden:
SET OutputRoot.MRM.Elem2.*[1] = 'xyz';
Dies führt zur Generierung der folgenden Ausgabenachricht:
<Mess1> <Elem1>abc</Elem1> <Elem2>xyz<Child1>ghi</Child1></Elem2> </Mess1>
Wenn Sie diese Nachricht nicht in der MRM modellieren möchten, können Sie mit folgenden ESQL-Code dasselbe Ergebnis erzielen:
SET OutputRoot.XML.Elem2.*[1] = 'xyz';
Ein eingebetteter einfacher Typ verfügt nicht über die Funktionen zur Null-Verarbeitung, die mit Elementen bereitgestellt werden. Wenn Sie einen eingebetteten einfachen Typen auf 'Null' setzen, wird er aus der Nachrichtenbaumstruktur gelöscht.
In ESQL werden Elementnamen normalerweise für den Verweis auf und die Aktualisierung von MRM-Elementen verwendet. Die Ausnahme bilden eingebettete einfache Typen in der Nachricht. Wenn Sie mehrteilige Nachrichten verwenden, müssen Sie den Nachrichtennamen angeben, um die Verweise der eingebetteten einfachen Typen näher zu qualifizieren, wenn die Nachricht nicht das erste Nachrichtenobjekt im Bitstrom darstellt. Zugriff auf eingebettete Nachrichten in der MRM-Domäne enthält weitere Informationen.