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.

Nullwerte handhaben

Eine Geschäftsnachricht kann Felder enthalten, die leer sind oder einen Wert außerhalb des gültigen Bereichs enthalten. In diesen Fällen wird von der Anwendung, die die Nachricht empfängt, erwartet, dass sie das Feld wie ein leeres Feld handhabt. Die logische Nachrichtenbaumstruktur unterstützt dieses Konzept, indem sie zulässt, dass der Wert eines Elements auf NULL gesetzt werden kann.

Darstellungsmöglichkeiten für Nullwerte

In einem XML-Dokument wird ein Nullwert ausgedrückt, indem das Element oder Attribut leer bleibt.

Beispiel: <price></price> oder <element price=""/>

Mit dem Attribut 'xsi:nil' kann dies expliziter ausgedrückt werden: price=<xsi:nil="true"/>

Einige Geschäftsnachrichten verwenden einen besonderen Wert für die Darstellung eines Nullwerts: <price>-999</price>. Diese Art der Nulldarstellung wird von DFDL- und MRM-Parsern unterstützt.

DFDL-Parserunterstützung für Nullwerte

Der DFDL-Parser kann einen Nullwert erkennen, der durch einen Wert außerhalb des gültigen Bereichs dargestellt wird. Der Nullwert muss im DFDL-Schema angegeben werden und kann für jedes Element gleich oder unterschiedlich sein. In DFDL wird dieser Wert als Nullwert bezeichnet. Bei der Syntaxanalyse prüft der DFDL-Parser die Nullwerte für jedes Element in der Nachricht. Wenn der Wert im Bitstrom mit dem Nullwert im DFDL-Schema übereinstimmt, setzt der DFDL-Parser den Wert in der Nachrichtenbaumstruktur auf NULL. Dieselbe Prüfung wird auch beim Umwandeln einer Nachrichtenbaumstruktur in einen Bitstrom durchgeführt. Wenn der Wert in der Nachrichtenbaumstruktur NULL ist, gibt der DFDL-Parser den Nullwert aus dem DFDL-Schema aus.

Weitere Informationen finden Sie in der DFDL 1.0-Spezifikation im Abschnitt 13.15.

Unterstützung von Nullwerten durch die grafische Datenzuordnung

Mit den folgenden XPath-Funktionen können Sie die bedingte Verarbeitung für die Zuordnung des XML NULL-Werts implementieren:
  • fn:empty testet, ob ein Element einen leeren Wert enthält. Es wird davon ausgegangen, dass der NULL-Wert der logischen Datenbaumstruktur leer ist.
  • fn:nilled testet, ob für ein XML-Element das Attribut xsi:nil gesetzt ist.
  • fn:exists testet, ob ein Element vorhanden ist. Ein XML-Element, für das das Attribut xsi:nil gesetzt ist, wird als vorhanden betrachtet.
Beachten Sie beim Zuordnen von Nullwerten das folgende Verhalten:
  • Durch die Zuordnung des NULL-Werts der logischen Datenbaumstruktur aus einer Ein- in eine Ausgabe wird ein Ausgabeelement mit einem leeren Wert erstellt. Wenn das Element im Modell so definiert wurde, dass Nullwerte möglich sind, wird ein leeres Ausgabeelement mit der Attributgruppe xsi:nil erstellt. Dasselbe Ergebnis wird erzielt, wenn ein Ausgabeelement durch das Aufrufen einer angepassten ESQL-Funktion festgelegt wird, die den Wert ESQL NULL zurückgibt.
  • Wenn Sie fn:nilled für ein Nicht-XML-Element verwenden, z. B. für ein Nil-Wertelement in einer DFDL-Nachricht, gibt fn:nilled true zurück, wenn der Elementwert auf NULL gesetzt ist.
  • Wenn Sie eine Verschiebungstransformation (Move) verwenden, um ein XML-Eingabeelement mit definiertem xsi:nil-Attribut in ein XML-Ausgabeelement zu kopieren, das als auf null festlegbar (nillable) im Schema definiert ist, wid ein XML-Ausgabeelement mit definiertem xsi:nil-Attribut erzeugt.
  • Wenn Sie eine Verschiebungstransformation (Move) verwenden, um ein Eingabeelement, das einen Nullwert hat, in ein Ausgabeelement zu kopieren, wird ein Ausgabeelement mit einem leeren Wert gesetzt.
  • Wenn Sie eine Verschibeungstransformation (Move) verwenden, um ein Nicht-XML-Eingabeelement in ein XML-Ausgabeelement zu kopieren, das im Schema als auf null festlegbar (nillable) definiert ist, wird im XML-Ausgabeelement das xsi:nil-Attribut ebenfalls gesetzt.

