Specifications and
Working Drafts
See Also
Get Involved
|
NEWS
XSL Frequently
Asked Questions maintained by Dave Pawson. Not a tutorial, but a
very good source for learning XSL.
XSLT
tutorial by Don Day (IBM)
VBXML has reference pages on XSLT and XPath
Using XSL Formatting Objects by J. David Eisenberg, an article
in xml.com
Wei Meng Lee has written two articles, an introduction
to XSLT, and a paper on using
XSLT with WML.
XSL Concepts
and Practical Use by P. Grosso and N. Walsh was presented at the
XML Europe 2000 Conference in Paris, France.
An XSL tutorial is
provided by w3schools.
Another tutorial is at VBXML.COM.
XSLT
Programmer's Reference by Mike Kay is probably the first book
dedicated to XSLT and XPath. There is now a second
edition, which includes updates on the latest specification and
tools, and new examples.
Training material is available for sale from Crane Softwrights
Ltd: Practical
Transformation Using XSLT and XPath. It covers the transformation
part of XSL (XSLT), including XPath.
Chapter
14 of the XML
Bible is dedicated to XSLT, Chapter
15 is dedicated to XSL-FO. Both are available online.
Miloslav Nic has provided code samples demonstrating basic and
advanced concepts in his online
resource. He has also published a complete XSLT
Reference, as well as an XSL FO
reference.
A nice introduction to XSLT, the transformation part of XSL, can
be found in the Microsoft
XSL document.
A good way to learn is by example, so have a look at the XSL
Slidemaker from the Koala
Group at INRIA/Sophia, which takes an XML file of slides and
processes them with XSL.
A short XSL
Tutorial from Henry
Thompson, given at SGML UK in October
1997
An XSLT tutorial in iX magazine in German and English.
Other XSL Resources include
XSLT Processors
XSL-FO processors
- X-smiles
is an open source browser that does client side XSL (using Xalan
and FOP) and can also display SVG and SMIL.
- XSL
Formatter
from Antenna House: an FO processor for Windows. Free evaluation
version available.
- Unicorn
Formatting Objects (UFO) is freely available and runs on Windows
NT 4.0 and Windows 95. It implements the substantial subset of
the Extensible Stylesheet Language (XSL) Version 1.0
specification (W3C Working Draft 27 March 2000)
- FOP
is a XSL FO to PDF converter developed by James Tauber at the Apache Software
FoundationXE
- PassiveTeX
is a library of TeX macros which provides a rapid development
environment for experimenting with XSL FO.
- REXP
is an early implementation of a Formatting Objects engine based
on FOP. It generates PDF files. It's an open source.
- XEP
(formerly known as FOP2PDF) from RenderX is a program for
converting XSL FO documents to PDF.
Miscellaneous
- XSLTMark
: an XSLT test suite and benchmark test from DataPower
- XSLTDoc
from Jeni Tennison: an XSLT learning tool that helps you browse
your stylesheet (Windows).
- XSLT Standard
Library
(a SourceForge project): a
set of templates for commonly used functions.
Older
Implementations
- How is XSL different from CSS?
- XSL uses a XML notation, CSS uses its own. In CSS, the
formatting object tree is almost the same as the source tree,
and inheritance of formatting properties is on the source tree.
In XSL, the formatting object tree can be radically different
from the source tree, and inheritance of formatting properties
is on the formatting object tree.
Aside from these technical differences, mature
implementations of CSS1 and (parts of) CSS2 are available,
whilst XSL is currently too new to have mature browser and
content-authoring support.
- Will XSL replace CSS?
- No. They are likely to co-exist since they meet different
needs. XSL is intended for complex formatting where the content
of the document might be displayed in multiple places; for
example the text of a heading might also appear in a
dynamically generated table of contents. CSS is intended for
dynamic formatting of online documents for multiple media; its
strictly declarative nature limits its capabilities but also
makes it efficient and easy to generate and modify in the
content-generation workflow. So they are two different tools;
for some tasks, CSS is the appropriate choice and for some
tasks, XSL. They can also be used together - use XSL on the
server to condense or customize some XML data into a simpler
XML document, then use CSS to style it on the client.
- How is XSL different from DSSSL? From DSSSL-O?
- DSSSL is an International Standard style sheet language. It
is particularly used for formatting of print documents. DSSSL-O
is a profile of DSSSL which removes some functionality and adds
capabilities to make it more suited for online documentation.
XSL draws on DSSSL and the DSSSL-O work and continues the trend
towards a Web-oriented style sheet language by integrating
experience with CSS.
- Will XSL replace DSSSL?
- DSSSL has capabilities that XSL does not, and continues in
use in the print publishing industry. Experience with XSL might
be used in a future revision of DSSSL, but it is too early to
say.
- So, CSS is for HTML and XSL is for XML?
- No, CSS can be used with HTML and also with XML, provided
that the XML document has a reasonably linear structure that
can be displayed without extensive manipulation. See the CSS2 Recommendation for details.
XSL is targeted at XML, in particular highly-structured,
data-rich documents that require extensive formatting.
- Should I render all my XML documents to HTML on the server?
- Unless you are very careful to retain semantics, no. XSL can
be used server-side and client-side. The XSL Submission has two
classes of output: DSSSL-style flow objects and HTML tags.
Unfortunately, the combination of server-side processing and
HTML tag output can result in completely inaccessible, hard to
search, hard to index presentational HTML (the sort that is a
mass of FONT and BR tags, spacer gifs - you know, the sort of
single-shot presentational mess that style
sheets were designed to avoid).
The trouble is that by "rendering" to HTML, all that remains
of your carefully crafted XML semantics are the presentational
aspects - block element, this font, that weight - which makes
it hard to generate decent HTML.
- Technical: how do I do X, Y or Z in XSL?
- First, have a look at D. Pawson's excellent XSL FAQ. If
you don't find an answer, check the XSL mailing list at
mulberrytech.com
|