Namespaces in XML-Nachrichten werden von den XMLNSC- und XMLNS-Parsern unterstützt. Der XML-Parser unterstützt keine Namespaces.
Parsing
Die XMLNS- und XMLNSC-Parser können korrekt formatierte XML-Dokumente syntaktisch analysieren, unabhängig davon, ob im Dokument Namespaces enthalten sind. Wenn Elemente oder Attribute über Namespaces verfügen, werden diese Namespaces für die Elemente und Attribute in der Nachrichtenbaumstruktur verwendet. Zuordnungen von Namespacepräfixen werden ebenfalls in der Nachrichtenbaumstruktur ausgeführt und für die Serialisierung der Nachrichtenbaumstruktur zurück zu XML verwendet.
- Wenn ein Element oder Attribut in der Eingabe-XML über einen Namespace verfügt, verfügt auch der entsprechende Knoten in der Nachrichtenbaumstruktur über diesen Namespace.
- Wenn ein Element eine Namespacedeklaration (ein xmlns-Attribut) enthält, wird ein untergeordnetes Element, das die zugehörige Präfix- und Namespace-URI enthält, in der Nachrichtenbaumstruktur erstellt.
Während die Nachricht den Nachrichtenfluss passiert, können Namespaces und Namespacezuordnungen unter Verwendung von ESQL oder anderer Umsetzungstechnologien, die im Nachrichtenbroker zur Verfügung stehen, modifiziert werden.
Schreiben
Namespaces und ihre Präfixe werden bei der Syntaxanalyse in der Nachrichtenbaumstruktur beibehalten und werden bei der Umwandlung einer Nachrichtenbaumstruktur in einen XML-Bitstrom durch die
XMLNS- und XMLNSC-Parser verwendet.
- Bei der Serialisierung einer Nachrichtenbaumstruktur sucht der Parser nach Namespacedeklarationen für die jeweiligen XML-Elemente. Wenn Deklarationen gefunden werden, werden diese vom Parser zur Auswahl der Namespacepräfixe im Ausgabedokument verwendet.
- Wenn ein Element in der Nachrichtenbaumstruktur über einen Namespace verfügt, jedoch keine gültige Namespacedeklaration für die Namespace-URI vorhanden ist, wird automatisch ein gültiges Namespacepräfix erstellt und in der Ausgabe-XML verwendet. Automatisch erstellte Präfixe haben folgendes Format: NS1, NS2 usw.
Tipp: Wenn es zu einem Element in der Nachrichtenbaumstruktur ein untergeordnetes Element gibt, bei dem es sich um eine Deklaration 'Standard-Namespace'
handelt, muss jedes untergeordnete Element dieses Elements (sei es ein XML-Element oder ein XML-Attribut mit beliebiger Verschachtelungstiefe) über einen Namespace verfügen. Wenn diese Regel nicht umgesetzt wird, kann der Nachrichtenbroker keine korrekte XML-Ausgabe für die Nachrichtenbaumstruktur erstellen.