<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>ASF: Xalan-Java Overview</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<link rel="stylesheet" type="text/css" href="resources/apache-xalan.css" />
</head>
<!--
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements. See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership. The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the  "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 -->
<body>
<div id="title">
<table class="HdrTitle">
<tbody>
<tr>
<th rowspan="2">
<a href="../index.html">
<img alt="Trademark Logo" src="resources/XalanJ-Logo-tm.png" width="190" height="90" />
</a>
</th>
<th text-align="center" width="75%">
<a href="index.html">Xalan XSL Transformer User's Guide</a>
</th>
</tr>
<tr>
<td valign="middle">Xalan-Java Overview</td>
</tr>
</tbody>
</table>
<table class="HdrButtons" align="center" border="1">
<tbody>
<tr>
<td>
<a href="http://www.apache.org">Apache Foundation</a>
</td>
<td>
<a href="http://xalan.apache.org">Xalan Project</a>
</td>
<td>
<a href="http://xerces.apache.org">Xerces Project</a>
</td>
<td>
<a href="http://www.w3.org/TR">Web Consortium</a>
</td>
<td>
<a href="http://www.oasis-open.org/standards">Oasis Open</a>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navLeft">
<ul>
<li>
<a href="resources.html">Resources</a>
<br />
</li>
<li>
<a href="http://xalan.apache.org/index.html">Home</a>
</li></ul><hr /><ul>
<li>
<a href="index.html">Xalan-J 2.7.2</a>
</li>
<li>
<a href="charter.html">Charter</a>
</li></ul><hr /><ul>
<li>
<a href="whatsnew.html">What's New</a>
</li>
<li>
<a href="readme.html">Release Notes</a>
</li></ul><hr /><ul>
<li>Overview<br />
</li>
<li>
<a href="downloads.html">Download/Build</a>
</li>
<li>
<a href="getstarted.html">Getting Started</a>
</li>
<li>
<a href="xsltc_usage.html">Using XSLTC</a>
</li></ul><hr /><ul>
<li>
<a href="faq.html">FAQs</a>
</li></ul><hr /><ul>
<li>
<a href="samples.html">Sample Apps</a>
</li>
<li>
<a href="commandline.html">Command Line</a>
</li></ul><hr /><ul>
<li>
<a href="features.html">Features</a>
</li>
<li>
<a href="trax.html">Transform API</a>
</li>
<li>
<a href="xpath_apis.html">XPath API</a>
</li>
<li>
<a href="usagepatterns.html">Usage Patterns</a>
</li></ul><hr /><ul>
<li>
<a href="apidocs/index.html">Xalan-J API</a>
</li>
<li>
<a href="public_apis.html">Public APIs</a>
</li>
<li>
<a href="dtm.html">DTM</a>
</li></ul><hr /><ul>
<li>
<a href="extensions.html">Extensions</a>
</li>
<li>
<a href="extensionslib.html">Extensions Library</a>
</li>
<li>
<a href="extensions_xsltc.html">XSLTC Exts</a>
</li></ul><hr /><ul>
<li>
<a href="design/design2_0_0.html">Xalan 2 Design</a>
</li>
<li>
<a href="xsltc/index.html">XSLTC Design</a>
</li></ul><hr /><ul>
<li>
<a href="builds.html">Building a release</a>
</li>
<li>
<a href="http://xml.apache.org/xalan-j/test/overview.html">Testing</a>
</li>
<li>
<a href="bugreporting.html">Bug Reporting</a>
</li></ul><hr /><ul>
<li>
<a href="contact_us.html">Contact us</a>
</li>
</ul>
</div>
<div id="content">
<h2>Xalan-Java Overview</h2>
<ul>
<li>
<a href="#intro">Introduction</a>
</li>
<li>
<a href="#features">Xalan-Java Features</a>
</li>
<li>
<a href="#towork">Getting to work with Xalan-Java</a>
</li>
<li>
<a href="#uptospeed">Getting up to speed with XSLT</a>
</li>
<li>
<a href="#glossary">Glossary</a>
</li>
</ul>
<a name="intro">‌</a>
<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Introduction</h3>
<p>Xalan-Java fully implements <a href="http://www.w3.org/TR/xslt">XSL Transformations (XSLT) Version 1.0</a> 
   and the <a href="http://www.w3.org/TR/xpath">XML Path Language (XPath) Version 1.0</a>. 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 <a href="#uptospeed">Getting up to speed with XSLT</a>.</p> 
<table class="note">
<tr>
<td class="noteImg">
<img src="resources/note.gif" alt="note" />
</td>
<td class="noteTxt">XSL also includes a vocabulary for formatting documents, which is not part of Xalan-Java. 
      For more information, see <a href="http://www.w3.org/TR/xsl">Extensible Stylesheet Language (XSL) Version 1.0</a> and the <a href="http://xmlgraphics.apache.org/fop">Apache XmlGraphics FOP (Formatting Objects Project)</a>.</td>
