<?xml version="1.0" standalone="no"?> 
<!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd"[
<!ENTITY done-j SYSTEM "DONE">]>

<!--
 * Copyright 1999-2004 The Apache Software Foundation.
 *
 * Licensed 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.
-->
<!-- $Id$ -->
<s1 title="Release Notes">
<p>&xslt4j-current;</p>

 <ul>
  <li><link anchor="status0">Status</link></li>
  <li><link anchor="build">Build distributions and notes</link></li>
  <li><link anchor="contact">Getting in touch</link></li>
  <li><link idref="history">History of software changes</link></li>
 </ul><anchor name="status0"/>
  <s2 title="Status">
   <ul>
    <li><link anchor="done">Changes since version 2.5.2</link></li>
    <li><link anchor="other">Other points of interest</link></li>
    <li><link anchor="bugs">Bugs</link></li>
    <li><link anchor="status">Version of &xml4j; to use</link></li>
<!-- <li><link anchor="developer-list">&xslt4j; developers</link></li> -->
   </ul>
     <anchor name="done"/>
   <s3 title="Changes since &xslt4j; 2.5.2">
     <p>&xslt4j; 2.6.0 contains the following functional enhancements, performance enhancements and 
        bug fixes:</p>
     <ul>
     <li>Improvement in translet initialization time.</li>
     <li>Addition of a translet versioning mechanism.  If the translet version
         detected by the XSLTC runtime is more recent than any supported by the
         XSLTC runtime, an error will be reported.</li>
     <li>Changes that allow XSLTC to use other DTM implementations.</li>
     <li>Changes in the XML Serializer.  The serializer will no longer put a newline after
         the xml header tag unless indent="yes". See bugzilla 
         <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24304">24304</jump>.</li>     
     <li>Rename of Xalan Java's xalan:doc-cache-off processing instruction to 
         xalan-doc-cache-off.  This change was necessary due to a recent
         change in Xerces.  Xerces has started detecting the Namespace 
         well-formedness rule that a processing instruction's PITarget must not contain 
         a colon. The old-style PI (xalan:doc-cache-off) will be accepted provided that
         the XML parser does not report it as an error.  See bugzilla 
         <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=26217">26217</jump>.</li>
     <li>Enhancement to XSLTC's URIResolvers and the general mechanism to resolve relative URIs.
         XSLTC is now compatible with Xalan Intepretive.</li>
     <li>Addition of a TransformThread sample that demonstrates how to use different transformers
         on different threads and in different modes.</li>
     <li>Upgrade to Xerces-J (2.6.2) and a new version of xml-commons (xml-commons-external-1.2.01)</li>
     <li>Elimination of "enum" as a name to allow compilation under JDK 1.5</li>   
        
     <li>Bugzilla fixes:     
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=797">797</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1396">1396</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5761">5761</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15140">15140</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16889">16889</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=18351">18351</jump>, 
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19194">19194</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19464">19464</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22376">22376</jump>,      
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23046">23046</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23591">23591</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24278">24278</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24111">24111</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24187">24187</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24188">24188</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24302">24302</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24304">24304</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24365">24365</jump>,      
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24414">24414</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24518">24518</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24695">24695</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24728">24728</jump>,      
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24788">24788</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24793">24793</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24958">24958</jump>, 
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24979">24979</jump>,           
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24985">24985</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24988">24988</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=25368">25368</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=25416">25416</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=25442">25442</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=25449">25449</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=25816">25816</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=25924">25924</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=26019">26019</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=26030">26030</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=26075">26075</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=26169">26169</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=26217">26217</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=26697">26697</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=26742">26742</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=26829">26829</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=26842">26842</jump>                                                                       
     </li>
     <li>For a list of &xslt4j; commits, see xalan-cvs@xml.apache.org in the
      <jump href="http://nagoya.apache.org/eyebrowse/index.html">Apache mailing list archive index</jump>.
     </li>         
     </ul>
   </s3>      
   <s3 title="Changes since &xslt4j; 2.5.1">
     <p>&xslt4j; 2.5.2 contains bug fixes and performance enhancements.</p>
      <p>Fixes in this release include the following: </p>
     <ul>
     <li>
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=782">782</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=788">788</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=789">789</jump>, 
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=795">795</jump>,                
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=890">890</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3415">3415</jump>,      
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5133">5133</jump>,      
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5972">5972</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6155">6155</jump>, 
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7205">7205</jump>,           
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7408">7408</jump>,      
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10900">10900</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=11414">11414</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12441">12441</jump>,      
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13082">13082</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14149">14149</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14607">14607</jump>,      
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15090">15090</jump>,      
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15327">15327</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15700">15700</jump>,      
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15828">15828</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15901">15901</jump>,            
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16311">16311</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16512">16512</jump>,      
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16675">16675</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17630">17630</jump>,      
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=18821">18821</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=18907">18907</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19297">19297</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19591">19591</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19770">19770</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19823">19823</jump>,      
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19890">19890</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19918">19918</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19972">19972</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19973">19973</jump>,      
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20074">20074</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20114">20114</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20256">20256</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20537">20537</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20572">20572</jump>,      
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20625">20625</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20685">20685</jump>,            
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20795">20795</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20819">20819</jump>,      
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20832">20832</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20841">20841</jump>,      
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20909">20909</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20913">20913</jump>, 
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20920">20920</jump>,     
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=21039">21039</jump>,   
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=21048">21048</jump>,         
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=21087">21087</jump>,      
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=21300">21300</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=21309">21309</jump>,   
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=21449">21449</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=21452">21452</jump>,               
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=21471">21471</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=21478">21478</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=21491">21491</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=21697">21697</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=21713">21713</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=21805">21805</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=21893">21893</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22025">22025</jump>,      
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22115">22115</jump>,   
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22167">22167</jump>,      
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22342">22342</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22422">22422</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22438">22438</jump>,      
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22623">22623</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22769">22769</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22777">22777</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22808">22808</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22880">22880</jump>,      
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23200">23200</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23113">23113</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23115">23115</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23271">23271</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23418">23418</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23706">23706</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23812">23812</jump>,   
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23896">23896</jump>,   
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23983">23983</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24013">24013</jump>,      
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24025">24025</jump>      
     </li>
     <li>For a list of &xslt4j; commits, see xalan-cvs@xml.apache.org in the
      <jump href="http://nagoya.apache.org/eyebrowse/index.html">Apache mailing list archive index</jump>.
     </li>         
     </ul>
   </s3>       
   <s3 title="Changes since &xslt4j; 2.5.0">
     <p>&xslt4j; 2.5.1 contains bug fixes and performance enhancements.</p>
      <p>Fixes in this release include the following: </p>
     <ul>
     <li>
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15200">15200</jump>,     
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=18585">18585</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=18926">18926</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19029">19029</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19388">19388</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19471">19471</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19474">19474</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19522">19522</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19640">19640</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19900">19900</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19960">19960</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20237">20237</jump>,
      <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20273">20273</jump>
     </li>
     <li>For a list of &xslt4j; commits, see xalan-cvs@xml.apache.org in the
      <jump href="http://nagoya.apache.org/eyebrowse/index.html">Apache mailing list archive index</jump>.
     </li>         
     </ul>
   </s3>
     <s3 title="Changes since &xslt4j; 2.5.D1">
     <p>&xslt4j; 2.5.0 contains a variety of features, bug fixes and 
        performance enhancements.</p>
     <p>New features in &xslt4j; 2.5.0 include:
        <ul>
        <li>integration of the Document Table Model (DTM) with the XSLTC 
            processor [Henry Zongaro, Morris Kwan] and </li>
        <li>integration of the Xalan Interpretive and Xalan Compiled 
            serializers into a common serializer [Brian Minchau].</li>  
        </ul>    
        These features have been driven by a need to get common behavior, 
        improve maintainability, reduce duplication of effort for future work, 
        and in some cases improve performance and conformance.</p>
     <p>Refer to <link idref="whatsnew">What's New</link> for a description of the new function 
        and <link idref="history">History of software changes</link> for a list of the various 
        bug fixes and other enhancements in this release.</p>
     </s3>
     <s3 title="Changes since &xslt4j; 2.4.1">
     <p>This developer's release, Xalan-Java 2.5.D1, is primarily for the purpose of releasing 
        various bug fixes to the community.  These will eventually be released officially in 
        a future Xalan-Java 2.5 version, along with some new function.</p>
     <p>Fixes in this release include the following: </p>
     <ul>
     <li><jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4858">4858</jump>,     
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5140">5140</jump>,     
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6075">6075</jump>,        
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6157">6157</jump>,   
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10053">10053</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10626">10626</jump>,     
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12481">12481</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13414">13414</jump>,     
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13651">13651</jump>,          
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13774">13774</jump>,     
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13775">13775</jump>,     
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13977">13977</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14112">14112</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14148">14148</jump>,               
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14157">14157</jump>,     
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14178">14178</jump>,     
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14229">14229</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14236">14236</jump>,     
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14237">14237</jump>,     
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14241">14241</jump>,     
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14244">14244</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14300">14300</jump>,          
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14322">14322</jump>,     
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14324">14324</jump>,     
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14365">14365</jump>,     
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14368">14368</jump>,     
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14406">14406</jump>,     
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14578">14578</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14753">14753</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14856">14856</jump>,               
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14862">14862</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14965">14965</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15074">15074</jump>,               
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15094">15094</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15218">15218</jump>,          
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15254">15254</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15373">15373</jump>,          
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15586">15586</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16745">16745</jump>,          
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17030">17030</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17136">17136</jump></li>
     <li>Support for and bundling of Xerces Java 2.3.</li>     
     <li>Support for and bundling of xml-apis.jar from the tck-jaxp-1_2_0 branch of xml-commons.
         This version of the Java APIs for XML Processing successfully passes the JAXP 1.1 and 
         JAXP 1.2 TCKs.</li>     
     <li>For a list of &xslt4j; commits, see xalan-cvs@xml.apache.org in the
     <jump href="http://nagoya.apache.org/eyebrowse/index.html">Apache mailing list archive index</jump>.</li>         
     </ul>     
     </s3>     
     <s3 title="Changes since &xslt4j; 2.4.0">
     <ul>
      <li>Performance fixes and enhancements to address the degradation of performance between Xalan-Java
      version 2.3.1 and Xalan-Java 2.4.0.</li>
      <li>A prototype implementation of the <jump href="http://www.w3.org/TR/2002/WD-DOM-Level-3-XPath-20020328/">DOM Level 3 XPath Specification</jump>. 
          The implementation is considered 'experimental' at this time due to the status of the specification.
          See the new sample, <link idref="samples" anchor="applyxpathdom">ApplyXPathDOM</link> for an
          example of how to use this API.</li>
     <li>Extension changes and enhancements:</li>
      <ul>
        <li>Implement canonical namespaces for all Xalan extensions. All extensions
        now use namespaces starting with <code>http://xml.apache.org/xalan</code>. The old namespaces are
        still supported for backward compatibility. See the updated 
        <link idref="extensionslib" anchor="intro">extensions</link> documentation for details.</li>
        <li>Added new EXSLT extension functions, including the EXSLT dynamic extension functions 
        max, min, sum, map, evaluate and closure, the EXSLT strings extension functions align, 
        concat, padding, split and tokenize, and some new extension functions in the math module.</li>
        <li>Reorganized the extension functions for new EXSLT extensions.
     The implementation of some extension functions (intersection, difference, distinct, 
     evaluate and tokenize) are moved from the main Extensions class to the corresponding EXSLT modules.</li>
        <li>Enable the EXSLT extensions for XSLTC. The EXSLT common, math, sets, dates-and-times and strings
        modules can be used in XSLTC.</li>
        <li>Integration of the nodeset and redirect extension for XSLTC. You can now use Xalan namespaces for
        these extensions in XSLTC.</li>
        <li>Enhancement in Java extenion for XSLTC. Three namespace formats (Java, package and class) can all
        be used in XSLTC. More type conversion rules are added as well.</li>
      </ul>
      <li>Enable support for invoking transformations using the Xalan compiler (XSLTC) via the 
     Xalan interpretive Process command line.  Specifically, the -XSLTC option was added.  The 
     -TT, -TG, -TS, -TTC, -QC, -L, -INCREMENTAL, -NOOPTIMIZE and -RL option do not work in XSLTC mode.  All
     other existing options can be used with -XSLTC.  Additional options were added to enable XSLTC compile
     and transform modes: -XO, -XD, -XJ, -XP, -XN, -XX, -XT.  See the Process usage statement for more
     information on these options.</li>
     <li>Fixed SQL Extension problem where a query that returned zero rows would incorrectly
      return a JDBC exception.</li>
     <li>Fixed a limitation for XPath expressions. The token queue and operations map can now grow
      to accomodate really large XPath expressions.</li>
     <li>Fixes for the following bugzilla defects: 
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4344">4344</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5046">5046</jump>,     
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6181">6181</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6927">6927</jump>,     
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7161">7161</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7357">7357</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8175">8175</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8473">8473</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8939">8939</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9731">9731</jump>,                              
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9959">9959</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10176">10176</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10384">10384</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10414">10414</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10643">10643</jump>,     
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=11073">11073</jump>,                         
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=11341">11341</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=11661">11661</jump>,     
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=11743">11743</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=11809">11809</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12077">12077</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12127">12127</jump>,                         
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12298">12298</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12687">12687</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13059">13059</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13303">13303</jump>,               
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13305">13305</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13106">13106</jump>,   
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13501">13501</jump>,            
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13711">13711</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13754">13754</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13863">13863</jump>,          
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13944">13944</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14022">14022</jump></li> 
     <li>Support for and bundling of Xerces Java 2.2.</li>
     <li>Support for and bundling of xml-apis.jar from the factoryfinder-build of the RIVERCOURT1 branch of xml-commons.  This version of the Java
     APIs for XML Processing successfully passes the JAXP 1.1 and JAXP 1.2 TCKs.</li>
     <li>For a list of &xslt4j; commits, see xalan-cvs@xml.apache.org in the
     <jump href="http://nagoya.apache.org/eyebrowse/index.html">Apache mailing list archive index</jump>.</li>
     <li>Support building Xalan with JDK 1.4.</li>
     </ul>
     </s3>
     <s3 title="Changes since &xslt4j; 2.3.1">
     <ul>
     <li>Fixes for the following bugzilla defects: 
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3238">3238</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4603">4603</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5013">5013</jump>, 
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5016">5016</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5941">5941</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6071">6071</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6268">6268</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6284">6284</jump>, 
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6356">6356</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6547">6547</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6798">6798</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6833">6833</jump>, 
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6925">6925</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6972">6972</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7023">7023</jump>, 
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7118">7118</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7123">7123</jump>, 
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7157">7157</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7410">7410</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7776">7776</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8324">8324</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8358">8358</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8551">8551</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8894">8894</jump>, 
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9068">9068</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9137">9137</jump>, 
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9146">9146</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9171">9171</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9174">9174</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9179">9179</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9572">9572</jump>, 
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9575">9575</jump>, 
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9683">9683</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9753">9753</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10137">10137</jump>, 
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10306">10306</jump>, 
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10323">10323</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10625">10625</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10715">10715</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10832">10832</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10837">10837</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10839">10839</jump>, 
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10914">10914</jump>, 
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10945">10945</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=11123">11123</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=11166">11166</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=11221">11221</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=11345">11345</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=11704">11704</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=11987">11987</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=11828">11828</jump>,
     <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12075">12075</jump></li>. 
     <li>&xslt4j; now uses a list of supported encodings in a properties file 
     (org.apache.xml.serializer.Encodings.properties). Fixes Bugzilla 6356. Patch from Sergey Ushakov. </li>     
     <li>Support for the <jump href="http://www.exslt.org/">EXSLT</jump> function and result elements, and EXSLT 
     date-and-time functions.</li>
     <li>Improvements to the extensions mechanism to more efficiently handle the detection and analysis of extensions 
     during the stylesheet "composition" process, and the generation of the required extension handlers during 
     initialization of the transformation process.</li>
     <li>Performance improvement.  Instead of looping through the ExtendedType objects, use a hashtable and go
     directly to the correct object.</li>
     <li>Separation of source and messages.  Messages have been moved into property files for easier localization.</li>
     <li>XSLTC version upgraded from 1.0 to 1.2.</li>
     <li>Support for and bundling of Xerces Java 2.1.</li>
     <li>Support for and bundling of xml-apis.jar from the RIVERCOURT1 branch of xml-commons.  This version of the Java
     APIs for XML Processing successfully passes the JAXP 1.1 and JAXP 1.2 TCKs.</li>
     <li>For a list of &xslt4j; commits, see xalan-cvs@xml.apache.org in the
     <jump href="http://nagoya.apache.org/eyebrowse/index.html">Apache mailing list archive index</jump>.</li>
     </ul>
     </s3>
     <anchor name="other"/>
     <s3 title="Other points of interest">
     <ul>
     <li>Xalan Java 2 is integrated with release 2 of &xml4j;. &xslt4j-current; does not include support for the deprecated &xslt4j; 1 compatability API. 
     The &xslt4j; 1 compatability code does NOT compile with &xml4j2;.<br/><br/></li>
     <li>The <link idref="samples" anchor="sql">SQL extension samples</link> continue to use InstantDB, but based on our realization of changes 
     that have occurred in the licensing of InstantDB, we no longer include InstantDB and the associated sample database with our distibution.
     We do, however, provide information on how to <link idref="samples" anchor="instantdbsetup">set up InstantDB</link> to support our SQL 
     extension samples.<br/><br/></li>
     <li>Documentation updates: We have subdivided the release notes into multiple files to accelerate HTML document loading, and we have added a
     document on <link idref="features">Transform features</link>.<br/><br/></li>
     <li>If an attempt is made to coerce a different namespace onto a prefix already in use in xsl:attribute, the attribute will come out 
     in the wrong namespace. Workaround: either provide an NCName instead of a QName for the attribute, or provide a QName with a prefix not
     used elsewhere.<br/><br/></li>
     <li>Handling xsl:namespace-alias declarations: In release 2.0.D01, we reported the need to do some research concerning exactly how &xslt;
     should handle xsl:namespace-alias declarations. As a result of discussions among members of the W3C Working Group on XSL, we have reached a
     more precise consensus on how namespaces should be represented when an xsl:namespace-alias declaration is in effect.<br/><br/>
     If a literal result element has a namespace prefix, the prefix will be preserved and the namespace URI of the element will be as
     specified in the xsl:namespace-alias element, but the result-prefix is not required to appear in the result. This also applies to the
     two other cases of "Literal namespace URI" mentioned in the XSLT Recommendation on 
     <jump href="http://www.w3.org/TR/xslt#literal-result-element">Literal Result Elements</jump>. More simply, if the stylesheet calls for
     &lt;axsl:foo&gt; to be output as a literal result element, then it will be output as &lt;axsl:foo&gt; in the result, but the namespace
     associated with this "axsl" prefix will be as designated in the xsl:namespace-alias declaration.<br/><br/></li>
     <li>For HTML output, &xslt4j2; outputs character entity references (&amp;copy; etc.) for the special characters designated in  
     <jump href="http://www.w3.org/TR/xhtml1/#dtds">Appendix A. DTDs of the XHTML 1.0: The Extensible HyperText Markup
     Language</jump>. &xslt4j; 1.x, on the other hand, outputs literal characters for some of these special characters.<br/><br/></li>
     <li>In conformance with the <jump href="http://www.w3.org/TR/xslt#section-HTML-Output-Method">XSLT Recommendation on the HTML 
     Output Method</jump> and <jump href="http://www.w3.org/TR/REC-html40/appendix/notes.html#h-B.2.1">Section B.2.1 of the HTML 4.0
     Recommendation</jump>, &xslt4j2; uses %hh encoding for each byte of the UTF-8 representation of non-ASCII characters in HTML URI
     attributes.<br/><br/></li>
     <li>When your stylesheet asks for an explicit carriage-return character (&amp;#13;) to be inserted into the output, it is output during
     the serialization process in escaped form unless escaping has been disabled.  When your stylesheet asks for an explicit line-feed character
     (&amp;#10;) to be output, the system-default line-break character(s) is/are output during the serialization process.  Also keep in mind that
     the XML parser normalizes line-breaks to line-feeds when it sends character events to the processor.<br/><br/></li>
     <li>If your XML input is a DOM, use the javax.xml.parsers.DocumentBuilderFactory setCoalescing() method to set coalescing to true (it is
     false by default), if you want to append CDATA sections to adjacent text sections to form a single text node (as the XPath standard calls
      for), and if the XML parser supports this feature (&xml4j-used; does not).<br/><br/></li>
     <li>When you traverse the namespace axis for a collection of element nodes, &xslt4j; includes <em>one</em> namespace node for each namespace in scope 
     for one or more of the nodes in that collection. The XPath expression does not return additional (redundant) namespace nodes for each element
     for which the namespace nodes are in scope.<br/><br/></li>
     <li>See <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2291">Bugzilla bug 2291</jump> for a discussion of issues surrounding
     use of the default character encoding to read META-INF/Services.<br/><br/></li>
     <li>As <jump href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1800">Bugzilla bug 1800</jump> reports, the Transformer does not get the 
     setTransformState event until after the startDocument event. This could present a problem for tools developers, and we do intend to fix this 
     bug.</li> 
     </ul>
     </s3><anchor name="bugs"/>
     <s3 title="Bugs">
     <p>All known &xslt4j; bugs are listed in <resource-ref idref="bugzilla"/>. For a list of open bugs with links to each bug
      report, see <resource-ref idref="buglist"/>. If you find a new bug, please enter a XalanJ2 bug report in this
      database.</p>
     <note>Before you can enter your first bug report, you must submit your email address to Bugzilla and receive a password.</note> 
     <p>We strongly encourage you write patches for problems you find and submit them to
      xalan-dev@xml.apache.org. We review the patches we receive to make sure they do not break something else, and (assuming they 
     do not) include them in our next release. In the interest of fixing bugs, adding enhancements, and addressing outstanding design
     issues, we sincerely want (and need!) your active participation in the ongoing development of &xslt;.</p>
     </s3>     
     <anchor name="status"/>
     <s3 title="Version of Xerces to use"> 
       <p>The &xslt4j-current; has been tested with &xml4j-used;. &download; For information about including &xml4j-jar; and xml-apis.jar on the system class path, see <link idref="getstarted" anchor="classpath">Setting up the system class path</link>.</p>
       <p><em>Important</em> You may experience unpredictable anomalies if your &xslt4j; and &xml4j; builds are not in synch. If you download an update to &xslt4j;, check the release notes to determine which version of &xml4j; you should use.</p>
       <note>You can use &xslt4j; with other XML parsers that implement the <resource-ref idref="jaxp12"/>. See 
       <link idref="usagepatterns" anchor="plug">Plugging in the Transformer and XML parser</link>.</note>
     </s3>
  </s2>
  <anchor name="build"/>  
  <s2 title="Build Notes">
  <p>We provide two distributions: a binary distribution, and a source distribution. See <link idref="getstarted" anchor="download">Downloading
  what you need</link>. If you have downloaded the binary distribution, you already have a build. If you downloaded the source
  distribution, you can use Ant to build &xslt4j;, including xalan.jar, xalansamples.jar, xalanservlet.war, the
  user documentation, and the Javadoc API documentation. You need the source distribution to do builds. Keep in mind that if you have also
  downloaded the binary distribution, any builds you run will overwrite that binary distribution.</p>
<ul>
<li><link anchor="ant">Using Ant</link></li>
<li><link anchor="jar">Building xalan.jar</link></li>
<li><link anchor="samples">Building sample applications</link></li>
<li><link anchor="doc">Building the &xslt4j; documentation</link></li>
</ul>
<anchor name="ant"/>
   <s3 title="Using Ant">
     <p>Apache <resource-ref idref="ant"/> is a flexible, powerful, and easy-to-use Java build tool that we include with the
     &xslt4j; distribution. The Ant JAR file is in the bin directory, and the cross-platform XML build file (build.xml) is in 
     the root directory along with a Windows32 batch file (build.bat) and a UNIX shell file (build.sh). The build file defines 
     the "targets" that you can use Ant to build. The batch and shell files set up the classpath and launch Ant with the target 
     (and any other arguments) you provide.</p>
     <p><em>Instructions for using Ant</em></p>
     <ol>
       <li>Set the JAVA_HOME environment variable to the JDK root directory.<br/><br/>
       JDK 1.2.2 or higher is required to build &xslt4j;. You must put tools.jar from the JDK
       bin directory on the classpath.<br/><br/></li>
       <li>Depending on your environment, run the batch file (build.bat) or shell file (build.sh) 
       from the &xslt4j; root directory, optionally with arguments (see the table of targets below).<br/><br/>
       The batch/shell file adds several JAR files to the classpath and launches Ant with any arguments 
       you provide. If you provide no target, Ant compiles the source files and rebuilds xalan.jar 
       (the "jar" target).</li>
     </ol>
     <p>You can also set up your classpath manually (see build.bat or build.sh for the details), and 
     then run Ant as follows:<br/><br/>
     <code>java org.apache.tools.ant.Main <ref>target</ref></code><br/><br/>
     where <ref>target</ref> is nothing (for the default target) or one of the following.</p>
     <table>
       <tr><td><em>Target</em></td><td><em>What Ant does</em></td></tr>
       <tr><td>compile</td><td>compiles &xslt4j; in build/classes.</td></tr>
       <tr><td>jar (the default)</td><td>creates xalan.jar in the build directory</td></tr>
       <tr><td>samples</td><td>compiles and jars the sample apps in build/xalansamples.jar</td></tr>
       <tr><td>servlet</td><td>compiles and jars the sample servlet in build/xalanservlet.jar</td></tr>
       <tr><td>docs</td><td>creates the HTML User's Guide in build/docs</td></tr>
       <tr><td>javadocs</td><td>generates the API documentation in ./build/docs/apidocs</td></tr>
       <tr><td>dist</td><td>generates a complete distribution tree with zip and tar.gz distribution files in build</td></tr>
       <tr><td>clean</td><td>purges the build and distribution</td></tr> 
  </table>
  <p>If you build a target that depends on other targets, Ant creates those other targets in the correct order.</p>
   </s3><anchor name="jar"/> 
   <s3 title="Building &xslt4j;">
     <p>The &xslt4j; build is in xalan.jar. The &xslt4j; source code tree is in the src directory.</p>
     <p>If you are using Ant, the target is jar (the default). For more information, see <link anchor="ant">Using
     Ant</link>.</p>
     <p>If you want to do the build without Ant, keep the following in mind:</p>
     <ul>
     <li>Set the classpath to include the src directory, &xml4j-jar;, and bsf.jar.</li>
     <li>Use a Java compiler (such as the IBM Just-In-Time compiler or the Sun javac) to compile all the .java files in the src
     tree. </li>
     <li>Use the Sun jar utility to store the resulting .class files in xalan.jar</li>
     </ul>
   </s3><anchor name="samples"/>
   <s3 title="Rebuilding a sample application">
   <p>If you modify a sample and want to recompile it, you can run the Java compiler in the directory containing the
   example. Be sure xalan.jar, xml-apis.jar, and &xml4j-jar; are on the classpath. </p>
   <p>To recompile and run the class files in the servlet subdirectory, the javax.servlet and 
   javax.servlet.http packages must also be on the classpath. These packages are available via
   the servlet.jar file found in Apache Tomcat ( see <resource-ref idref="tomcat"/> ).</p>
   <p>After recompiling a sample, you can use the Sun jar utility to place your new .class files in
    xalansamples.jar.</p>
    <p>You can use Ant with the samples target to recompile the samples and place the unpackaged class files in xalansamples.jar.
     For more information, see <link anchor="ant">Using Ant</link>.</p>
    <note>To rebuild (and to run) the sample servlet, the javax.servlet and javax.servlet.http packages must be on your
    classpath.</note>
   </s3><anchor name="doc"/>
   <s3 title="Rebuilding the &xslt4j; documentation">
     <p>&xslt4j; includes a number of XML source files, XSL stylesheets, document type definition (DTD)
      files, entity relationship (ENT) files, graphics, and a JavaScript file that provide the input for the &xslt4j;
      HTML User's Guide, and the overview and package-level documents used during the generation of Javadoc.</p>
      <p>To rebuild the documentation, you must use the StyleBook tool and the JDK 1.2.2 java and javadoc
      tools. StyleBook (which uses Xalan and Xerces) is in stylebook-1.0-b2.jar. Some of the document definition files,
      stylesheets, and resources are stored in xml-site-style.tar.gz, and are unzipped when you run Ant as described
       below.</p>
      <p>You can use Ant with the docs target to regenerate the User's Guide and with the javadocs target to regenerate the
      Javadoc API documentation. For more information, see <link anchor="ant">Using Ant</link>.</p>
      <p>If you want to rebuild the documentation without using Ant, keep the following in mind:</p>
       <ul>
       <li>Unzip xml-site-style.tar.gz into the xdocs directory (the operation places files in a number of subdirectories).
       <br/><br/></li>
       <li>Be sure stylebook-1.0-b2.jar, xalan2jdoc.jar, xalan.jar, bsf.jar, bsfengines.jar, and &xml4j-jar; are on the class
       path.<br/><br/></li>
       <li>To build doc in a build/docs subdirectory, run StyleBook from the xdocs directory as follows:<br/><br/>
       <code>java org.apache.stylebook.StyleBook "targetDirectory=../build/docs/" sources/xalanLocal.xml style</code>
       <br/><br/></li>
       <li>To build the HTML source files that javadoc needs for the TrAX top-level and package-level documentation, add
       a build/docs/apdidocs/javax/xml/transform directory and run the Xalan command-line utility from the xdocs directory 
       as follows (all one line):<br/><br/>
<code>
java org.apache.xalan.xslt.Process 
  -in sources/trax/trax.xml
  -param package-root '../../../src/'
  -xsl style/stylesheets/spec.xsl 
  -out build/docs/apidocs/javax/xml/transform/trax.html</code><br/><br/></li>
        <li>Before you run javadoc, make sure the following directory structure exists under the Xalan root
         directory: build/docs/apidocs.<br/><br/></li>
       <li>To build the API documentation, run the JDK 1.2.2 javadoc tool from the xdocs directory (all one line):<br/><br/>
<code>
javadoc -doclet xalanjdoc.Standard 
 -docletpath ../bin/xalanjdoc.jar 
 -private
 -overview ../src/javadocOverview.html -sourcepath ../src 
 -group TrAX "javax.xml.transform*" 
 -group Xalan_Core "org.apache.xalan.processor:
        org.apache.xalan.templates:
 org.apache.xalan.transformer"
 -group XPath "org.apache.xpath*"
 -group Utilities "org.apache.xml.utils*"
 -group Xalan_Other "org.apache.xalan.client:
        org.apache.xalan.dtm:
 org.apache.xalan.extensions:org.apache.xalan.res:
 org.apache.xalan.stree:org.apache.xalan.trace:
 org.apache.xalan.xslt" 
 -group Xalan_Extensions "org.apache.xalan.lib*" 
 -group Serializers "org.apache.xml.serializer" 
 org.apache.xalan.client org.apache.xalan.dtm 
 org.apache.xalan.extensions org.apache.xalan.lib 
 org.apache.xalan.lib.sql org.apache.xalan.processor 
 org.apache.xalan.res org.apache.xalan.stree 
 org.apache.xalan.templates org.apache.xalan.trace 
 org.apache.xalan.transformer org.apache.xalan.xslt 
 org.apache.xpath org.apache.xpath.axes 
 org.apache.xpath.compiler org.apache.xpath.functions 
 org.apache.xpath.objects org.apache.xpath.operations 
 org.apache.xpath.patterns org.apache.xpath.res
 org.apache.xml.serializer javax.xml.transform  
 javax.xml.transform.dom javax.xml.transform.sax 
 javax.xml.transform.stream javax.xml.parsers
 -d ../build/docs/apidocs -windowtitle "&xslt4j; 2" 
 -doctitle "xslt4j; 2" -bottom "Copyright &#169; 
  2000 Apache XML Project. All Rights Reserved."
</code></li>
</ul>
  </s3>    
 </s2><anchor name="contact"/>
 <s2 title="Getting in Touch">
  <p>Your feedback is more than welcome. Offers of help are even more so! Perhaps you would like to 
  take on an active role in the ongoing development, testing, and documentation of &xslt4j;?</p> 
<p>Please email your comments, questions, suggestions, and offers to join the Xalan team 
to <human-resource-ref idref="xalandev"/>.</p>
 </s2>
<!-- We need to overhaul this list if we still want to publish it.  
     It should probably be broken out into active & past contributors.
 <anchor name="developer-list"/>
 <s2 title="Developers">
<p>A list of some of people currently working on working on &xslt4j;:</p>
  <ul>
  <li><human-resource-ref idref="sboag"/>
    <br/>Xalan architect, lead developer on Xalan-J.
  </li>
  <li><human-resource-ref idref="scurcuru"/>
    <br/>Lead tester for API issues, automation framework.
  </li>
  <li><human-resource-ref idref="pdick"/>
    <br/>XSLT Conformance stylesheet issues and Xalan-C testing.
  </li>
  <li><human-resource-ref idref="jkesselman"/>
    <br/>Xalan-J developer, compiling/compiled stylesheets experiments.
  </li>
  <li><human-resource-ref idref="dleslie"/>
    <br/>Xalan-J and -C documentation, servlets, applets, and samples.
  </li>
  <li><human-resource-ref idref="cmanolache"/>
    <br/>Xalan-J developer and JAXP expert.
  </li>
  <li><human-resource-ref idref="dmarston"/>
    <br/>Lead tester for XSLT Conformance stylesheet issues.
  </li>
  <li><human-resource-ref idref="mmidy"/>
    <br/>Xalan-J developer.
  </li>
  <li><human-resource-ref idref="gpeskin"/>
    <br/>Xalan-J developer, especially extension mechanisim.
  </li>
  <li><human-resource-ref idref="jgentilin"/>
    <br/>Major work on the SQL extensions library.
  </li>
  <li><human-resource-ref idref="mkwan"/>
    <br/>Xalan-J developer.
  </li>
  <li><human-resource-ref idref="ilene"/>
    <br/>Xalan-J developer.
  </li>
  <li><human-resource-ref idref="zongaro"/>
    <br/>Xalan-J developer.
  </li>
  <li><human-resource-ref idref="minchau"/>
    <br/>Xalan-J developer.
  </li>
  <li><human-resource-ref idref="igor"/>
    <br/>Xalan-J developer.
  </li>      
  <li><human-resource-ref idref="jycli"/>
    <br/>Xalan-J developer.
  </li>  
 </ul>
 </s2> -->
</s1>
