logolineright
bottomhttp://xml.apache.org/http://www.apache.org/http://www.w3.org/
join
What's New
Release Notes
separator
Overview
Downloads
Getting Started
Using XSLTC
separator
FAQs
separator
Sample Apps
Command Line
separator
Features
Transform API
XPath API
Usage Patterns
separator
Xalan-J API
Public APIs
DTM
separator
Extensions
Extensions Library
XSLTC Exts
separator
Xalan 2 Design
XSLTC Design
separator
Source Repository
Xalan-Java Builds
Testing
User Mail Archive
Dev Mail Archive
Bug Reporting
close
Introduction
 

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.

NoteXSL also includes a vocabulary for formatting documents, which is not part of Xalan-Java. For more information, see Extensible Stylesheet Language (XSL) Version 1.0 and the Apache XML FOP (Formatting Objects Project).

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).

NoteThe 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:

<out>Hello</out>

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.


Xalan-Java Features
 

Getting to work with Xalan-Java
 

For instructions and some suggestions about how to get started using the XSLT Interpretive processor, see Getting Started with Interpretive Processing.

For instructions and some suggestions about how to get started using the XSLT Compiling processor, see Getting Started with XSLTC.


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:

When you come across other useful introductory or background materials, please email Xalan Development Mailing List, so we can add them to this list.


Glossary
 
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.



dot
Copyright © 2005 The Apache Software Foundation. All Rights Reserved.