Infos Home | Impressum | Original Artikel & Autoren Liste


XSL Transformation

XSLT ist die Abkürzung für XSL Transformation; XSL wiederum bedeutet Extensible Stylesheet Language.

XSLT ist eine u.a. aus DSSSL hervorgegangene deklarative, funktional-applikative XML-basierte Programmiersprache zur Transformation von XML-Dokumenten im Kontext ihrer logischen Baumstruktur. Entwickelt wurde XSLT ursprünglich von James Clark (XSLT 1.0, XSLT 1.1), für die derzeitige Weiterentwicklung ist Michael Kay verantwortlich (XSLT 2.0).

Ein in XSLT verfasstes Programm heißt XSLT-Stylesheet oder Transformation. Ein Programm, das XSLT-Stylesheets verarbeiten kann, heißt XSLT-Prozessor. XSLT-Prozessoren sind auch in den meisten Web-Browsern (Internet Explorer ab Version 5 (?), Mozilla) integriert.

XML-Namespace für XSLT: www.w3.org/1999/XSL/Transform
/> Übliches Namespace-Prefix für XSLT: xsl

XSLT ist nicht mit XSL-FO zu verwechseln.

Inhalt
1 Geschichte
2 Funktionsweise
3 Anwendungsgebiet
4 Anwendungsbeispiele
5 Alternativen zu XSLT
6 Beispiele
7 XSLT-Prozessoren
8
9

Geschichte

Ursprünglich sollte mit XSL eine DSSSL-artige Sprache in XML-Syntax entstehen. Schnell war jedoch klar, dass eine solche Sprache eigentlich aus drei interagierenden aber unabhängig voneinander einsetzbaren Bestandteilen besteht:

Funktionsweise

Die Sprache XSLT beschreibt Programme, genannt Transformation oder Stylesheet, die Daten aus
XML-Dokumenten in andere (meist) XML-Dokumente zu verwandeln.

Dazu werden die XML-Dokumente als logischer Baum (Baumstruktur, die kleinsten Bestandteile des Baums heißen Knoten) betrachtet: Die Quell-Bäume der zu transformierenden Dokumente und durch die Transformation die entstehenden Ziel-Bäume der zu erzeugenden Dokumente (in XSLT vor 2.0 kann nur ein Dokument erzeugt werden, ab XSLT 2.0 mehrere).

Eine Transformation besteht dazu aus einer Reihe von einzelnen Transformationsregeln, genannt Templates. Eine Template besitzt eine auf XPath basierende Pattern, die beschreibt, für welche Knoten sie gilt, und einen Inhalt, der bestimmt, wie die Template ihren Teil des Zielbaums erzeugt.

In einem XSLT-Dokument kommen also an Sprachen und XML-basierten Technologien mindestens vor:

Sowie ab XSLT 2.0:

Anwendungsgebiet

Die Sprache XSLT beschreibt Programme, genannt Transformation oder XSLT-Stylesheet, um Daten aus
XML-Dokumenten in andere (meist) XML-Dokumente zu verwandeln.

Dafür gibt es zwei Hauptanwendungsgebiete.

POP (Presentation Oriented Publishing) bezeichnet die Transformation zum Zwecke der Darstellung. Mit unterschiedlichen Stylesheets können die Daten in XHTML, Formatting Objects, SVG, SMIL, DocBook und viele andere Formate umgewandelt werden. Das ursprüngliche semantische Markup wird dabei durch ein Stil-bezogenes Markup ersetzt.

MOM (Message Oriented Middleware) bezeichnet die Transformation zum Zwecke des Datenaustausches. Da XML lediglich ein Sprachkonzept zur Entwicklung von Sprachen bildet, genügt es nicht, dass zwei Systeme (z.B. Programme) XML beherrschen, um gegenseitig Daten austauschen zu können. Sie müssen die gleiche XML-basierte Sprache verwenden. In dem häufigen Fall, wo die Systeme nicht die gleiche XML-basierte Sprache verwenden, wird gerne XSLT eingesetzt, um mit Hilfe von Transformationen Übersetzer von der einen Sprache in die andere zu entwickeln.

Anwendungsbeispiele

Derzeit wird XSLT wohl am häufigsten dazu verwendet, einfach XML-Dokumente durch Transformation nach mit CSS versehenem XHTML in Webbrowsern darstellbar zu machen.

Alternativen zu XSLT

DSSSL

Eine mögliche Alternative zu XSLT ist DSSSL, das man auch als Vorläufer von XSLT betrachten kann. Der wohl größte Vorteil von XSLT gegenüber DSSSL ist seine XML-basierte Syntax. Somit kann jeder XML-Editor automatisch auch für XSLT eingesetzt werden, außerdem gelten die Syntax-Regeln von XML (Wohl-geformtheit, Gültigkeit) damit auch für XSLT.

Generische Programmiersprachen

Eine grundsätzliche Alternative zu XSLT besteht in der Möglichkeit, solche Transformationen in jeder beliebigen Programmiersprache (z.B. Java, C++ oder Perl) abzufassen. XSLT kann dabei jedoch bei Einhaltung bestimmter Voraussetzungen ein gewisses Garant für wohl-geformte und unter umständen sogar gültige Zieldokumente gewähren, außerdem ist die Entwicklung einer Transformation in XSLT in der Regel mit erheblich weniger Aufwand verbunden als die Entwicklung einer Transformation in einer Programmiersprache.

CSS

Häufig wird CSS als Alternative zu XSLT genannt. CSS ist jedoch nicht wirklich eine Alternative zu XSLT. CSS beschreibt lediglich, wie die Bestandteile eines Baums (akustisch oder visuell) zu formatieren sind, während XSLT den Baum radikal ändern kann. So kann man mit XSLT z.B. automatisch Inhaltsverzeichnisse, Indizes, Link-Listen und ähnliches erstellen, nicht jedoch mit CSS.

Beispiele

Inhaltsverzeichnis erzeugen

Folgendes XSLT erzeugt ein einfaches Inhaltsverzeichnis für eine XHTML-Seite mit Überschriften:

<xsl:transform
   version="1.0"
   xmlns:xsl="www.w3.org/1999/XSL/Transform"
   xmlns:html="www.w3.org/1999/xhtml"
   xmlns="www.w3.org/1999/xhtml"
   exclude-result-prefixes="html"
>

   <xsl:output
       method="xml"
       doctype-system="www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
       doctype-public="-//W3C//DTD XHTML 1.1//EN"
   />

<xsl:template match="html:body"> <xsl:copy> <xsl:apply-templates select="@*"/> <h1><xsl:apply-templates select="//html:title//text()" /></h1> <h2>Inhaltsverzeichnis</h2> <ul> <li><a href="#toc">Inhaltsverzeichnis</a></li> <xsl:for-each select=".//html:h2"> <li> <xsl:if test="not(@id)"> <xsl:message>Achtung: Kann ohne Id keinen Link erzeugen</xsl:message> </xsl:if> <a href="#{@id}"><xsl:apply-templates/></a> </li> </xsl:for-each> </ul> <xsl:apply-templates/> </xsl:copy> </xsl:template>

<xsl:template match="node()|@*"> <xsl:copy> <xsl:apply-templates select="@*"/> <xsl:apply-templates/> </xsl:copy> </xsl:template>

</xsl:transform>

Siehe auch: XML, XSL-FO, XPath

XSLT-Prozessoren



Der Ursprungsartikel stammt von der deutschsprachigen Wiki pedia (siehe oben: "Original Artikel & Autoren Liste").
Der Text steht unter der GNU Freie Dokumentation Lizenz.



Webtipps: Berlin Infos