Xalan-C++ Overview

Introduction

Xalan-C++ (named after a rare musical instrument) implements the W3C Recommendation 16 November 1999 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.

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

You use the XSLT language to compose XSL stylesheets. An XSL stylesheet contains instructions for transforming XML documents from one document type to 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).

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

<out>Hello</out>

Xalan-C++ Features

Getting to work with Xalan-C++

For instructions and some suggestions about how to get started using Xalan-C++, see Building Xalan-C++ and Installing Xalan-C++.

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 the Xalan Development Mailing List, so we can add them to this list.

Glossary

For more definitions of XSLT terminology, see Dave Pawson‘s XSLT Terminology Clarification and the Glossary in Michael Kay’s XSLT Programmer's Reference.