Das XPath-Ausdruckserstellungsprogramm bietet qualifizierte Unterstützung für Namespaces.
Die Tabelle enthält als Teil der Knotenattributdaten die an die Laufzeitumgebung übergebenen implementierbaren Daten. Die Tabelle wird vom Knoten zur Änderung von Ausdrücken über die Präfix-zu-URI-Substitution verwendet. Die endgültigen Ausdrücke unterstützen den Namespaceabgleich, da sie beim Einsatz durch die ihnen zugeordnete Nachrichtenverarbeitungsengine, d. h. die XPath 1.0- oder ESQL-Laufzeitengine für eine Zielbaumstruktur verarbeitet werden.
Wenn Sie in einem Pfadfeld, auf das nur Lesezugriff oder aber Lese- und Schreibzugriff besteht, einen ESQL-Feldreferenzausdruck eingeben, bzw. wenn Sie in einem Pfadfeld, auf das nur Lesezugriff oder aber Lese- und Schreibzugriff besteht, oder in einem allgemeinen Ausdrucksfeld einen XPath 1.0-Pfadausdruck eingeben (allgemeine Ausdrücke können keine oder mehrere Pfadausdrücke enthalten), erkennt WebSphere Message Broker die Sprache anhand der verwendeten Syntax.
XPath ist die Standardsprache für Felder für allgemeine Ausdrücke, deren Gültigkeit geprüft wird, indem sichergestellt wird, dass sie der XPath 1.0-Grammatik entsprechen. Für Felder für Pfadausdrücke wird XPath vorausgesetzt, wenn der Ausdruck gültig ist und mit dem Zeichen $ beginnt.
Welche Sprache Sie verwenden können, ist durch den für das Eigenschaftsfeld eines Knotens verwendeten Eigenschafteneditor vorgegeben.
Namespacepräfixe werden in einem XPath- oder ESQL-Ausdruck verwendet, um die Anweisungen kürzer und leicht verständlicher zu machen, aber gleichzeitig weiterhin die Fähigkeit zu unterstützen, einen Elementnamensabgleich zu qualifizieren, indem auch die zugeordnete Namespace-URI abgeglichen wird.
<b:a xmlns:b='xyz'>
<!-- the namespace of elements 'a' and 'c' using prefix 'b' is xyz -->
<b:c>
<b:d xmlns:b='qrs'>
<!-- the namespace of elements 'd' and 'e' using prefix 'b' is now qrs -->
<b:e>100</b:e>
</b:d>
</b:c>
</b:a>
Beachten Sie, dass der Bereich einer Namespacedeklaration, bei dem ein Präfix deklariert wird, sich vom Anfang des Start-Tags, in dem es enthalten ist, bis zum Ende des entsprechenden End-Tags erstreckt. Dabei wird der Bereich der inneren Deklarationen mit demselben Namespacepräfix ausgeschlossen. Bei einem leeren Tag, bildet der Tag selbst den Bereich: >.
/b:a/b:c/b2:d/b2:e
Um zu verhindern, dass das automatisch generierte Präfix für die im Ausdrucksdialog erzeugte URI-Maske dasselbe Präfix (in diesem Fall b) überschreibt, wird dem inneren Präfix b ein numerischer Wert angehängt, um es vom äußeren Präfix b zu unterscheiden. Diese Strategie wird für jede Kollision von Präfixnamen wiederholt.
Root.b:a.b:c.b2:d.b2:e
Um Namespacepräfixe innerhalb von Ausdrücken zu unterstützen, wird im Dialog des XPath-Ausdruckserstellungsprogramms automatisch ein Präfix für eine Tabelle mit URI-Namespaceeinstellungen generiert (basierend auf dem Inhalt der importierten Schemadefinitionen, über die Ausdrücke generiert werden).
Ohne die Verwendung von Namespacepräfixen für URI-Abgleichsdaten in dieser Tabelle, wäre die Laufzeitumgebung gezwungen, auf eine weniger effiziente Methode zurückzugreifen, bei der übertragbare, aber ausführliche XPath-Ausdrücke angefordert würden, um Unterstützung für den Namespaceabgleich bereitzustellen.
/b:a/b:c/b2:d/b2:e
würde dann folgendes Format annehmen: /*[Namespace-URI()='xyz' und lokaler Name()='a']/*[Namespace-URI()='xyz'
und lokaler Name()='c']/*[Namespace-URI()='qrs' und
lokaler Name()='d']/*[Namespace-URI()='qrs' und lokaler Name()='e']