Xalan (named after a rare musical instrument) fully implements the W3C Recommendation 16 November 1999 XSL Transformations (XSLT) Version 1.0.
XSLT is the first part of the XSL stylesheet language for XML. It includes the XSL Transformation vocabulary and the
XML Path language (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.
You use the XSLT language to compose XSL stylesheets. Itself an XML document, an XSL stylesheet contains instructions for
transforming a range of XML documents into other XML documents, HTML documents, or other document types. In structural
terms, an XSLT stylesheet specifies the transformation of one tree of nodes (the XML input) into another tree of nodes
(the output or transformation result).
 | The XSLT stylesheet may include cascading style sheets (CSS) in the result. |
In the following example, the foo.xsl stylesheet is used to transform foo.xml into foo.out:
foo.xml:
 |  |  |
 | <?xml version="1.0"?>
<doc>Hello</doc> |  |
 |  |  |
foo.xsl:
 |  |  |
 | <?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="doc">
<out><xsl:value-of select="."/></out>
</xsl:template>
</xsl:stylesheet> |  |
 |  |  |
foo.out:
By default, Xalan uses a high-performance Document Table Model (DTM) to parse the input -- XML documents and XSL stylesheets, but it can be set to use the Xerces-Java XML parser, and it can be adapted to work with other DOM-producing mechanisms and SAX document handlers. The input may appear in the form of a file, a character stream, a byte stream, a DOM, or a SAX input stream.
Xalan performs the transformations specified in the XSL stylesheet and produces a document file, a character
stream, a byte stream, a DOM, or a series of SAX events, as you specify when you set up the transformation.