There is some nasty confusions around XSL and XSLT.

In the following, I will try to explain the difference.

XSLT, a tool for transforming XML files

XML is a little specification (even if it is already too indigestible for average human being). It only defines the syntax of XML. All the stuff around, that I always call XML ecosystem, is dramatically bigger.

When someone speaks of XML, it is, most of the time, implied that he is actually speaking of XML ecosystem.

So, XSLT is a tool in the XML ecosystem to help transforming XML into something else. Something else could be XML itself, text file, html file, binary file, etc.

XSLT exists since 1999 as version 1.0.

XSLT 2.0, that will help to do more kind of transformations, with bigger assistance, is still in discussion. But recently, the specification of XSLT 2.0 reach an important point : it became a PROPOSED RECOMMENDATION (PR) which is, if all is ok, the last step before W3C RECOMMENDATION status. Roughly speaking, it is *almost* a standard.

XSL, a.k.a XSL-FO, a language to express a formatted document

XSL-FO is a representation of a document. The aim of FO is especially to help making printed-like (Paper, PDF, PS, RTF) representation of document.

In some case, you can use an XML File with your data inside.

Then use XSLT (1.0 or 2.0) to transform that XML File into an XSL-FO File.

And last, use a tool, a Formatter, to translate the XSL-FO File into a PDF.

XSL-FO exists in two versions : 1.0 since 2001, and 1.1 since yesterday !

Well I cheat a little bit...

In fact, now that you've seen the use of XSLT and XSL-FO, I let you know that the combination of both and XPath| IS XSL. But most of the time, XSL will be used for XSL-FO (even in the specification), but XSLT is always called XSLT.

Hope this helps