



































|
|
|
Xalan-Java
(named after a rare musical instrument) 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.
You use
the XSLT language to compose XSL stylesheets. An XSL stylesheet
contains instructions for transforming XML documents from one
document type into another document type (XML, HTML, or other). 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:
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-Java uses Xerces-Java, and 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
XSLT and XPath: A Guide to Transformations, Prentice-Hall,
2001
- Michael
Kay's XSLT
Programmer's Reference, 2nd ed., Wrox Press, 2001
- Steven
Holzner's Inside
XSLT, New Riders, 2001
- Neil
Bradley's XSL
Companion, Addison-Wesley, 2000
- Khun Yee
Fung's XSLT:
Working with XML and HTML, Addison-Wesley, 2001
- Dave
Pawson's XSL Frequently Asked Questions to search out
particular answers and techniques
- Miloslav
Nic's
XSL Tutorial, a collection of stylesheet examples
- Elliotte
Rusty Harold's Chapter
14 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
- Donald
Ball's A
Guide to XML and XSL for Designers
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.
- Template
- 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 tree.
- XSL
Template Instruction
- Any tag
that occurs inside an xsl:template element and is associated with
the XSLT namespace.
- 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 applies.
For more
definitions of XSLT terminology, see Dave Pawson's XSLT Terminology
Clarification and the Glossary in Michael Kay's
XSLT Programmer's Reference.
|
|
|