Konzepte Content-Repräsentation & Markup-Sprachen

14.4 XSL Transformations (XSLT)

Zur Transformation von XML-Dokumenten stellt XSL die XSL Transformations (XSLT) genannte Transformationssprache zur Verfügung. Sie bietet Sprachmittel zur regelbasierten Manipulation einer hierarchischen Baumstruktur auf Basis des XPath-Datenmodells (vgl. Lerneinheit 11).

Eine Regel beschreibt dabei eine Abbildung von Knoten aus der Baumdarstellung des Quelldokuments (dem Quellbaum) auf eine zusammenhängende Baumstruktur als Teil eines Ergebnisdokuments. Ein Pattern (“Muster”) im Kopf der Regel dient zur Identifikation der Knoten, auf die die Regel angewendet werden soll. Der Regelkörper umfaßt beliebige syntaktisch korrekte XML-Konstrukte, die vom XSLT-Prozessor ausgewertet werden. Das Ergebnis dieser Operation stellt ein (eventuell leeres) Dokumentfragment dar, das zur Konstruktion des Ergebnisdokuments verwendet wird.

Abbildung 3 zeigt ein einfaches Dokumentfragment, wie es im Körper einer XSLT-Regel vorkommen könnte. Es enthält ein Element foo mit Mixed Content. Neben einer Zeichenkette umfaßt foo ein Element apply-templates aus dem XSLT-Namensraum (zur Vereinfachung des Beispiels wird die Bindung des Bezeichners xslt an den Namespace-Namen http://www.w3.org/1999/XSL/Transform hier nicht aufgeführt). Bei der Transformation werden der Text und das umgebende Element literal in das Ergebnisdokument übernommen, d.h. als Abbildungsvorschrift wird die Identitätsfunktion verwendet.

Das Element aus dem XSLT-Namensraum hingegen wird durch ein Dokumentfragment ersetzt, das erst durch Anwendung einer oder mehrerer anderer Regeln erzeugt wird. Die Ersetzung erfolgt immer mit Bezug auf einen Knoten in der Baumdarstellung des Quelldokuments, wie in der Abbildungsvorschrift für das neu eingefügte Element bar angedeutet. Abbildung 4 visualisiert dies in der Darstellung als Baum mit dem Element foo als Wurzel.

Abbildung 3. Ergebniserzeugung im Körper einer XSLT-Regel

Abbildung 4. Baumdarstellung der Regelersetzung

Die Vorschrift für die Auswertung eines Regelkörpers in XSLT läßt sich wie folgt zusammenfassen:

  • Elementknoten außerhalb des XSLT-Namensraums werden samt zugehöriger Attribut- und Namespace-Knoten literal in das Ergebnisdokument übernommen. Weitere Namespace-Knoten können hinzugefügt werden, wenn dies für die Erzeugung des Inhalts notwendig ist.

  • Elementknoten im Namensraum von XSLT stellen Primitiven der Transformationssprache dar. Die Auswertung durch den XSLT-Prozessor ergibt eine (evtl. leere) Liste von Knoten, die anstelle der XSLT-Primitive in das Ergebnisdokument übernommen werden.

  • Text- und Attributknoten werden literal in das Ergebnisdokument übernommen.

  • Processing-Instruction-Knoten werden ignoriert, sofern es sich nicht um Steueranweisungen für den XSLT-Prozessor handelt.

Kommentare (0)

Ihr Kommentar

Name