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.

XMLNSC: Namespacedeklarationen

Namespaces werden vom XMLNSC-Parser vollständig unterstützt.

Der XMLNSC-Parser setzt bei der Syntaxanalyse einer Nachricht in jedem von ihm erstellten Syntaxelement den korrekten Namespace und speichert die Namespacedeklarationen in der Nachrichtenbaumstruktur. Der Parser wählt bei der Ausgabe der Nachrichtenbaumstruktur anhand dieser Deklarationen die entsprechenden Präfixe aus.

Der XMLNSC-Parser verwendet für die Darstellung von Namespacedeklarationen die folgenden Feldtypen. Verwenden Sie bei der Erstellung von Namespacedeklarationen in der Nachrichtenbaumstruktur die in der folgenden Tabelle aufgeführten Feldtypkonstanten.

Tabelle 1. Spezifische Feldtypkonstanten
XML-Konstrukt XMLNSC-Feldtypkonstante Wert
Namespacedeklaration
XMLNSC.SingleNamespaceDecl
XMLNSC.DoubleNamespaceDecl
0x03000102
0x03000103
Verwenden Sie beim Zugriff auf Elemente und Attribute in der Nachrichtenbaumstruktur nicht die in der Tabelle oben aufgeführten Konstanten, sondern stattdessen die generische Feldtypkonstante, die beide Werte in der Tabelle oben abdeckt.
Tabelle 2. Generische Feldtypkonstanten
XML-Konstrukt XMLNSC-Feldtypkonstante Zweck
Namespacedeklaration XMLNSC.NamespaceDecl Gleicht Namespacedeklarationen sowohl in einfachen als auch in doppelten Anführungszeichen ab.

ESQL-Codebeispiele

Beispiel 1: Deklaration eines Präfixes, das nicht leer ist
DECLARE space1 NAMESPACE 'namespace1';
SET OutputRoot.XMLNSC.space1:root.(XMLNSC.NamespaceDecl)xmlns:ns1 = space1;
SET OutputRoot.XMLNSC.space1:root.space1:example = 'ABCDE';
Als Ergebnis wird die folgende XML-Nachricht erstellt:
<ns1:root xmlns:ns1="namespace1">
    <ns1:example>ABCDE</ns1:example>
</ns1:root>
Beachten Sie, dass die NAMESPACE-Konstante space1 nur eine lokale Variable in der ESQL ist; sie hat keine Auswirkung auf das Namespace-Präfix ns1, das durch das NameSpaceDecl-Element definiert wird und in der Ausgabenachricht enthalten ist.

Allerdings kann space1 verwendet werden, um NameSpaceDecl für ns1 zu initialisieren. Dadurch entfällt die Notwendigkeit, die Namespace-URI (in diesem Beispiel 'namespace1') zu duplizieren, was in der Praxis normalerweise eine längere Zeichenfolge ergibt.

Beispiel 2: Deklaration eines leeren Präfixes
DECLARE space1 NAMESPACE 'namespace1';
SET OutputRoot.XMLNSC.space1:root.(XMLNSC.NamespaceDecl)xmlns = space1;
SET OutputRoot.XMLNSC.space1:root.space1:example = 'ABCDE';
Als Ergebnis wird die folgende XML-Nachricht erstellt:
<root xmlns="namespace1">
    <example>ABCDE</example>
</root>
Beachten Sie, dass die Syntaxelemente root und example einen Namespace haben müssen, der nicht leer ist. Bei der standardmäßigen Namespacedeklaration befinden sich alle untergeordneten Elemente ohne Präfix im Namespace namespace1.
Beispiel 3: Beispiel für eine falsche Verwendung
DECLARE space1 NAMESPACE 'namespace1';
SET OutputRoot.XMLNSC.root.(XMLNSC.NamespaceDecl)xmlns = space1;
SET OutputRoot.XMLNSC.root.example = 'ABCDE';
Der XMLNSC-Parser gibt bei dem Versuch, die Nachrichtenbaumstruktur zu erstellen, die Nachricht BIP5014 aus. Die Elemente root und example befinden sich beide im Bereich der standardmäßigen Namespacedeklaration. Deshalb müssen diese Elemente in ESQL durch ein Namespacepräfix, das an den jeweiligen Namespace gebunden ist, qualifiziert werden.
Beispiel 4: Hinzufügung einer Namespacedeklaration mit einem Präfix
SET OutputRoot.(XMLNSC.DoubleNamespaceDecl)xmlns:ns2 = space1;
Dieses Beispiel einer SET-Anweisung erstellt eine Namespacedeklaration mit dem Namen ns2 im Namespace xmlns.
CREATE LASTCHILD OF OutputRoot IDENTITY (XMLNSC.DoubleNamespaceDecl)xmlns:ns2 VALUE space1;
CREATE LASTCHILD OF OutputRoot TYPE XMLNSC.DoubleNamespaceDecl NAMESPACE 'xmlns' NAME 'ns2' VALUE space1;
Diese Beispiele einer CREATE-Anweisung erstellen ebenfalls eine Namespacedeklaration mit dem Namen ns2 im Namespace xmlns.
Beachten Sie jedoch, dass das folgende Beispiel einer CREATE-Anweisung eine Namespacedeklaration mit dem Namen xmlns:ns2 im Standardnamespace erstellt:
CREATE LASTCHILD OF OutputRoot TYPE XMLNSC.DoubleNamespaceDecl NAME 'xmlns:ns2' VALUE space1;
Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

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

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


ReferenzthemaReferenzthema | Version 8.0.0.5 | ac67194_