© aller Texte: msw 1999-2008

Was ist XSL und XSLT?


Die XML-Daten müssen immer in einer bestimmten Form ausgegeben werden. XML selbst kümmert sich nicht um die Anzeige der Daten. Zur Ausgabe von XML-Daten können zwei "Sprachen" eingesetzt werden:

1.Cascading Style Sheets CSS

2. Extensible Stylesheet Language XSL


Die CSS sind Ihnen von HTML 4.0 bekannt. Diese können genutzt werden, um XML-Daten anzeigen zu lassen. Der Internet Explorer 5/5.5/6, Netscape 6 und Opera 4/5 unterstützen diese Möglichkeit. Jedoch sind die CSS in der Ausgabe beschränkt und es ist eine flexiblere Sparche nötig, um die Ausgabe im Browser gezielter zu steuern.


An diesem Punkt greift XSL an. XSL formt die XML-Daten in ein Ausgabeformat, das von einem Programm (z.B. einem Web-Browser) angezeigt werden kann. Dabei können die XML-Daten in eine Markup-Language geformt werden (z.B. HTML für Web-Browser oder WML für WAP-Handys) oder in ein anderes binäre Format, z.B. PDF. Dabei wird klar, das die Daten in der XML-Datei für die Formung nicht angerührt werden. Die grafische Darstellung wird über XSL realisiert, die Daten in der XML-Datei verändern sich nicht. Dabei werden die Daten von der Visualisierung getrennt. Eine Änderungen bei XSL bedeutet keine Änderung in den XML-Daten. Und wenn die XML-Daten verändert werden, muß (wie bei HTML) auch die grafische Darstellung geändert werden.


XSL ist der Oberbegriff für diese beiden Möglichkeiten. Sollen die XML-Daten in eine Markup-Langauge (HTML, WML, SVG, ...) geformt werden, kommt XSLT (Extensible Stylesheet Language Transformation) zum Einsatz. Soll beispielsweise nach PDF geformt werden, kommt XSL-FO (Formatting Objects) zum Einsatz.


XSLT und XSL-FO gehören beide zur Spezifikation von XSL. Offiziell standardisiert ist derzeit nur XSLT. Die Standardisierung von XSL-FO steht bevor. XSLT wird derzeit schon sehr stark genutzt, der Internet Explorer 5/5.5/6 besitzt sogar einen so genannten XSLT-Prozessor, der direkt XSLT "versteht" und die XML-Daten im Browser anzeigen kann.


Warum ist XSLT flexibel?


Über die CSS legen Sie einen Stil fest, mit dem ein HTML-Tag angezeigt werden kann. Es fehlt den CSS aber ein flexibler Mechanismus, die von Programmiersprachen wie C, C++, Java und Pascal bekannt sind. Die CSS verfügen über keine Entscheidungen (if-Abfragen, switch-case-Konstrukte, for-Schleifen). Diese sind in XSLT enthalten, sodass beispielsweise je nach Inhalt eines selbstdefinierten Tags eine andere Ausgabe erscheinen kann (so genannte Templates). Dazu gibt es die "XSLT-Befehle" wie beispielsweise <xsl:if>, <xsl:for-each>,<xsl:choose> oder <xsl:when>


Wer über Programmiererfahrung verfügt, kann sich schon in etwa vorstellen, das über derartige Befehle sehr genaue Steuerungen der Ausgaben realsiert werden können. Wie konkret in XSLT programmiert wird, können Sie in den Leseproben aus dem Buch "XML - Das Einsteigerseminar" entnehmen:

Erste Schritte mit XSLT