W3C Uniquitous Web DomainXSL

The Extensible Stylesheet Language Family (XSL)

Introduction

XSLT and XSL-FO are W3C Recommendations for defining XML document transformation and presentation. Use XSLT to transform documents into XSL-FO for printing or viewing; you can also use XSLT as a general XML-aware programming and transformation language, and you can use XSL-FO directly without XSLT.

A typical application might be taking groups of XML documents to PDF:
[diagram: XML documents are transformed with XSLT to XSL-FO instances, which are then rendered to PDF]

XSL Transformations: XSLT

XSL Transformations (XSLT 2.0) is a language for transforming XML documents into other XML documents, text documents or HTML documents. You might want to format a chapter of a book using XSL-FO, or you might want to take a database query and format it as HTML.

With XSLT 2.0, processors can operate not only on XML but on anything that can be made to look like XML: relational database tables, geographical information systems, file systems, anything from which your XSLT processor can build an XDM instance. In some cases an XSLT 2.0 processor might also be able to work directly from a database of XDM instances. This ability to operate on multiple input files in multiple formats, and to treat them all as if they were XML files, is very powerful. It is shared with XQuery, and with anything else using XPath 2.0:
[diagram: XSLT 2.0 Processor uses an XDM Builder to construct data model instances out of XML documents, XML databases and relational databases.]

Template-Driven Approach

XSLT uses a template-driven approach to transformations: you write a template that shows what happens to any given input element. For example, if you were formatting a letter to product HTML for the Web, you might have a template to match an underlined passage and make it come out in italics:

<template match="underline">
<i>
<apply-templates/>
</i>
</template>

Now suppose the input document contains the following fragment of XML:

I <underline>really</underline> love XSLT!

The template would match the underline element, and produce the following HTML fragment:

I <i>really</i> love XSLT!

Wildly Popular

XSLT has become the language of choice for a very wide range of XML applications. It is of course still used to produce XSL-FO documents for printing, but it is also used to integrate back-end software for Web sites. You will find XSLT (version 1) inside most modern Web browsers, so that XML can be transformed on the fly without the user even noticing; you will find XSLT on the desktop, in servers, in network appliances, and forming a basic and dependable part of computer infrastructure almost everywhere you look.

Learn More

You can read the XSLT 2.0 Recommendation; there is also an older XSLT 1.0 Recommendation which will be useful if your software has not yet been upgraded; Web browsers in particular generally implement the 1.0 version.

If you find a mistake in any W3C specification, see the Status section of the document concerned for instructions on how to send comments. Different documents need comments sent to different places, but all comments do get read, and we will (in time) reply.

There is a public mailing list for XSL, XSL-List, hosted outside the W3C.

This is the end of the new page so far.

the XML Path Language (XPath)
an expression language used by XSLT to access or refer to parts of an XML document. (XPath is also used by the XML Linking specification)
XSL Formatting Objects (XSL-FO)
an XML vocabulary for specifying formatting semantics
What Is XSL page.

For background information on style sheets, see the Web style sheets resource page. XSL is developed by the W3C XSL Working Group (members only) whose charter is to develop the next version of XSL. XSL is part of W3C's XML Activity, whose work is described in the XML Activity Statement.

  • XSL-List, main public list for discussion about XSL
  • xsl-editors: comments/discussion on XSLT 1.0
  • www-xsl-fo W3C list about Formatting Objects
  • XSL-FO: a Yahoo Groups list on XSL-FO.
  • If you find an error in a specification, see the Scope section of that document for how to report the error.

News

2008-07-11: xmlroff 0.6.0 released

Version 0.6.0 of xmlroff has been released; it is an open source XSL-FO implementation. Changes include a more flexible BSD-based license, PNG graphics support in the Cairo back-end, and improved documentation.

2008-04-17: RenderX blogpaper

blogpaper, a Web-based interface for making PDF or PostScript from blogs, wiki pages, Web pages and more, uses RenderX.

2008-03-26: XSL-FO 2.0 Requirements Published

The Extensible Stylesheet Language (XSL) Requirements Version 2.0 have been published, along with a Survey to ask potential implementors and users for feedback on the relative importance of the proposed new features.

2008-01-03: Assentis DocFamily 4.0 Released

Assentis Technologies has released version 4.0 of their DocFamily product suite, which includes an XSL-FO and XFORMS designer, a J2EE based composition server, a repository server and an interactive document editor based on HTML. The 4.0 release provides increased support for high-volume XSL-FO printing. DocFamily 4.0 now supports XHTML, PCL, PDF/A and ZPL as output formats, in addition to AFP, PostScript and PDF. For interactive document editing, DocWrite added XForms support and extended WYSIWYG XSL-FO editing functionality.

2007-10-05: Altsoft Xml2PDF 2007 1.1. released

Altsoft NV has released Xml2PDF 2007 v.1.1. with VML support in Word 2003-2007 Xml source and optional support of PDF/a, PDF/x specifications for PDF output.

2007-08-11: Antenna House XSL Formatter V4.2

Antenna House has released Antenna House XSL Formatter V4.2, with support for Unicode 5.0, PDF Acrobat Forms (AcroForms), PDF Digital Signatures, PDF/A, PostScript Output (as an option) and numerous other enhancements.

2007-08-08: aXSL 0.2 released

aXSL 0.2 was released; it now supports XSL-FO 1.1 constructs, and adds typesafe enumerations for datatypes. There is also support for isolating SVG code inside the Graphics module, and the code has been cleaned up and simplified. See the release notes.

2007-05-12: oXygen 8.2 released

oXygen 8.2 supports editing, running, debugging and profiling for XSLT 1 and 2, and now adds support for included and imported XSLT stylesheet fragments. It also adds new features for working with XML Query.

2007-05-11: xmlroff 0.5.0 released

xmlroff 0.5.0, a C-based open source XSL-FO implementation, was released. The new release is easier to build, having fewer dependencies.

2007-05-08: Altsoft Xml2PDF 2007 released

Altsoft Xml2PDF 2007 (Server .NET API, Workstation and Viewer) is released. Convert XSL-FO (v. 1.1), Word 2003-2007, XHTML and SVG documents to PDF, XPS, PS and TIFF. Free for evaluation purposes and desktop use.

Liam Quin (liam@w3.org), Alternate Team Contact for the XSL Working Group
$Id: Overview-new.html,v 1.6 2009/05/28 16:56:37 liam Exp $.
This page was generated using XSLT. The XML source is also available for viewing on an XSLT-enabled browser.