Innerer und äußerer Fokus in Pfad- und Predicate-Ausdrücken

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

Ein wichtiges Konzept in Bezug auf den Fokus eines XPath-Ausdrucks ist die gelegentliche Unterscheidung zwischen »innerem« und »äußerem« Fokus im Laufe der Auswertung des Ausdruckes bzw. seiner Teilausdrücke. Betroffen sind zusammengesetzte Pfadausdrücke und Predicate-Ausdrücke.

Ein zusammengesetzter Pfadausdruck (Pfadausdruck aus mindestens zwei Schritten) der Form

ausdruck_1/ausdruck_2

oder ein Predicate-Ausdruck (Schritt mit Filterbedingung) der Form

ausdruck_1[ausdruck_2]

besitzt einen Fokus für die Auswertung jedes seiner Teilausdrücke ausdruck_1 und ausdruck_2.

Die Auswertung erfolgt von links nach rechts. Es wird also zunächst ausdruck_1 ausgewertet und eine Sequenz, die Primärsequenz, erzeugt. Diese wird nachfolgend zur aktuellen Sequenz. Die Auswertung von ausdruck_1 erfolgt bezogen auf den zu diesem Zeitpunkt aktuellen Kontext, der deshalb als äußerer Fokus bezeichnet wird.

Die Items der durch ausdruck_1 erzeugten Primärsequenz werden nacheinander als jeweils wechselnder Bezugspunkt für die folgende Auswertung von ausdruck_2 verwendet. Dessen Auswertung erfolgt also einmal für jedes Item der Primär­sequenz. Dieser wechselnde Bezugskontext wird als innerer Fokus bezeichnet. Der innere Fokus ist temporär. Er existiert nur während der Auswertung des zweiten Ausdrucks. Sobald die Auswertung von ausdruck_2 beendet ist, gilt wieder der Kontextknoten, die Kontextposition und die Kontextgröße des äußeren Fokus.

   

<< 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