Pfadausdrücke: Achsen

(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers, Kapitel 4.)

Die Bewegungsrichtungen entlang der Zweige im Zuge der Navigation in einem Dokumentbaum folgen so genannten »Achsen«. Durch einen Schritt inner­halb eines Pfadausdrucks kann entsprechend nur eine Teilmenge derjenigen Knotenmenge ausgewählt werden, die auf der Achse des betreffenden Schritts liegt.

Die Anzahl der unterstützten Achsen ist in XPath und XQuery verschieden – XQuery unterstützt die in XPath gültigen Achsen nur partiell; von den sogenannten rückwärtsgewandten Achsen kann nur die »Parent«-Achse in XQuery verwendet werden. Speziell die Namensraum-Achse wird von XQuery grund­sätzlich nicht unterstützt – in XPath hängt dies von der betrachteten XPath-Ver­sion ab: In XPath 1.0 wird die Namensraum-Achse voll unterstützt, in XPath 2.0 gilt sie als abgeschafft (deprecated), ihre weitere Unterstützung ist Anwendun­gen jedoch freigestellt.

Die Richtungen der Achsen

Abhängig von ihrer »Blickrichtung« unterteilt man die Achsen in vorwärts gerichtete und rückwärts gerichtete Achsen. Diejenigen Achsen, die ausgehend vom Kontextknoten in Dokumentreihenfolge arbeiten, bezeichnet man als vorwärts gerichtet (for­ward axes). Arbeiten sie entgegengesetzt zur Dokumentreihenfolge, gehören sie zu den rückwärts gerichteten Achsen (reverse axes). Die Blickrichtung einer Achse wird als ihre Vorzugsrich­tung bezeichnet.

Die Richtung der Achse wirkt sich auf die Bewertung der Kontextposition eines Items innerhalb der durch den Achsenschritt ausgewählten Sequenz aus.

Vorzugsrichtung und Sequenzordnung (Item-Nummerierung):
Wird die Sequenz auf einer vorwärts gerichteten Achse zusammengestellt, so erfolgt die Nummerierung der in ihr enthaltenen Knoten in Dokument­reihenfolge, ansonsten entge­gengesetzt dazu.
Das erste Item besitzt – wie in XPath üblich – die Position »1«. Ist der Doku­mentknoten selbst in einer Ergebnissequenz enthalten, so stellt er für eine vor­wärts gewandte Achse stets das erste, für eine rückwärts gewandte Achse stets das letzte Item der Sequenz dar.

Vorwärts gerichtete Achsen

Eine Achse, die entweder nur den Kontextknoten selbst, oder den Kontextknoten und in Dokumentreihenfolge nach diesem stehende Knoten erfasst, gilt als vor­wärts gerichtet.

Folgende Achsen sind vorwärts gerichtet:

  • Self-Achse
  • Child-Achse
  • Descendant-Achse
  • Descendant-Or-Self-Achse
  • Following-Achse
  • Following-Sibling-Achse

Auf diesen Achsen befinden sich in erster Linie die Elementknoten, die für diese Ach­sen auch als »vorherrschender Knotentyp« bezeichnet werden, aber gleichfalls Kommentar- und Processing-Instruction-Knoten sowie die Textknoten des Dokuments.

Nicht über die eben genannten Achsen zugänglich sind Attribut- und Namensraumknoten. Für beide Knotentypen existieren eigene Achsen, auf denen diese vorherrschender Knotentyp sind.

Beide Achsen gelten ebenfalls als vorwärts gerichtet:

  • Attribute-Achse
  • Namespace-Achse

Rückwärts gerichtete Achsen

Enthält eine Achse nur in Dokumentreihenfolge vor dem Kontextknoten stehende Knoten (gegebenenfalls auch zusätzlich den Kontextknoten. Zur Erinnerung: Die Self-Achse, die einzig den Kontextknoten beinhaltet, ist vorwärts gerichtet!), so bezeichnet man sie als rückwärts gerichtet. Die Vorzugsrichtung dieser Achsen liegt dementsprechend entgegengesetzt zur Dokumentreihenfolge.

Zu den rückwärts gerichteten Achsen zählen:

  • Parent-Achse
  • Ancestor-Achse
  • Preceding-Sibling-Achse
  • Preceding-Achse
  • Ancestor-Or-Self-Achse

Vollständige Abdeckung des Dokumentbaums

Das gesamte Baumdiagramm, soweit es die hierachisch organisierten Knoten­typen betrifft, wird durch die Summe aus den vorwärts gerichtenen Achsen »Self«, »Descendant« und »Following« sowie den rückwärts gerichteten Achsen »Ancestor« und »Preceding« vollständig abgedeckt. Diese fünf Achsen überlap­pen sich nicht und beinhalten zusammen alle Knoten des Dokuments (mit Ausnahme von Attribut- und Namensraumknoten, die nicht Teil dieser Hierarchie sind).

In diesem und den folgenden Diagrammen ist der Dokumentknoten wegen sei­ner Sonderrolle als gestrichelter Kreis dargestellt. Der hier willkürlich festge­legte Kontextknoten ist hellgrau hinterlegt.

Vollständige Abdeckung des Dokumentbaums durch nur fünf Achsen

Abbildung: Vollständige Abdeckung des Dokumentbaums durch nur fünf Achsen.

   

   

<< zurück vor >>
Tipp der data2type-Redaktion:
Zum Thema XPath bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © Galileo Press, Bonn 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSLT 2.0 & XPath 2.0 ― Das umfassende Handbuch" denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Galileo Press, Rheinwerkallee 4, 53227 Bonn