XPath (XML Path Language)

XPath (XML Path Language) definiert eine Abfragesprache für die exakte Adressierung der einzelnen Einheiten in der Struktur eines XML-Dokumentes, um so auf Elemente, Textdaten, Attribute und andere Elemente zu verweisen. XPath ist Teil der Extensible Stylesheet Language (XSL), die für die Formatierung von XML-Dokumenten zuständig ist. XPath wurde bereits 1999 in einer Version 1.0 vom World Wide Web Consortium (W3C) standardisiert. Im Jahre 2007 erfolgte dann die Veröffentlichung der Version 2.0, deren wichtigste Erweiterung ein verändertes Datenmodell ist. Weiterhin werden u.a. eine erweiterte Funktionsbibliothek, neue Datentypen und Operatoren sowie zusätzliche Konstrukte für Ausdrücke unterstützt. Die Basis von XPath ist eine Baumstruktur, welche die in einem XML-Dokument enthaltenen Informationseinheiten abbildet. Der Baum liest sich wie in der Informatik üblich als ein Stammbaum - die Wurzel ist oben und nach unten hin verzweigt sich der Baum. XPath wird auch als Grundlage für weitere Standards wie XPointer, XQuery und XSLT verwendet.


Analysetool für XML-Dokumente

Um Teile eines XML-Dokumentes adressieren und analysieren zu können, wurde in Ergänzung zu XML mit XPath eine spezielle Abfragesprache definiert. Dabei ist XPath selbst keine XML-Anwendung sondern eine eigene Sprache deren Syntax die Bildung von Zeichenketten unterstützt, die dann wiederum zur Adressierung von Teilstrukturen in Dokumenten verwendet wird. Das von XPath verwendete Baummodell - der Knotenbaum - ähnelt dem DOM-Modell, ist jedoch mit diesem keinesfalls identisch. Der Knotenbaum definiert nur eine isolierte Sicht auf ein Dokument, und ist nicht wie bei dem DOM-Modell eine Menge von Objekten mit Methoden und Eigenschaften, die einer Anwendung zur Verfügung gestellt werden. Man spricht in diesem Zusammenhang auch von einem Baummodell mit verhaltenslosen Knoten.

XPath unterscheidet verschiedene Knotentypen unter anderem Wurzelknoten, Elementknoten, Attributknoten, Namensraumknoten, Verarbeitungsknoten (auch Steueranweisungsknoten), Kommentarknoten und Textknoten. Für die Zuordnung der Knoten zu einem Baum gibt es eine strenge Regelung. Dabei geht ein Baum von einem Wurzelknoten aus, der ein logisches Konstrukt ist und nicht dem Dokumentelement entspricht. Vom Wurzelknoten zweigen dann erst das Dokumentelement und eventuelle weitere Knoten für Verarbeitungen oder Kommentare ab. In Textknoten werden die textlichen Inhalte eines Dokumentes erfasst. Es werden dabei so viele Zeichen wie möglich in jedem Textknoten verwendet.

Als Ausdruck wird eine Instanz von XPath bezeichnet. Dabei ist ein wichtiger Ausdruck von XPath der sogenannte Lokalisierungspfad, der eine Knotenmenge relativ zu einem Kontextknoten auswählt. Wiederum besteht ein Lokalisierungspfad aus einzelnen Lokalisierungsschritten, durch die eine Knotenmenge aus einem Dokument ausgewählt werden kann, die selbst aus einem der o.g. Knoten bestehen kann. Sogenannte Achsen realisieren die Navigationswege für die Lokalisierung von Knoten. Durch Achsen können bestimmte Strukturen des Baums eines Dokuments, vom Kontextknoten ausgehend, ausgewählt werden.

Die Anordnung der Knoten wird auch als Dokumentenreihenfolge ( document order) bezeichnet. Die Reihenfolge bildet die Knoten genau so ab, wie das die dem Knoten entsprechende Zeichenkette im Dokument angeordnet ist. Bei der Suche in einem Dokument werden immer erst die Kinder und Kindeskinder des aktuellen Knotens abgearbeitet und nicht die Knoten derselben Ebene. Das bezeichnet man auch als Tiefensuche. Eine mögliche Dokumentenreihenfolge verdeutlicht die Abbildung.

Dokumentenreihenfolge 
   in einem Knotenbaum

Dokumentenreihenfolge in einem Knotenbaum

Die Erzeugung eines Dokumentes aus einem Baum wird auch als Serialisierung bezeichnet, umgekehrt wenn ein Baum aus einem Dokument erzeugt wird, spricht man von Deserialisierung. Wenn ein geordneter Baum serialisiert wird, bedeutet das praktisch die Ablage der Knoten in der beschriebenen Reihenfolge in einem Dokument.

Mit XPath 2.0 wurden die Funktionalität und das Datenmodell von XPath deutlich erweitert. Neben dem erläuterten Baummodell werden auch sogenannte atomare Werte berücksichtigt. Das sind Daten unterschiedlichen Typs wie Zeichenfolgen, Werte oder Zahlen, logische Werte, Namen, URIs oder auch Datums- oder Zeitangaben. All diese Werte haben keinerlei Beziehung zu einem Element oder Attribut des XML-Dokuments. Das Datenmodell beinhaltet in der Version 2.0 auch Sequenzen oder Listen, die aber nicht verschachtelt werden dürfen. Da nunmehr damit drei Bereiche des Datenmodells abzudecken sind, haben sich auch die dahingehend die entsprechenden Funktionen und diesbezügliche Operatoren erweitert.

http://www.w3.org/TR/xpath

Informationen zum Artikel
Deutsch:
Englisch: XML Path Language - XPath
Veröffentlicht: 28.10.2013
Wörter: 661
Tags: #Web-Software
Links: Adressierung, Attribut, Baumstruktur, Beleg, Daten