WebSphere Message Broker Version 8.0.0.5 Betriebssysteme: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Sehen Sie sich die Informationen zur aktuellen Produktversion im IBM Integration Bus Version 9.0 an.

XML-Parser und -Domänen

Mithilfe der XML-Domänen können Sie Nachrichten syntaktisch analysieren und schreiben, die dem W3C XML-Standard entsprechen.

Unter dem Begriff XML-Domänen werden drei Domänen zusammengefasst, die von WebSphere Message Broker für die Syntaxanalyse von XML-Domänen verwendet werden.

Beim Lesen einer XML-Nachricht erstellt der Parser, der der jeweiligen Domäne zugeordnet ist, auf Basis des Eingabebitstroms eine Nachrichtenbaumstruktur. Dieser Bitstrom muss ein korrekt formatiertes XML-Dokument sein, das den W3C XML-Spezifikationen (Version 1.0 oder 1.1) entspricht.

Beim Schreiben einer Nachricht erstellt der Parser auf Basis der Nachrichtenbaumstruktur einen XML-Bitstrom.

Die Domänen unterscheiden sich in einigen Merkmalen. Welche Domäne sich in welchem Fall eignet, erfahren Sie im Abschnitt Auswahl des geeigneten XML-Parsers.

XMLNSC-Domäne
Die XMLNSC-Domäne ist die bevorzugte Domäne für die Analyse allgemeiner XML-Nachrichten. Hierzu zählen auch Nachrichten, die XML-Namespaces verwenden. Dieser Parser ist aus den folgenden Gründen der bevorzugte Parser:
  • Seine Architektur macht den XMLNSC-Parser bei Syntaxanalysen außerordentlich leistungsfähig.
  • Mit dem XMLNSC-Parser wird der Speicherbedarf für die logische Nachrichtenbaumstruktur reduziert, die auf Basis der analysierten Nachricht erstellt wird. Standardmäßig löscht der Parser unwichtige Leerzeichen und gemischte Inhalte, Kommentare, Verarbeitungsanweisungen und eingebettete DTDs. Allerdings bietet der Parser Bedienelemente, durch die gemischte Inhalte, Kommentare und Verarbeitungsanweisungen bei Bedarf beibehalten werden können.
  • Der XMLNSC-Parser kann als modellgesteuerter Parser eingesetzt werden und XML-Nachrichten anhand von XML-Schemas auswerten, die auf Basis eines Nachrichtensatzes erstellt wurden; auf diese Weise stellt er sicher, dass die XML-Nachrichten korrekt sind.
XMLNS-Domäne
Wenn die XMLNSC-Domäne Ihre Anforderungen nicht erfüllt, können Sie diese Domäne und diesen Parser verwenden, die Domänen erkennen.
XML-Domäne
Die XML-Domäne erkennt keine Namespaces. Diese Domäne ist veraltet und sollte zur Entwicklung neuer Nachrichtenflüsse nicht mehr verwendet werden.

Auch die MRM-Domäne unterstützt XML-Analyse und -Schreibfunktionen. In welchen Fällen Sie MRM XML statt einem der XML-Parser verwenden können, erfahren Sie im Abschnitt Auswahl des geeigneten XML-Parsers.

Standardmäßig arbeiten die drei XML-Parser programmgesteuert und verwenden während der Laufzeit keinen Nachrichtensatz zum Analysieren und Schreiben. Der XMLNSC-Parser kann allerdings auch als modellgesteuerter Parser eingesetzt werden und anhand von XML-Schemas, die auf Basis einer Nachrichtengruppe generiert wurden, feststellen, ob die XML-Nachrichten korrekt sind.

Bei der Verwendung der XMLNS- oder XML-Parser oder bei Verwendung des XMLNSC-Parsers ohne Nachrichtensatz empfiehlt es sich, einen Nachrichtensatz in WebSphere Message Broker Toolkit zu erstellen; durch diese Maßnahme wird die Entwicklung von Nachrichtenflussanwendungen erleichtert, auch wenn der Nachrichtensatz nicht während der Laufzeit des Brokers implementiert wird.

Auf die Vorteile einer Nachrichtengruppe geht der Abschnitt Wozu Modellnachrichten? näher ein.

