IBM Books
(C) IBM Corp. 2003

DB2 Net Search Extender Verwaltung und Programmierung


Die Semantik von Locatorausdrücken (XPath)

Entsprechend dem XML-Datenmodel sind XML-Dokumente als Baumstrukturen mit folgenden Arten von Knoten zu betrachten:

Die Verbindungen zwischen diesen Knoten, d. h. die strukturbildenden Beziehungen, geben die unmittelbare Einschlussbeziehung im XML-Dokument wieder.

Der Stammknoten kann nur am Ausgangspunkt und nirgends sonst in der Baumstruktur auftreten. Er enthält als untergeordnete Elemente das Dokumentelement und optionale Kommentare und Verarbeitungsanweisungen.

Elementknoten können beliebige Arten von Knoten außer dem Stammknoten enthalten. Die anderen Arten von Knoten sind nur als Abschlussknoten in der Baumstruktur zulässig.

Es gibt drei Arten von Einschlussverbindungen: untergeordnetes Element ('Kind', engl. 'child'), Attribut ('attribute') und Namensbereich ('namespace'). Die Einschlussverbindungen 'attribute' und 'namespace' müssen zu Attribut- bzw. Namensbereichsknoten führen. Mit anderen Worten, um auf die untergeordneten Elemente eines Elementknotens (in der Graphentheorie) zuzugreifen, müssen Sie den Attributverbindungen ('attribute') folgen, um alle enthaltenen Attribute zu finden, den Namensbereichsverbindungen ('namespace'), um alle enthaltenen Namensbereichsdeklarationen zu finden, und untergeordneten Verbindungen ('child'), um enthaltene Elemente, Textknoten, Verarbeitungsanweisungen und Kommentare zu finden.

Ein XPath-Ausdruck muss in Bezug auf einen Kontextknoten interpretiert werden und bezeichnet eine Gruppe von Knoten. Als Net Search Extender-Selektormuster verwendet ist der Kontextknoten frei, das heißt, ein relatives Pfadmuster p (für 'Pattern') wird als //p interpretiert.

Die XPath-Selektormuster für Net Search Extender sind wie folgt definiert:

Anmerkung

Ein Knotentest (NodeTest) der Form 'NameTest' geht davon aus, dass der Knoten den Haupttyp der ausgewählten Achse hat. Das heißt, den Typ 'attribute' auf der Attributachse und den Typ 'child' auf der Kindachse. Aus diesem Grund kann 'NameTest' nicht zur Auswahl von Kommentar- oder Verarbeitungsanweisungsknoten, sondern nur für Kind- und Attributknoten verwendet werden. Darüber hinaus lassen die Muster die Auswahl eines beliebigen Knotentyps außer Namensbereichsknoten zu, da die Achsenkennung 'namespace' nicht zulässig ist.

Beispiele für Muster:

Die Syntax des Elements Locator ist wie folgt definiert:

Locator     ::= LocationPathPattern
           | Locator '|'  LocationPathPattern
 LocationPathPattern  ::= '/' RelativePathPattern ?
           | '//'? RelativePathPattern
 RelativePathPattern  ::= StepPattern
           | RelativePathPattern '/' StepPattern
           | RelativePathPattern '//' StepPattern
 StepPattern    ::= ChildOrAttributeAxisSpecifier NodeTest
 ChildOrAttributeAxisSpecifier ::=
           ('child' | 'attribute') '::'
           | '@'?
 NodeTest    ::= NameTest
           | NodeType '(' ')'
           | 'processing-instruction' '(' Literal ')'
 NameTest    ::= '*' | NCName ':' '*' | QName
 NodeType    ::= 'comment' | 'processing-instruction'

NCName und QName entsprechen der Definition in der XML-Namensempfehlung (XML Names Recommendation).


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]