Zugriff auf eingebettete einfache Typen in migrierten Nachrichtenmodellen

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.

Nachricht
Die Eigenschaft Name der Nachricht wird auf Mess1 gesetzt, damit sie dem XML-Tag entspricht.

Die Eigenschaft Typ wird auf tMess1 gesetzt.

Typ
Die Eigenschaft Typ des komplexen Typs wird auf tMess1 gesetzt.

Die Eigenschaft Zusammensetzung wird auf Elemente in angegebener Reihenfolge gesetzt.

Der komplexe Typ enthält die folgenden Objekte:

Element
Die Eigenschaft Name wird auf Elem1 gesetzt, damit sie dem XML-Tag entspricht.

Die Eigenschaft Typ wird auf den einfachen Typen xsd:string des XML-Schemas gesetzt.

Element
Die Eigenschaft Name wird auf Elem2 gesetzt, damit sie dem XML-Tag entspricht.

Die Eigenschaft Typ wird auf den komplexen Typen tElem2 gesetzt.

Typ
Die Eigenschaft Typ des komplexen Typs wird auf tMess2 gesetzt.

Die Eigenschaft Zusammensetzung wird auf Folge gesetzt.

Der komplexe Typ enthält die folgenden Objekte:

Element
Die Eigenschaft Name wird auf Child1 gesetzt, damit sie dem XML-Tag entspricht.

Die Eigenschaft Typ wird auf den einfachen Typen xsd:string des XML-Schemas gesetzt.

Eingebetteter einfacher Typ
ComIbmMRM_BaseValueString

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.

Zugehörige Konzepte
Nachrichtenflüsse - Übersicht
Übersicht zu ESQL
Nachrichten modellieren
Zugehörige Tasks
Einen Nachrichtenfluss entwerfen
Nachrichtenflussinhalte definieren
ESQL-Dateien verwalten
Eine Nachrichtengruppe migrieren
Zugehörige Verweise
Rechenknoten (Compute)
Datenbankknoten (Database)
Filterknoten
ESQL-Referenz
SET-Anweisung
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
ac12260_