</tr>
</table>
<p>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).</p>
<table class="note">
<tr>
<td class="noteImg">
<img src="resources/note.gif" alt="note" />
</td>
<td class="noteTxt">The XSL stylesheet may generate and refer to cascading style sheets (<a href="http://www.w3.org/Style/CSS/">CSS</a>) as part of its output.</td>
</tr>
</table> 
<p>In the following example, the foo.xsl stylesheet is used to transform foo.xml into foo.out:</p>
<p>foo.xml:</p>
<blockquote class="source">
<pre>&lt;?xml version="1.0"?&gt;
&lt;doc&gt;Hello&lt;/doc&gt;</pre>
</blockquote>
        <p>foo.xsl:</p>
        <blockquote class="source">
<pre>&lt;?xml version="1.0"?&gt; 
&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"&gt;
&lt;xsl:template match="doc"&gt;
&lt;out&gt;&lt;xsl:value-of select="."/&gt;&lt;/out&gt;
&lt;/xsl:template&gt;
&lt;/xsl:stylesheet&gt;</pre>
</blockquote>
<p>foo.out:</p>
<blockquote class="source">
<pre>&lt;out&gt;Hello&lt;/out&gt;</pre>
</blockquote>
<p>By default, Xalan-Java uses Xerces-Java, but it may be configured with system properties to work with 
   other XML parsers (see <a href="usagepatterns.html#plug">Plugging in a Transformer and 
   XML parser</a>). 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.</p>
<p>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.</p>


<a name="features">‌</a>
<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Xalan-Java Features</h3>
<ul> 
  <li>Includes an Interpretive processor for use in a tooling and debugging environment and 
      a Compiling processor (XSLTC) for use in a high performance runtime environment.<br />
<br />
</li>
  <li>Implements the relevant W3C specifications: <a href="http://www.w3.org/TR/xslt">XSL Transformations (XSLT) Version 1.0</a> and 
      <a href="http://www.w3.org/TR/xpath">XML Path Language (XPath) Version 1.0</a>.<br />
<br />
</li>
  <li>Implements <a href="https://jaxp.java.net/">Java API for XML Processing (JAXP) 1.3</a>, and builds on 
      <a href="http://sax.sourceforge.net/">SAX 2</a> and <a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/">DOM level 3</a>.<br />
<br />
</li>
  <li>Implements the XPath API in <a href="https://jaxp.java.net/">JAXP 1.3</a>.<br />
<br />
</li>
  <li>May be configured to work with any XML parser, such as
      <a href="http://xml.apache.org/xerces-j/index.html">Xerces-Java</a>, that implements 
      <a href="https://jaxp.java.net/">JAXP 1.3</a> (see <a href="usagepatterns.html#plug">Plugging in an XML
      parser</a>).<br />
<br />
</li>
  <li>Can process Stream, SAX or DOM input, and output to a Stream, SAX or DOM.<br />
<br />
</li>
  <li>Transformations may be chained (the output of one transformation may be the input for
      another).<br />
<br />
</li>
  <li>May be run from the <a href="commandline.html">command line</a> for convenient file-to-file
      transformations.<br />
<br />
</li>
  <li>Includes an <a href="usagepatterns.html#applet">applet wrapper</a>.<br />
<br />
</li>
  <li>May be used in a <a href="samples.html#servlet">servlet</a> to transform XML documents 
      into HTML and serve the results to clients.<br />
<br />
</li>
  <li>Supports the creation of <a href="extensions.html">Java and scripting language extensions</a>. 
      and provides a growing library of extension elements and functions.</li>
</ul> 


<a name="towork">‌</a>
<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Getting to work with Xalan-Java</h3>
<p>For instructions and some suggestions about how to get started using the XSLT Interpretive
   processor, see <a href="getstarted.html">Getting Started with Interpretive Processing</a>.</p>
<p>For instructions and some suggestions about how to get started using the XSLT Compiling
   processor, see <a href="xsltc_usage.html">Getting Started with XSLTC</a>.</p>   


<a name="uptospeed">‌</a>
<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Getting up to speed with XSLT</h3>
<p>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:</p>
<ul>
  <li>XSLT - XSL Transformations in 
      <a href="http://www.brics.dk/~amoeller/XML/">
      The XML Revolution: Technologies for the future Web</a> by Anders Møller and Michael 
      I. Schwartzbach (Web pages, but designed for sequential reading)<br />
<br />
</li>
  <li>Crane Softwright's <a href="http://www.CraneSoftwrights.com/training/">Free preview of 
      Practical Transformation Using XSLT and XPath</a>
