Kurzübersicht über XSLT 2.0

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

In der Spezifikation zu XSLT 2.0 sind weiterhin alle von XSLT 1.0 bekannten Elemente enthalten, zum Teil mit erweiterten Möglichkeiten. Zusätzlich wur­den eine Reihe von Elementen hinzugefügt, die von entsprechend aktuellen XSLT-Prozessoren genutzt werden können. Hierfür ist das version-Attribut des Stylesheet-Elements auf "2.0" zu setzen. Auch für einzelne Deklarationen oder Instruktionen kann ein version-Attribut gesetzt werden. Die Attributsätze bzw. teilweise auch die Inhaltsmodelle der bestehenden Elemente und Instruk­tionen wurden in XSTL 2.0 erweitert.

Hinzugekommen ist ein für alle Elemente zulässiger Standard-Attributsatz, der im Wesentlichen Namensraum- und Verarbeitungs­aspekte berührt, und zu dem zusätzlich das oben bereits angesprochene version-Attribut gehört. Auf diese und weitere elementspezifische Erweiterungen wird in Folge und in der alphabetischen Referenz aller XSLT-Elemente im Einzelnen hingewiesen.

Es gibt in XSLT 2.0 insgesamt vierzehn neue Elemente; drei Toplevel-Ele­mente, acht Instruktionen und drei Sub-Instruktionen, was die Zahl der XSLT-Elemente auf insgesamt 49 anwachsen lässt.

Achtung – XSLT 2.0 baut nicht auf XSLT 1.1 auf!
Das in der ursprünglich geplanten, jedoch später zurückgezogenen Version XSLT 1.1 vorgesehene neue Element xsl:script entfällt in XSLT 2.0 wie­der. Die Funktionalität der XSLT 1.1-Instruktion xsl:document wird in XSLT 2.0 durch xsl:result-document abgedeckt. Die namensgleiche Instruktion xsl:document von XSLT 2.0 dient der Validierung nicht serialisierter Doku­mentbäume, ist also mit derjenigen aus XSLT 1.1 nicht identisch.

Neue Toplevel-Elemente in XSLT 2.0

XSLT 2.0 fügt den zwölf von XSLT 1.0 übernommenen Toplevel-Elementen drei weitere hinzu:

xsl:character-map

xsl:import-schema

xsl:function

Tabelle: Neue Toplevel-Elemente in XSLT 2.0.

Der erste Neuzugang ist xsl:character-map, das zur Deklaration benannter Character-Mappings dient. Mit Hilfe des Elements kann eine Ersetzung bestimmter Zeichen durch je einen festzulegenden String während der Serialisierung des Ergebnisdokuments definiert werden. Ergänzend hierzu wird die Instruktion xsl:output-character eingeführt.

Als zweites neues Toplevel-Element erlaubt xsl:function die Deklaration von Funktionen und ihrer Rückgabewerte durch den Nutzer. Da diese Funktionen an das ihre Definition enthaltende Stylesheet und dessen Laufzeit gebunden sind, werden sie auch als »Stylesheet-Funktionen« bezeichnet.

Ebenfalls hinzugefügt wurde die Deklaration xsl:import-schema, die sich, wie der Name andeutet, mit der Einbindung von XML Schema-Dateien in den Verarbeitungsprozess befasst. Hiermit ergibt sich die Möglichkeit, beispielsweise nutzerdefinierte Datentypen bei der XSLT-Verarbeitung zu berücksichtigen.

Neue Instruktionen und Sub-Instruktionen in XSLT 2.0

Den 17 aus XSLT 1.0 bekannten Instruktionen fügt XSLT 2.0 acht weitere hinzu:

xsl:analyze-string

xsl:next-match

xsl:document

xsl:perform-sort

xsl:for-each-group

xsl:result-document

xsl:namespace

xsl:sequence

Tabelle: Neue Instruktionen in XSLT 2.0.

In diesem Zusammenhang sind auch drei weitere Sub-Instruktionen definiert:

xsl:matching-substring

xsl:non-matching-substring

xsl:output-character

Tabelle: Neue Sub-Instruktionen in XSLT 2.0.

Auf verschiedene, unter XSLT 1.0 nur schwer oder gar nicht lösbare Pro­blemstellungen sind in XSLT 2.0 Antworten in Form neuer Instruktionen gefunden worden. So kann mit xsl:analyze-string eine Zeichenkettenüber­prüfung mittels regulärer Ausdrücke vorgenommen werden. Als untergeord­nete Sub-Instruktionen hierzu dienen xsl:matching-substring und xsl:non-matching-substring.

Die Instruktion xsl:document ermöglicht die Erzeugung eines Dokumentkno­tens in Form eines temporären Baums bei gleichzeitig möglicher Validierung. Diese Instruktion ist ergänzend zur ebenfalls neuen Instruktion xsl:result-document (siehe unten) zu sehen, die nicht mit temporären Bäumen arbeitet.

Die neue Instruktion xsl:for-each-group erleichtert die Gruppierung von Ausgabeknoten. In diesem Zusammenhang sind die zwei XSLT-Funktionen current-group() und current-grouping-key() definiert.

Die Instruktion xsl:perform-sort gibt sortierte Sequenzen zurück. Hierfür gruppiert sie mehrere xsl:sort-Anweisungen und bringt diese gemeinsam als Sortiervorschrift zur Anwendung.

Die vorhandenen Möglichkeiten zur Generierung von Nodes werden komplet­tiert durch xsl:namespace, mit der Namensraumknoten erzeugt werden kön­nen.

Die Instruktion xsl:next-match ermöglicht – vergleichbar mit xsl:apply-imports – die zusätzliche Aktivierung derjenigen Template-Regeln, die das zur aktuellen Regel »prioritätsnächste« match-Pattern für den aktuell verarbeiteten Knoten besitzen.

In Verbindung mit der oben erwähnten Toplevel-Deklaration xsl:character-map dient die Sub-Instruktion xsl:output-character im Rahmen einer Sammlung von Character-Mapping-Anweisungen der Zuordnung eines Ersetzungsstrings zu einem zu ersetzenden Zeichen.

Das bisher nur unter Verwendung von prozessorspezifischen Erweiterungs­instruktionen darstellbare Erzeugen von mehreren Ausgabedokumenten im Zuge eines Verarbeitungsdurchlaufs fließt in Form von xsl:result-document in den neuen Standard ein. Die Deklaration xsl:output wurde zwecks Zuorden­barkeit zu dieser Instruktion um ein name-Attribut ergänzt.

Die Instruktion xsl:sequence ermöglicht die Generierung einer Sequenz aus beliebigen Typen, die beispielsweise einer bestehenden Sequenz hinzugefügt werden kann. Sie stellt eine Alternative zur Konstruktion von Sequenzen mit­tels XPath 2.0-Ausdrücken dar. Innerhalb von Stylesheetfunktionen, wie sie durch xsl:function definiert werden, dient die Instruktion zur Erzeugung der Ergebnissequenz.

Die Abbildung verdeutlicht die Zusammenhänge und die Hierarchie der XSLT 2.0-Elemente:

Übersicht über die XSLT-Elemente von XSLT 2.0

Abbildung: Übersicht über die XSLT-Elemente von XSLT 2.0.

   

<< zurück vor >>
Tipp der data2type-Redaktion:
Zum Thema XSLT 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