Namespaces werden vom XMLNSC-Parser vollständig unterstützt.
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.
XML-Konstrukt | XMLNSC-Feldtypkonstante | Wert |
---|---|---|
Namespacedeklaration |
|
|
XML-Konstrukt | XMLNSC-Feldtypkonstante | Zweck |
---|---|---|
Namespacedeklaration | XMLNSC.NamespaceDecl | Gleicht Namespacedeklarationen sowohl in einfachen als auch in doppelten Anführungszeichen ab. |
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.
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. 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.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.CREATE LASTCHILD OF OutputRoot TYPE XMLNSC.DoubleNamespaceDecl NAME 'xmlns:ns2' VALUE space1;