Bei dem Präfix "xsi" handelt es sich um das Namespace-Präfix, das von der Konvention für den XML-Schema-Namespace für Instanzen verwendet wird. XML-Dokumente können Elemente mit einem Attribut vom Typ 'xsi:type' enthalten. Dadurch wird ein ausdrücklicher Datentyp für das Element bereitgestellt.
Der MRM-XML-Parser berücksichtigt Attribute vom Typ 'xsi:type' im XML-Dokument.
Er ändert den Datentyp des Elements entsprechend ab und fügt das 'xsi:type'-Attribut der Nachrichtenbaumstruktur hinzu.
Der MRM-XML-Writer berücksichtigt Attribute vom Typ 'xsi:type' in der Nachrichtenbaumstruktur.
Durch ihn werden die 'xsi:type'-Attribute gemäß den physischen XML-Eigenschaften Ausgaberichtlinie für Attribute vom Typ
'xsi:type' der Nachrichtengruppe ausgegeben. Beispielsweise können 'xsi:type'-Attribute entfernt, an alle Elemente ausgegeben oder gemäß den im
SOAP-Standard angegebenen Regeln ausgegeben werden.
Wenn die Auswertung für einen WebSphere Message Broker-Nachrichtenfluss aktiviert ist, berücksichtigt die Logik der Auswertung Attribute vom Typ 'xsi:type' und verwendet sie zur Änderung der Elementauswertung. Sie prüft die Werte der
'xsi:type'-Attribute auch mit den Regeln, die auf der Website des World Wide Web
Consortium (W3C) unter XML Schema Part 1: Structures beschrieben werden.
Bei der Analyse und beim Schreiben von XML-Dokumenten, die 'xsi:type'-Attribute enthalten, müssen einige wichtige Punkte beachtet werden.
- Damit 'xsi:type'-Attribute ermittelt und verwendet werden können, muss die Nachrichtengruppe für die Verwendung von Namespaces aktiviert sein. Überprüfen Sie dafür die Nachrichtengruppeneigenschaft Namespaces verwenden.
- Wenn der Wert des 'xsi:type'-Attributs ein Namespace-Präfix enthält, wird das Präfix durch den MRM-XML-Parser in eine vollständig qualifizierte URI erweitert.
Wenn das gleiche 'xsi:type'-Attribut später vom MRM-XML-Writer ausgegeben wird, wird nicht automatisch der gleiche Präfix für den Wert verwendet. Mit Hilfe der Liste Namespace-Einstellungen in den physischen XML-Eigenschaften von Nachrichtengruppen können Sie die Präfixe kontrollieren, die für die Ausgabe verwendet wurden. Wurde kein Präfix bereitgestellt, wird vom XML-Writer ein Standardpräfix zugeordnet.
- Wenn das 'xsi:type'-Attribut eines Elements nicht in einen Typ im Modell aufgelöst wird, hängt das Verhalten davon ab, ob die MRM-Überprüfung aktiviert ist.
Wenn keine Prüfung stattfindet, geht MRM davon aus, dass es sich bei Elementtyp um den im Modell deklarierten Typ handelt, und fährt fort. Wenn die Überprüfung ausgeführt wird, wird eine Ausnahmebedingung ausgelöst.
- Wenn die MRM-Überprüfung aktiviert ist, müssen sich erforderliche 'xsi:type'-Attribute zum Zeitpunkt der Prüfung in der Nachrichtenbaumstruktur befinden. Ein 'xsi:type'-Attribut ist erforderlich, wenn sich der Wert von dem im Nachrichtenmodell definierten Datentyp des Elements unterscheidet (dies tritt meistens bei der Verwendung der Typableitung des XML-Schemas auf).
- Wenn die Prüfung auf einer Eingabenachricht ausgeführt wird, stellt der MRM XML-Parser sicher, dass 'xsi:type'-Attribute in der Nachrichtenbaumstruktur angezeigt werden (wie oben beschrieben).
- Wenn die Prüfung auf einer Ausgabenachricht ausgeführt wird, müssen Sie sicherstellen, dass in der Nachrichtenbaumstruktur die richtigen 'xsi:type'-Attribute angezeigt werden. Sie sollten dabei sicherstellen, dass alle erforderlichen 'xsi:type'-Attribute aus der Baumstruktur der Eingabenachricht in die Baumstruktur der Ausgabenachricht kopiert oder explizit in der Baumstruktur der Ausgabenachricht erstellt werden.
- Bei der Verwendung von einfachen 'xsd:union'-Typen kann der MRM-XML-Parser bei der Auflösung des Zusammenschlusses mit einem 'xsi:type'-Attribut übertragen werden.
- Wenn Sie WebSphere
Message Broker Version
6.0 verwenden und eine Migration von einer früheren Version durchgeführt haben, bei der 'xsi:type'-Attribute nicht berücksichtigt wurden, können möglicherweise Änderungen im Verhalten auftreten. Beispielsweise werden 'xsi:type'-Attribute in WebSphere
Message Broker Version
6.0 nicht mehr als selbstdefinierende Attribute behandelt und werden deshalb in der Nachrichtenbaumstruktur mit dem Namen ‘type’ statt mit dem Namen ‘@type’ angezeigt.
Wenn die Logik Ihres Nachrichtenflusses 'xsi:type'-Attribute in der Nachrichtenbaumstruktur berücksichtigt, sollten Sie Ihren Nachrichtenfluss ändern, damit das neue Verhalten unterstützt wird. Unter Hinweise zur Nachrichtenflussmigration finden Sie Informationen zur Vorgehensweise, wenn Sie in Ihren Nachrichtenflüssen die Logik einer früheren Version von WebSphere Message Broker beibehalten möchten.
Weitere Informationen zu den 'xsi:type'-Attributes finden Sie auf der Website des World Wide Web Consortium (W3C) unter XML Schema Part 0: Primer.