Die XML-Parser sind bedarfsgerechte Parser. Der Abschnitt Bedarfsgerechte Syntaxanalyse enthält weitere Informationen hierzu.

Die Abschnitte in diesem Information Center bieten eine Übersicht über die XML-Terminologie, XML-Konzepte und XML-Nachrichtenkonstrukte. Diese Informationen sind bei der Verwendung von XML-Nachrichten in den Nachrichtenflüssen wichtig.
Tipp: Ausführlichere Informationen zu XML finden Sie auf der World Wide Web Consortium (W3C)-Website.

Syntaxanalyse einer XML-Beispielnachricht

Eine einfache XML-Nachricht könnte folgendermaßen aussehen:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE Envelope
PUBLIC "http://www.ibm.com/dtds" "example.dtd"
[<!ENTITY Example_ID "ST_TimeoutNodes Timeout Request Input Test Message">]
>
<Envelope version="1.0">
		<Header>
				<Example>&Example_ID;</Example>
				<!-- Dies ist ein Kommentar -->
		</Header>
		<Body  version="1.0">
				<Element01>Value01</Element01>
				<Element02/>
		<Element03>
						<Repeated>ValueA</Repeated>
						<Repeated>ValueB</Repeated>
				</Element03>
				<Element04><P>This is <B>bold</B> text</P></Element04>
		</Body>
</Envelope>

In den folgenden Abschnitten wird die Ausgabe gezeigt, die der Trace-Knoten bei der Analyse dieser Beispielnachricht in den XMLNS- und XMLNSC-Parsern generiert. Sie verdeutlichen die Unterschiede bei den internen Strukturen, mit denen die vom Broker verarbeiteten Daten dargestellt werden.

Analyse einer XML-Beispielnachricht in der XMLNS-Domäne

Im folgenden Beispiel befinden sich in der Baumstruktur WhiteSpace-Elemente. Sie stehen für Leerzeichen, Tabulatoren und Zeilenumbrüche, mit denen das ursprüngliche XML-Dokument formatiert wird. Die tatsächlichen Zeichen im Trace wurden zur Verdeutlichung der Darstellung durch 'WhiteSpace' ersetzt. WhiteSpace-Elemente innerhalb eines XML-Elements haben keine geschäftliche Bedeutung und werden durch das Inhalt-Syntaxelement dargestellt. XmlDecl, DTD und Kommentare werden in der XML-Domäne unter Verwendung expliziter Syntaxelemente mit bestimmten Feldtypen dargestellt.

