blob: 669d313fcc4dca3f1414f1c4e851c9205a070a23 [file] [log] [blame]
<?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
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* See the License for the specific language governing permissions and
* limitations under the License.
<!-- $Id$ -->
<s1 title="Release Notes">
<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">
<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> -->
<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>
<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="">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="">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="">797</jump>,
<jump href="">1396</jump>,
<jump href="">5761</jump>,
<jump href="">15140</jump>,
<jump href="">16889</jump>,
<jump href="">18351</jump>,
<jump href="">19194</jump>,
<jump href="">19464</jump>,
<jump href="">22376</jump>,
<jump href="">23046</jump>,
<jump href="">23591</jump>,
<jump href="">24278</jump>,
<jump href="">24111</jump>,
<jump href="">24187</jump>,
<jump href="">24188</jump>,
<jump href="">24302</jump>,
<jump href="">24304</jump>,
<jump href="">24365</jump>,
<jump href="">24414</jump>,
<jump href="">24518</jump>,
<jump href="">24695</jump>,
<jump href="">24728</jump>,
<jump href="">24788</jump>,
<jump href="">24793</jump>,
<jump href="">24958</jump>,
<jump href="">24979</jump>,
<jump href="">24985</jump>,
<jump href="">24988</jump>,
<jump href="">25368</jump>,
<jump href="">25416</jump>,
<jump href="">25442</jump>,
<jump href="">25449</jump>,
<jump href="">25816</jump>,
<jump href="">25924</jump>,
<jump href="">26019</jump>,
<jump href="">26030</jump>,
<jump href="">26075</jump>,
<jump href="">26169</jump>,
<jump href="">26217</jump>,
<jump href="">26697</jump>,
<jump href="">26742</jump>,
<jump href="">26829</jump>,
<jump href="">26842</jump>
<li>For a list of &xslt4j; commits, see in the
<jump href="">Apache mailing list archive index</jump>.
<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>
<jump href="">782</jump>,
<jump href="">788</jump>,
<jump href="">789</jump>,
<jump href="">795</jump>,
<jump href="">890</jump>,
<jump href="">3415</jump>,
<jump href="">5133</jump>,
<jump href="">5972</jump>,
<jump href="">6155</jump>,
<jump href="">7205</jump>,
<jump href="">7408</jump>,
<jump href="">10900</jump>,
<jump href="">11414</jump>,
<jump href="">12441</jump>,
<jump href="">13082</jump>,
<jump href="">14149</jump>,
<jump href="">14607</jump>,
<jump href="">15090</jump>,
<jump href="">15327</jump>,
<jump href="">15700</jump>,
<jump href="">15828</jump>,
<jump href="">15901</jump>,
<jump href="">16311</jump>,
<jump href="">16512</jump>,
<jump href="">16675</jump>,
<jump href="">17630</jump>,
<jump href="">18821</jump>,
<jump href="">18907</jump>,
<jump href="">19297</jump>,
<jump href="">19591</jump>,
<jump href="">19770</jump>,
<jump href="">19823</jump>,
<jump href="">19890</jump>,
<jump href="">19918</jump>,
<jump href="">19972</jump>,
<jump href="">19973</jump>,
<jump href="">20074</jump>,
<jump href="">20114</jump>,
<jump href="">20256</jump>,
<jump href="">20537</jump>,
<jump href="">20572</jump>,
<jump href="">20625</jump>,
<jump href="">20685</jump>,
<jump href="">20795</jump>,
<jump href="">20819</jump>,
<jump href="">20832</jump>,
<jump href="">20841</jump>,
<jump href="">20909</jump>,
<jump href="">20913</jump>,
<jump href="">20920</jump>,
<jump href="">21039</jump>,
<jump href="">21048</jump>,
<jump href="">21087</jump>,
<jump href="">21300</jump>,
<jump href="">21309</jump>,
<jump href="">21449</jump>,
<jump href="">21452</jump>,
<jump href="">21471</jump>,
<jump href="">21478</jump>,
<jump href="">21491</jump>,
<jump href="">21697</jump>,
<jump href="">21713</jump>,
<jump href="">21805</jump>,
<jump href="">21893</jump>,
<jump href="">22025</jump>,
<jump href="">22115</jump>,
<jump href="">22167</jump>,
<jump href="">22342</jump>,
<jump href="">22422</jump>,
<jump href="">22438</jump>,
<jump href="">22623</jump>,
<jump href="">22769</jump>,
<jump href="">22777</jump>,
<jump href="">22808</jump>,
<jump href="">22880</jump>,
<jump href="">23200</jump>,
<jump href="">23113</jump>,
<jump href="">23115</jump>,
<jump href="">23271</jump>,
<jump href="">23418</jump>,
<jump href="">23706</jump>,
<jump href="">23812</jump>,
<jump href="">23896</jump>,
<jump href="">23983</jump>,
<jump href="">24013</jump>,
<jump href="">24025</jump>
<li>For a list of &xslt4j; commits, see in the
<jump href="">Apache mailing list archive index</jump>.
<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>
<jump href="">15200</jump>,
<jump href="">18585</jump>,
<jump href="">18926</jump>,
<jump href="">19029</jump>,
<jump href="">19388</jump>,
<jump href="">19471</jump>,
<jump href="">19474</jump>,
<jump href="">19522</jump>,
<jump href="">19640</jump>,
<jump href="">19900</jump>,
<jump href="">19960</jump>,
<jump href="">20237</jump>,
<jump href="">20273</jump>
<li>For a list of &xslt4j; commits, see in the
<jump href="">Apache mailing list archive index</jump>.
<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:
<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>
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 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>
<li><jump href="">4858</jump>,
<jump href="">5140</jump>,
<jump href="">6075</jump>,
<jump href="">6157</jump>,
<jump href="">10053</jump>,
<jump href="">10626</jump>,
<jump href="">12481</jump>,
<jump href="">13414</jump>,
<jump href="">13651</jump>,
<jump href="">13774</jump>,
<jump href="">13775</jump>,
<jump href="">13977</jump>,
<jump href="">14112</jump>,
<jump href="">14148</jump>,
<jump href="">14157</jump>,
<jump href="">14178</jump>,
<jump href="">14229</jump>,
<jump href="">14236</jump>,
<jump href="">14237</jump>,
<jump href="">14241</jump>,
<jump href="">14244</jump>,
<jump href="">14300</jump>,
<jump href="">14322</jump>,
<jump href="">14324</jump>,
<jump href="">14365</jump>,
<jump href="">14368</jump>,
<jump href="">14406</jump>,
<jump href="">14578</jump>,
<jump href="">14753</jump>,
<jump href="">14856</jump>,
<jump href="">14862</jump>,
<jump href="">14965</jump>,
<jump href="">15074</jump>,
<jump href="">15094</jump>,
<jump href="">15218</jump>,
<jump href="">15254</jump>,
<jump href="">15373</jump>,
<jump href="">15586</jump>,
<jump href="">16745</jump>,
<jump href="">17030</jump>,
<jump href="">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 in the
<jump href="">Apache mailing list archive index</jump>.</li>
<s3 title="Changes since &xslt4j; 2.4.0">
<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="">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>
<li>Implement canonical namespaces for all Xalan extensions. All extensions
now use namespaces starting with <code></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>
<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="">4344</jump>,
<jump href="">5046</jump>,
<jump href="">6181</jump>,
<jump href="">6927</jump>,
<jump href="">7161</jump>,
<jump href="">7357</jump>,
<jump href="">8175</jump>,
<jump href="">8473</jump>,
<jump href="">8939</jump>,
<jump href="">9731</jump>,
<jump href="">9959</jump>,
<jump href="">10176</jump>,
<jump href="">10384</jump>,
<jump href="">10414</jump>,
<jump href="">10643</jump>,
<jump href="">11073</jump>,
<jump href="">11341</jump>,
<jump href="">11661</jump>,
<jump href="">11743</jump>,
<jump href="">11809</jump>,
<jump href="">12077</jump>,
<jump href="">12127</jump>,
<jump href="">12298</jump>,
<jump href="">12687</jump>,
<jump href="">13059</jump>,
<jump href="">13303</jump>,
<jump href="">13305</jump>,
<jump href="">13106</jump>,
<jump href="">13501</jump>,
<jump href="">13711</jump>,
<jump href="">13754</jump>,
<jump href="">13863</jump>,
<jump href="">13944</jump>,
<jump href="">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 in the
<jump href="">Apache mailing list archive index</jump>.</li>
<li>Support building Xalan with JDK 1.4.</li>
<s3 title="Changes since &xslt4j; 2.3.1">
<li>Fixes for the following bugzilla defects:
<jump href="">3238</jump>,
<jump href="">4603</jump>,
<jump href="">5013</jump>,
<jump href="">5016</jump>,
<jump href="">5941</jump>,
<jump href="">6071</jump>,
<jump href="">6268</jump>,
<jump href="">6284</jump>,
<jump href="">6356</jump>,
<jump href="">6547</jump>,
<jump href="">6798</jump>,
<jump href="">6833</jump>,
<jump href="">6925</jump>,
<jump href="">6972</jump>,
<jump href="">7023</jump>,
<jump href="">7118</jump>,
<jump href="">7123</jump>,
<jump href="">7157</jump>,
<jump href="">7410</jump>,
<jump href="">7776</jump>,
<jump href="">8324</jump>,
<jump href="">8358</jump>,
<jump href="">8551</jump>,
<jump href="">8894</jump>,
<jump href="">9068</jump>,
<jump href="">9137</jump>,
<jump href="">9146</jump>,
<jump href="">9171</jump>,
<jump href="">9174</jump>,
<jump href="">9179</jump>,
<jump href="">9572</jump>,
<jump href="">9575</jump>,
<jump href="">9683</jump>,
<jump href="">9753</jump>,
<jump href="">10137</jump>,
<jump href="">10306</jump>,
<jump href="">10323</jump>,
<jump href="">10625</jump>,
<jump href="">10715</jump>,
<jump href="">10832</jump>,
<jump href="">10837</jump>,
<jump href="">10839</jump>,
<jump href="">10914</jump>,
<jump href="">10945</jump>,
<jump href="">11123</jump>,
<jump href="">11166</jump>,
<jump href="">11221</jump>,
<jump href="">11345</jump>,
<jump href="">11704</jump>,
<jump href="">11987</jump>,
<jump href="">11828</jump>,
<jump href="">12075</jump></li>.
<li>&xslt4j; now uses a list of supported encodings in a properties file
( Fixes Bugzilla 6356. Patch from Sergey Ushakov. </li>
<li>Support for the <jump href="">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 in the
<jump href="">Apache mailing list archive index</jump>.</li>
<anchor name="other"/>
<s3 title="Other points of interest">
<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="">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="">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="">XSLT Recommendation on the HTML
Output Method</jump> and <jump href="">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
<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="">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="">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
</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
<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 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>
<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>
<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>
<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>
<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 ( 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>
<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 (
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>
<p>You can also set up your classpath manually (see build.bat or for the details), and
then run Ant as follows:<br/><br/>
<code>java <ref>target</ref></code><br/><br/>
where <ref>target</ref> is nothing (for the default target) or one of the following.</p>
<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>
<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
<p>If you want to do the build without Ant, keep the following in mind:</p>
<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>
</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
<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
</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
<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>
<li>Unzip xml-site-style.tar.gz into the xdocs directory (the operation places files in a number of subdirectories).
<li>Be sure stylebook-1.0-b2.jar, xalan2jdoc.jar, xalan.jar, bsf.jar, bsfengines.jar, and &xml4j-jar; are on the class
<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>
<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/>
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/>
javadoc -doclet xalanjdoc.Standard
-docletpath ../bin/xalanjdoc.jar
-overview ../src/javadocOverview.html -sourcepath ../src
-group TrAX "javax.xml.transform*"
-group Xalan_Core "org.apache.xalan.processor:
-group XPath "org.apache.xpath*"
-group Utilities "org.apache.xml.utils*"
-group Xalan_Other "org.apache.xalan.client:
-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.parsers
-d ../build/docs/apidocs -windowtitle "&xslt4j; 2"
-doctitle "xslt4j; 2" -bottom "Copyright &#169;
2000 Apache XML Project. All Rights Reserved."
</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>
<!-- 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>
<li><human-resource-ref idref="sboag"/>
<br/>Xalan architect, lead developer on Xalan-J.
<li><human-resource-ref idref="scurcuru"/>
<br/>Lead tester for API issues, automation framework.
<li><human-resource-ref idref="pdick"/>
<br/>XSLT Conformance stylesheet issues and Xalan-C testing.
<li><human-resource-ref idref="jkesselman"/>
<br/>Xalan-J developer, compiling/compiled stylesheets experiments.
<li><human-resource-ref idref="dleslie"/>
<br/>Xalan-J and -C documentation, servlets, applets, and samples.
<li><human-resource-ref idref="cmanolache"/>
<br/>Xalan-J developer and JAXP expert.
<li><human-resource-ref idref="dmarston"/>
<br/>Lead tester for XSLT Conformance stylesheet issues.
<li><human-resource-ref idref="mmidy"/>
<br/>Xalan-J developer.
<li><human-resource-ref idref="gpeskin"/>
<br/>Xalan-J developer, especially extension mechanisim.
<li><human-resource-ref idref="jgentilin"/>
<br/>Major work on the SQL extensions library.
<li><human-resource-ref idref="mkwan"/>
<br/>Xalan-J developer.
<li><human-resource-ref idref="ilene"/>
<br/>Xalan-J developer.
<li><human-resource-ref idref="zongaro"/>
<br/>Xalan-J developer.
<li><human-resource-ref idref="minchau"/>
<br/>Xalan-J developer.
<li><human-resource-ref idref="igor"/>
<br/>Xalan-J developer.
<li><human-resource-ref idref="jycli"/>
<br/>Xalan-J developer.
</s2> -->