XSL (Extensible Stylesheet Language) ist eine Familie von Sprachen zur Erzeugung von Layouts für XML-Dokumente. Der XSL-Dialekt XSLT kann auch zur Übersetzung/Transformation eines XML-Dialektes in ein anderes Format dienen (meistens in andere XML-Dialekte). Diese 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.
Zu XSL gehören
Fälschlicherweise wurde XSL früher manchmal als Synonym für XSLT verwendet. Gründe dafür könnten sein, dass das üblicherweise für XSLT verwendete Namespace-Prefix xsl ist und die Empfehlung zu XSLT fast zwei Jahre vor der zu XSL verabschiedet wurde.
Die heute oft anzutreffende Gleichsetzung von XSL mit XSL-FO ist jedoch ebenso falsch. Vermutlich rührt sie daher, dass die Empfehlung zu XSL ausschließlich die Formatting Objects beschreibt, während XSLT wie XPath in eine eigene Empfehlung ausgelagert ist.
Die Empfehlung zu XSL beschreibt in ihrer Zusammenfassung, dass XSL ausdrücklich aus zwei Teilen besteht: einer Sprache zur Transformation (XSLT) und einem Vokabular zur Formatierung (XSL-FO). In der korrekten Terminologie bezeichnet XSL also die Verwendung von XSLT und XSL-FO in Kombination.
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. 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.
XSL geht auf das von James Clark entwickelte DSSSL zurück. Im Gegensatz zu DSSSL bietet XSL zwei wesentliche Neuerungen:
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.
Empfehlungen (recommendations): Canonical XML | CDF | CGI | CSS | DOM | HTML | MathML | OWL | PLS | RDF | RDF-Schema | SISR | SMIL | SOAP | SRGS | SSML | SVG | SPARQL | Timed Text | VoiceXML | WSDL | XForms | XHTML | XML | XML Base | XML Events | XML Information Set | XML Schema | XML Signature | XPath | XPointer | XQuery | XSL Transformation | XSL-FO | XSL | XLink
Anmerkungen (notes): XHTML+SMIL | XAdES
Arbeitsentwürfe (working drafts): CCXML | CURIE | InkML | XFrames | XFDL | WICD | XHTML+MathML+SVG | XBL | XProc | HTML 5