ESQL-Unterstützung für Nullwerte

Mit ESQL können Sie den Wert eines Elements der Nachrichtenbaumstruktur auf NULL setzen:

SET OutputRoot.XMLNSC.myField VALUE = NULL;

Beachten Sie den Unterschied zu der Angabe SET OutputRoot.XMLNSC.myField = NULL;, bei der 'myField' aus der Nachrichtenbaumstruktur gelöscht werden würde.

Dasselbe Ergebnis kann auch bei Verwendung von Java erzielt werden.

XMLNSC-Parserunterstützung für Nullwerte

Die XML-Parser (XMLNSC, XMLNS und XML) erstellen in der Nachrichtenbaumstruktur normalerweise keine Nullwerte; ein leeres Element oder ein leerer Attributwert ergibt lediglich einen leeren Zeichenfolgewert in der Nachrichtenbaumstruktur.

Wenn die Auswertung aktiviert ist, erkennt und verarbeitet der XMLNSC-Parser das Attribut 'xsi:nil' überall dort im Eingabedokument, wo es vorkommt. Falls das Attribut 'xsi:nil' auf 'true' gesetzt ist und das Element nullfähig ist, erhält das übergeordnete Element des Attributs in der Nachrichtenbaumstruktur einen Nullwert.

Weitere Informationen zur XML-Parserunterstützung für leere Elemente und Nullwerte finden Sie in den Abschnitten Leere XMLNSC-Elemente und Nullwerte und Leere XMLNS-Elemente und Nullwerte.

MRM-Parserunterstützung für Nullwerte

Physisches XML-Format

Bei der Syntaxanalyse kann der MRM XML-Parser das Attribut 'xsi:nil' im XML-Eingabedokument erkennen und verarbeiten. Falls das Attribut 'xsi:nil' auf 'true' gesetzt ist und das Element nullfähig ist, erhält das übergeordnete Element des Attributs in der Nachrichtenbaumstruktur einen Nullwert.

Informationen zur Aktivierung der Unterstützung für das Attribut 'xsi:nil' im MRM-Parser finden Sie im Abschnitt Nachrichtengruppen: XML-Optionen zur Nullwertbehandlung.

Die folgenden Abschnitte enthalten weitere Informationen zur Handhabung von Nullwerten im MRM-Parser:

Alle physischen Formate

Der MRM-Parser kann einen Nullwert erkennen, der durch einen Wert außerhalb des gültigen Bereichs dargestellt wird. Dieser Nullwert muss im physischen Format der Nachrichtengruppe angegeben werden.

Bei der Syntaxanalyse überprüft der MRM-Parser den Nullwert für jedes Element in der Nachricht. Wenn der Wert im Bitstrom mit dem Nullwert in der Nachrichtengruppe übereinstimmt, setzt der MRM-Parser den Wert in der Nachrichtenbaumstruktur auf NULL.

Dieselbe Prüfung wird auch beim Umwandeln einer Nachrichtenbaumstruktur in einen Bitstrom durchgeführt. Wenn der Wert in der Nachrichtenbaumstruktur NULL ist, gibt der MRM-Parser den Nullwert aus der Nachrichtengruppe aus.

JSON-Parserunterstützung für Nullwerte

Das JSON-Format unterstützt NULL als JSON-Wertetyp.

Wenn eine JSON-Nachricht ein Objekt mit einem Nullwert enthält, setzt der JSON-Parser den Wert in der Nachrichtenbaumstruktur auf NULL.

Bei der Serialisierung eines Elements der Nachrichtenbaumstruktur, das einen Nullwert enthält, wird der JSON-Bitstrom als ein JSON-Objekt mit dem Wert NULL erstellt.

Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

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

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


KonzeptthemaKonzeptthema | Version 8.0.0.5 | ac70560_