Extensible Stylesheet Language
# Extensible Stylesheet Language

Extensible Stylesheet Language (XSL), eine Computersprache, ist eine in XML notierte Familie von Transformationssprachen zur Definition von Layouts für XML-Dokumente. Die Untersprache XSLT wird außerdem zur Übersetzung/Transformation eines XML-Formats in ein anderes XML- oder Textformat genutzt.

Referenzen auf Layouts (auch Stylesheets genannt) können in die zu formatierenden XML-Dokumente eingebunden werden, wobei sich die Layouts speziellen Medien zuordnen lassen. So ist es möglich, ein Layout zum Drucken und ein Layout für die Darstellung am Computer zu verwenden.

## Umfang

Zu XSL gehören:

* das XML-basierte eigentliche XSL (zur Unterscheidung genannt XSL-Formatting Objects, XSL-FO) für die Beschreibung eines Dokuments als Baum mit Formatierungsanweisungen und Stilangaben,
* das XML-basierte XSL Transformations (XSLT) für die Transformation eines beliebigen XML-Dokuments in einen anderen Baum
* und indirekt auch XPath für die Adressierung von Baumbestandteilen.

## Einsatzgebiete

Die drei Sprachen (XSL-FO, XSLT, XPath) lassen sich gemeinsam als XSL oder auch unabhängig voneinander verwenden.

Ein Dokument ließe sich z. B. gleich in XSL-FO verfassen, eine in der Praxis angewandte Vorgehensweise zum Entwurf neuer Layouts.

XSLT kann nicht nur nach XSL-FO transformieren, sondern in jede beliebige XML-basierte Sprache oder aber auch in Formate, die nicht XML sind. In der Praxis wird XSLT vergleichsweise selten mit XSL eingesetzt. Wesentlich häufiger ist XSLT bei Message Oriented Middleware oder Presentation Oriented Publishing auf XML-Basis anzutreffen, wobei letzteres weitaus häufiger mit XHTML für den Einsatz im WWW als XSL-FO verwendet wird. XSLT wird also häufiger mit anderen XML-basierten Sprachen verwendet als mit XSL-FO.

XPath wird in XSLT für XSLT Patterns und für XQuery verwendet.

## Geschichte

XSL geht auf das von James Clark entwickelte DSSSL zurück. Im Gegensatz zu DSSSL bietet XSL zwei wesentliche Neuerungen:

* XML-basierte Syntax
* Trennung der Sprachen für die Transformation (XSLT), die Formatierung (XSL-FO) und die Baumadressierung (XPath) in eigenständige und unabhängig voneinander verwendbare Sprachen

Das erste Working Draft zu XSL behandelte noch alle Komponenten in einem Dokument und wurde im August 1998 veröffentlicht. Im Laufe der Entwicklung wurden XSLT und XPath in eigenständige Dokumente ausgelagert. XSLT 1.0 und XPath 1.0 wurden im November 1999 verabschiedet, XSL selbst im Oktober 2001.

Die derzeit aktuelle Fassung von XSLT 2.0 und XPath 2.0 wurde am 23. Januar 2007 verabschiedet.

## Software

Siehe auch XSLT für verschiedene XSLT-Prozessoren.

* FOP, Open Source
* xmlroff, Open Source
* XEP, kommerziell
* AXF, kommerziell
* Microsoft Visual Studio 2005, kommerziell
* Antenna House Formatter (deutsch), kommerziell
* Compart DocBridge XSL Extensions für XSL-FO (deutsch), kommerziell
* <oXygen/> XSL editor and debugger, kommerziell
* XF Rendering Server, kommerziell
* XML2PDF Formatting Engine Server, kommerziell
* XSL/XSLT Editor & Debugger. Abgerufen am 15. August 2019 (englisch). , kommerziell
