Statischer Kontext

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

Der statische Kontext wird im Vorfeld einer Verarbeitung bestimmt. Bei XPath-Ausdrücken spricht man hier auch von statischer Analyse. Im Zuge einer stati­schen Analyse können in einem XPath-Ausdruck Fehler aufgefunden werden, die deshalb als statische Fehler (static errors) bezeichnet werden. Tritt ein stati­scher Fehler auf, so wird ein XSLT-Prozessor die Verarbeitung eines Stylesheets zurückweisen.

Alle Komponenten des statischen Kontextes werden als global bezeichnet, gel­ten also unverändert für den ganzen Ablauf der Verarbeitung.

Die Komponenten des statischen Kontextes

Zum statischen Kontext zählen die verfügbaren Informationen über die wäh­rend der Verarbeitung gültigen Namensräume (in-scope namespaces), zu denen sowohl die an Präfixe gebundenen als auch der Default-Namensraum oder der an Funktionen gebundene Namensraum gehört. Diese Information ist erforder­lich, um während der Verarbeitung QNames expandieren zu können.

Auch Schema-Informationen gehören zum statischen Kontext. Dies betrifft sowohl die Deklarationen (in-scope element declarations, in-scope attribute decla­rations) als auch Schema- und Typdefinitionen (in-scope schema definitions, in-scope type definitions).

Innerhalb des statischen Kontexts werden auch die Variablendeklarationen und auf diese verweisende Referenzen berücksichtigt (in-scope variables). Eine Refe­renz, die außerhalb ihres Gültigkeitsbereiches auf eine Variable erfolgt, gilt des­halb als statischer Fehler. Dies auch dann, wenn diese Referenz in einem XPath-Ausdruck erfolgt, der zur Laufzeit nicht ausgewertet würde. Variablen des sta­tischen Kontexts können global für ein Stylesheet oder lokal für ein Template definiert sein.

In XPath-Ausdrücken deklarierte Variablen sind dynamischer Kontext:
Eine Ausnahme sind solche Variablen, die im Rahmen von for-Aus­drücken innerhalb eines XPath-Ausdrucks deklariert werden. Diese Vari­ablen zählen zum dynamischen Kontext.

Die innerhalb von XPath-Ausdrücken aufrufbaren Funktionen, genauer die Informationen über ihre Namen und Anzahl sowie Typ ihrer Argumente, gehö­ren ebenfalls zum statischen Kontext (in-scope functions). Zu den Funktionen zählen auch die Konstruktorfunktionen für die gültigen Typen.

Teil des statischen Kontext sind ebenso die sogenannten Collections. Unter diesen versteht man Listen externer Dokumente und Sammlungen, die der Applikation bekannt sind (statically-known documents bzw. statically-known collections). Es kann sich hierbei um eine Liste von URIs handeln, die verfügbare Dokumente bezeichnen.

Die Dokumente bzw. die Sammlungen müssen dabei nicht notwendigerweise auch zur Laufzeit zur Verfügung stehen. Die Liste der tatsächlich verfügbaren Dokumente wird folglich auch dem dynami­schen Kontext zugeschlagen.

Weiterhin wird der Basis-URI innerhalb des statischen Kontexts festgelegt. Er dient zur Auflösung relativer URIs während der Verarbeitung, beispielsweise mittels der Funktion fn:resolve-uri().

Die letzte Komponente des statischen Kontexts betrifft die zu Stringvergleichen herangezogenen Collations. Eine Collation enthält einen Regelsatz, der beim Vergleich zweier Strings miteinander bzw. bei der Sortierung mehrerer Strings benötigt wird. Festgelegt wird in der Collation beispielsweise die Reihenfolge von Buchstaben im Alphabet, z.B. ob 'ä' als 'ae' gewertet oder als eigener Buch­stabe nach z eingeordnet wird, oder für Stringvergleiche die Gleichsetzung von 'ß' und 'ss'. Zu dieser Komponente zählen alle Collations, die entsprechenden Funktionen für den namentlichen Aufruf zur Verfügung stehen (in-scope collati­ons), und die ansonsten verwendete Default-Collation. (Ist keine Default-Collation in der Systemumgebung definiert, so sind Anwendungen gehalten, gemäß einer standardisierten Unicode-Collation vorzugehen, der Unicode Codepoint Collation.)

Das eben genannte betrifft XPath im allgemeinen. Im Zusammenhang mit einer XSLT-Transformation ist der statische Kontext von XPath noch um weitere Komponenten erweitert, die von XSLT-Funktionen genutzt werden. Hierzu gehören:

  • der Satz der vereinbarten Schlüsseldefinitionen (set of keys)
  • der Satz der deklarierten Zahlenformatierungen
  • der Satz der Systemeigenschaften (system properties)
  • die Liste der verfügbaren Instruktionen
  • die Liste der Medientypen, die von der document()-Funktion genutzt werden
  • die Sammlung der verfügbaren nicht geparsten Textressourcen (unparsed text resources)

   

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