<br />
<br />
</li>
  <li>Doug Tidwell's <a href="http://www.oreilly.com/catalog/xslt/">XSLT</a>, O'Reilly, 2001
      <br />
<br />
</li>                 
  <li>Bob Ducharme's <a href="http://www.manning.com/ducharme/index.html">XSLT Quickly</a>, 
      Manning Publications, 2001<br />
<br />
</li>                 
  <li>John Robert Gardner and Zarella Rendon's 
      <a href="http://vig.prenhall.com/catalog/academic/product/1,4096,0130404462,00.html">XSLT 
      and XPath: A Guide to Transformations</a>, Prentice-Hall, 2001<br />
<br />
</li>                 
  <li>Michael Kay's <a href="http://www.wrox.com/books/0764543814.shtml">XSLT 
      Programmer's Reference</a>, 2nd ed., Wrox Press, 2001<br />
<br />
</li>               

  <li>Dave Pawson's <a href="http://www.dpawson.co.uk/xsl/">XSL Frequently Asked Questions</a> to search out particular answers and 
      techniques<br />
<br />
</li>
  <li>Miloslav Nic's <a href="http://zvon.vscht.cz/HTMLonly/XSLTutorial/Books/Book1/index.html">XSL 
      Tutorial</a>, a collection of stylesheet examples<br />
<br />
</li>
  <li>Elliotte Rusty Harold's <a href="http://www.ibiblio.org/xml/books/bible2/chapters/ch17.html">
      Chapter 17 of the XML Bible: XSL Transformations</a>
<br />
<br />
</li>
  <li>The Mulberry <a href="http://www.mulberrytech.com/xsl/xsl-list/">XSL-List -- Open Forum on 
      XSL</a> (of interest to XSL users at all levels)<br />
<br />
</li>
  <li>Objects by Design's <a href="http://www.objectsbydesign.com/projects/xmi_to_html.html">
      Transforming XMI to HTML</a> (oriented towards XMI, "an XML-based, stream representation 
      of a UML model," but also covers "generic" XML transformations) and their related 
      <a href="http://objectsbydesign.com/projects/xslt/xslt_by_example.html">XSLT by Example</a>
      <br />
<br />
</li>         
  <li>OASIS (the Organization for the Advancement of Structured Information Standards): 
      <a href="http://www.oasis-open.org/cover/xsl.html">Extensible Stylesheet Language (XSL)</a> 
      by Robin Cover<br />
<br />
</li>       
</ul>
<p>When you come across other useful introductory or background materials, please email 
   <a href="mailto:dev@xalan.apache.org">Xalan Development Mailing List</a>, so we can add them to this list.</p>
    
<a name="glossary">‌</a>
<p align="right" size="2">
<a href="#content">(top)</a>
</p>
<h3>Glossary</h3>
<div class="glossary">
  <p class="label">
<em>XSLT Namespace</em>
</p>
  <blockquote class="item">The <a href="http://www.w3.org/TR/REC-xml-names/">XML namespace</a> 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.<br />
<br />
</blockquote>
        
  <p class="label">
<em>XSL Instruction</em>
</p>
  <blockquote class="item">Any tag associated with the XSLT namespace.<br />
<br />
</blockquote>
        
  <p class="label">
<em>Template</em>
</p>
  <blockquote class="item">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.<br />
<br />
</blockquote>
                
  <p class="label">
<em>XSL Template Instruction</em>
</p>
  <blockquote class="item">Any tag that occurs inside an xsl:template element and is associated with the XSLT 
        namespace.<br />
<br />
</blockquote>
                   
  <p class="label">
<em>Source Tree</em>
</p>
  <blockquote class="item">The XML tree input to the XSL process.<br />
<br />
</blockquote>
        
  <p class="label">
<em>Result Tree</em>
</p>
  <blockquote class="item">The tree that is output by the XSL process.<br />
<br />
</blockquote>
                
  <p class="label">
<em>Match Pattern</em>
</p>
  <blockquote class="item">The part of a template that defines the kind(s) of nodes to which the template 
        applies.<br />
<br />
</blockquote>

</div>
<p>For more definitions of XSLT terminology, see Dave Pawson's 
   <a href="http://www.dpawson.co.uk/xsl/xslvocab.html">XSLT Terminology
   Clarification</a> and the Glossary in Michael Kay's 
   <a href="http://www.wrox.com/books/0764543814.shtml">XSLT Programmer's Reference</a>.</p>

<p align="right" size="2">
<a href="#content">(top)</a>
</p>
</div>
<div id="footer">Copyright © 1999-2014 The Apache Software Foundation<br />Apache, Xalan, and the Feather logo are trademarks of The Apache Software Foundation<div class="small">Web Page created on - Thu 2014-05-15</div>
</div>
</body>
</html>
