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. Durch dieses Verhalten 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 erzeugt.
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 Namespacepräfix enthält, wird das Präfix durch den
MRM-XML-Parser in eine vollständig qualifizierte URI erweitert.
Wird dasselbe 'xsi:type'-Attribut
später vom MRM-XML-Parser ausgegeben, wird nicht automatisch dasselbe Präfix für den Wert
verwendet. Mithilfe der Liste Namespaceeinstellungen 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. Bei Ausführung der Überprüfung 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. Vergewissern Sie sich dabei, 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.
- Bei einer Migration von einer älteren Version von WebSphere Message
Broker, bei der das Attribut 'xsi:type' nicht berücksichtigt wurde, ändert sich das Verhalten.
So wird das Attribut 'xsi:type' nicht als selbstdefinierendes Attribut angesehen und deshalb in der Nachrichtenbaumstruktur nicht mehr mit dem Namen '@type', sondern als 'type' angezeigt. Wenn das Attribut 'xsi:type' in Ihrer Nachrichtenflusslogik berücksichtigt wird, müssen Sie den Nachrichtenfluss dem aktuellen Verhalten entsprechend anpassen.
Weitere Informationen zu xsi:type-Attributen finden Sie auf der W3C-Website (World Wide Web Consortium) unter XML
Schema Part 0: Primer.