(0x01000010):XMLNS        = (
    (0x05000018):XML      = (
      (0x06000011): = '1.0'
      (0x06000012): = 'UTF-8'
      (0x06000014): = 'no'
    )
    (0x06000002):         = 'WhiteSpace'
    (0x05000020):Envelope = (
      (0x06000004): = 'http://www.ibm.com/dtds'
      (0x06000008): = 'example.dtd'
      (0x05000021): = (
        (0x05000011):Example_ID = (
          (0x06000041): = 'ST_TimeoutNodes Timeout Request Input Test Message'
        )
      )
    )
    (0x06000002):         = 'WhiteSpace'
    (0x01000000):Envelope       = (
      (0x03000000):version   = '1.0'
      (0x02000000):         = 'WhiteSpace'
      (0x01000000):Header  = (
        (0x02000000):         = 'WhiteSpace'
        (0x01000000):Example = (
          (0x06000020): = 'Example_ID'
          (0x02000000): = 'ST_TimeoutNodes Timeout Request Input Test Message'
          (0x06000021): = 'Example_ID'
        )
        (0x02000000):         = 'WhiteSpace'
        (0x06000018):        = ' This is a comment  '
        (0x02000000):         = 'WhiteSpace'
      )
      (0x02000000):         = 'WhiteSpace'
      (0x01000000):Body    = (
        (0x03000000):version   = '1.0'
        (0x02000000):         = 'WhiteSpace'
        (0x01000000):Element01 = (
          (0x02000000): = 'Value01'
        )
        (0x02000000):         = 'WhiteSpace'
        (0x01000000):Element02 = 
        (0x02000000):         = 'WhiteSpace'
        (0x01000000):Element03 = (
          (0x02000000):         = 'WhiteSpace'
          (0x01000000):Repeated = (
            (0x02000000): = 'ValueA'
          )
          (0x02000000):         = 'WhiteSpace'
          (0x01000000):Repeated = (
            (0x02000000): = 'ValueB'
          )
          (0x02000000):         = 'WhiteSpace'
        )
        (0x02000000):         = 'WhiteSpace'
        (0x01000000):Element04 = (
          (0x01000000):P = (
            (0x02000000):  = 'This is '
            (0x01000000):B = (
              (0x02000000): = 'bold'
            )
            (0x02000000):  = ' text'
          )
        )
        (0x02000000):         = 'WhiteSpace'
      )
      (0x02000000):         = 'WhiteSpace'
    )

Syntaxanalyse einer XML-Beispielnachricht in der XMLNSC-Domäne

Im folgenden Trace werden die Elemente gezeigt, die zur Darstellung derselben XML-Struktur im Standardmodus des XMLNSC-Kompaktparsers erstellt werden. In diesem Modus behält der Kompaktparser keine Kommentare, Verarbeitungsanweisungen oder gemischten Text bei.

Das Beispiel verdeutlicht, dass bei der Verwendung des Kompaktparsers eine große Anzahl an Syntaxelementen eingespart werden kann, die zur Darstellung derselben Geschäftsinhalte der XML-Beispielnachricht verwendet werden.

Wenn Sie keinen gemischten Text beibehalten, ist für die WhiteSpace-Elemente ohne Geschäftsdateninhalte in der Nachrichtenbaumstruktur des Brokers während der Ausführung kein Speicherplatz erforderlich. Allerdings wird der gemischte Text in Element04.P ebenfalls verworfen; nur der Wert des untergeordneten Ordners Element04.P.B wird beibehalten; der Text This is und text in P wird verworfen. Dieser XML-Strukturtyp wird Geschäftsdatenformaten normalerweise nicht zugeordnet; deshalb ist in der Regel die Verwendung des XMLNSC-Kompaktparsers vorzuziehen. Wenn jedoch dieser Verarbeitungstyp erforderlich ist, sollten Sie den XMLNSC-Parser nicht verwenden oder nur dann, wenn der Modus Retain mixed text (gemischten Text beibehalten) aktiviert ist.

Auch die Handhabung der XML-Deklaration unterscheidet sich im XMLNSC-Parser. Die Attribute 'version', 'encoding' und 'stand-alone' werden als untergeordnete Elemente von 'XmlDeclaration', nicht als Elemente mit einem bestimmten Feldtyp beibehalten.

(0x01000000):XMLNSC     = (
    (0x01000400):XmlDeclaration = (
      (0x03000100):Version    = '1.0'
      (0x03000100):Encoding   = 'UTF-8'
      (0x03000100):StandAlone = 'no'
    )
    (0x01000000):Envelope       = (
      (0x03000100):version   = '1.0'
      (0x01000000):Header  = (
        (0x03000000):Example = 'ST_TimeoutNodes Timeout Request Input Test Message'
      )
      (0x01000000):Body    = (
        (0x03000100):version   = '1.0'
        (0x03000000):Element01 = 'Value01'
        (0x01000000):Element02 = 
        (0x01000000):Element03 = (
          (0x03000000):Repeated = 'ValueA'
          (0x03000000):Repeated = 'ValueB'
        )
        (0x01000000):Element04 = (
          (0x01000000):P = (
            (0x03000000):B = 'bold'
          )
        )
   )

Informationen zu Beispielen können nur bei Verwendung des in das WebSphere Message Broker Toolkit integrierten bzw. online verfügbaren Information Center angezeigt werden. Muster können nur ausgeführt werden, wenn das im WebSphere Message Broker Toolkit integrierte Information Center verwendet wird.

Im WebSphere Message Broker Toolkit stehen einige vordefinierte Nachrichtenmodelle bereit, die mit dem Assistenten für die Erstellung neuer Nachrichtendefinitionsdateien aus IBM® eigenen Nachrichten importiert werden können. Weitere Informationen hierzu finden Sie unter Nachrichtengruppen: IBM eigene Nachrichten, die importiert werden können.

Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:20:39


KonzeptthemaKonzeptthema | Version 8.0.0.5 | ac70600_