Der XML-Parser und Nullwerte

In diesem Abschnitt wird beschrieben, wie explizite Nullen vom XML-Parser gehandhabt werden.

Die XML-Domäne hat kein Konzept eines Nullwerts im Nachrichtenbitstrom. In einer XML-Nachricht gibt es keine Bytefolge, auf Grund derer der XML-Parser einen expliziten Nullwert in der Nachrichtenbaumstruktur erstellt. Selbst wenn der Parser kein Nachrichtenbaumstrukturfeld mit einem expliziten Nullwert erstellt, können Sie in einem Nachrichtenfluss ESQL-Code schreiben, der ein Feld dieses Formats erstellt.

Wenn der XML-Parser einen neuen Nachrichtenbitstrom auf Basis der Nachrichtenbaumstruktur erstellt, kann er auf explizite Nullwerte treffen. Daher muss er in der Lage sein, diese zu verarbeiten. In dieser Situation wird ein expliziter Nullwert als "keine zu schreibenden Zeichen" betrachtet, und das Feld wird als leere Tags erstellt.

In der XML-Domäne gibt es mehrere Werte, die dazu führen, dass in der XML-Ausgabenachricht leere XML-Tags geschrieben werden:

Wenn diese Felder als leere Tags in eine XML-Nachricht geschrieben wurden, kann bei einer späteren Syntaxanalyse der XML-Nachricht nicht mehr zwischen diesen drei Fällen unterschieden werden. Wenn leere Tags in XML syntaktisch analysiert werden, wird ein XML-Nachrichtenbaumstrukturfeld erstellt, das keinen Wert hat. Dieses unterscheidet sich von einem Nachrichtenbaumstrukturfeld, das einen expliziten Nullwert enthält, und einem Feld, das eine Zeichenfolge mit Null-Länge enthält.

Selbst wenn der XML-Parser diese drei unterschiedlichen Werte eines Nachrichtenbaumstrukturfelds im Nachrichtenbitstrom in dasselbe Ergebnis auflöst, können andere Operationen der Nachrichtenbaumstruktur zwischen diesen Feldern unterscheiden. Der XML-Parser erstellt zwar keine Felder, die explizite Nullwerte und Zeichenfolgen mit einer Null-Länge enthalten, Sie können jedoch Operationen in den Nachrichtenflüssen ausführen, die dazu in der Lage sind.

Wenn ein Nachrichtenfluss in der XML-Domäne Nachrichten verarbeitet, muss ESQL oder Java aus diesem Grund zwischen einem expliziten Nullwert, einer Nullfeldlängen-Zeichenfolge und einem Nachrichtenbaumstrukturfeld ohne Wert unterscheiden. Bei der ESQL-Codierung für die Abfrage des Elementwerts wird nicht einmal ein Feld, das den expliziten Nullwert enthält, als 'Null' angesehen.

Der XML-Schreibprozess kann diese Bedingung verarbeiten, andere Operationen innerhalb von ESQL behandeln dies jedoch als Nullwert. Die XML-Domäne hat kein Konzept eines Nullwerts, und der Parser erstellt niemals ein Feld, das einen expliziten Nullwert enthält. Da es sich bei der XML-Domäne um eine zeichenbasierte Domäne handelt, gibt sie bei der Abfrage eines Feldwerts das Ergebnis als Zeichenfeld zurück. Wenn Sie ein XML-Nachrichtenbaumstrukturfeld mit einem expliziten Nullwert erstellen, wird dieses für ESQL-Routinen, die den Wert des Nachrichtenbaumstrukturfelds abrufen, nicht als Nullwert angesehen.

Es wird die Zeichendarstellung des Feldinhalts zurückgegeben. Diese wäre in diesem Fall die Zeichenfolge 'NULL'. Wenn Sie beispielsweise solche Vergleiche mit IS NULL ausführen, ergeben diese niemals einen TRUE-Wert. Wenn Sie dieses Nachrichtenbaumstrukturfeld in eine andere Nachrichtenbaumstruktur kopieren, wird das Feld der Zielnachrichtenbaumstruktur mit der Zeichenfolge 'NULL' gefüllt.

Zugehörige Konzepte
Übersicht zu ESQL
Logische Baumstruktur
Korrelationsnamen
Zugehörige Tasks
Einen Nachrichtenfluss entwerfen
ESQL erstellen
Java-Code entwickeln
Inhalt des Hauptteils einer Nachricht bearbeiten
Nachrichten in der XML-Domäne bearbeiten
Zugehörige Verweise
Integrierte Knoten
XML-Konstrukte
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
ac00605_