Xalan-Java fully implements XSL Transformations (XSLT) Version 1.0
and the XML Path Language (XPath) Version 1.0. XSLT is the first part of the XSL stylesheet language for
XML. It includes the XSL Transformation vocabulary and XPath, a language for addressing parts of
XML documents. For links to background materials, discussion groups, frequently asked questions,
and tutorials on XSLT, see Getting up to speed with XSLT.
XSL stylesheets are written in the XSLT language. An XSL stylesheet contains instructions
for transforming XML documents into XML, HTML, XHTML or plain text. In structural terms, an XSL
stylesheet specifies the transformation of one tree of
nodes (the XML input) into another tree of nodes (the output or transformation result).
|The XSL stylesheet may generate and refer to cascading style sheets (CSS) as part of its output.|
In the following example, the foo.xsl stylesheet is used to transform foo.xml into foo.out:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
By default, Xalan-Java uses Xerces-Java, but it may be configured with system properties to work with
other XML parsers (see Plugging in a Transformer and
XML parser). The input may be submitted in the form of a stream of XML markup (from a URI,
a character or byte stream, or another transformation), a SAX InputStream, or a DOM Node.
Xalan-Java performs the transformations specified in the XSL stylesheet and packages a sequence of
SAX events that may be serialized to an output stream or writer, used to build a DOM tree, or
forwarded as input to another transformation.
|Getting up to speed with XSLT|
If you are still working through the details of the XSLT spec (the W3C 1.0 Recommendation), you
may want to consult one or more of the following:
- XSLT - XSL Transformations in
The XML Revolution: Technologies for the future Web by Anders Møller and Michael
I. Schwartzbach (Web pages, but designed for sequential reading)
- Crane Softwright's Free preview of
Practical Transformation Using XSLT and XPath
- Doug Tidwell's XSLT, O'Reilly, 2001
- Bob Ducharme's XSLT Quickly,
Manning Publications, 2001
- John Robert Gardner and Zarella Rendon's
and XPath: A Guide to Transformations, Prentice-Hall, 2001
- Michael Kay's XSLT
Programmer's Reference, 2nd ed., Wrox Press, 2001
- Dave Pawson's XSL Frequently Asked Questions to search out particular answers and
- Miloslav Nic's XSL
Tutorial, a collection of stylesheet examples
- Elliotte Rusty Harold's
Chapter 17 of the XML Bible: XSL Transformations
- The Mulberry XSL-List -- Open Forum on
XSL (of interest to XSL users at all levels)
- Objects by Design's
Transforming XMI to HTML (oriented towards XMI, "an XML-based, stream representation
of a UML model," but also covers "generic" XML transformations) and their related
XSLT by Example
- OASIS (the Organization for the Advancement of Structured Information Standards):
Extensible Stylesheet Language (XSL)
by Robin Cover
When you come across other useful introductory or background materials, please email
Xalan Development Mailing List, so we can add them to this list.
- XSLT Namespace
- The XML namespace for XSLT. An XML
namespace is a collection of element and attribute names, identified by a Unique Resource
Identifier (URI), which often takes the form of a URL, but is really just a unique string,
not a pointer to a web page. The XSLT namespace URI is http://www.w3.org/1999/XSL/Transform.
In each XSLT stylesheet, you must declare this namespace in the stylesheet element tag and
bind it to a local prefix. Like the XSLT specification, we always use xsl as the XSLT
namespace prefix in our descriptions and examples, although you are free to bind any prefix
to this namespace.
- XSL Instruction
- Any tag associated with the XSLT namespace.
- An element, usually with child elements, that specifies a "rule" or set of
instructions to perform when a particular kind of node is encountered in the source
- XSL Template Instruction
- Any tag that occurs inside an xsl:template element and is associated with the XSLT
- Source Tree
- The XML tree input to the XSL process.
- Result Tree
- The tree that is output by the XSL process.
- Match Pattern
- The part of a template that defines the kind(s) of nodes to which the template
For more definitions of XSLT terminology, see Dave Pawson's
Clarification and the Glossary in Michael Kay's
XSLT Programmer's Reference.