blob: 2bb80e7b18f6e0f75ebd04e1f88aaec0d9a0a3ac [file] [log] [blame]
<?xml version="1.0" standalone="no"?>
<!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd"[
<!ENTITY done-j SYSTEM "DONE">]>
<!--
* The Apache Software License, Version 1.1
*
*
* Copyright (c) 1999-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xalan" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation and was
* originally based on software copyright (c) 1999, Lotus
* Development Corporation., http://www.lotus.com. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
-->
<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="xsltc_usage" anchor="constraints">XSLTC usage constraints</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.4.0</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.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.xalan.serialize.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="jaxp"/>. 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.jar, 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/>
If you are using JDK 1.1.8, you must also put classes.zip in the JDK bin directory on the classpath. You can use Ant
with JDK 1.1.8 to compile and jar the &xslt4j; source files, but you must have JDK 1.2.2 or higher to build the
documentation.<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;, bsf.jar, and bsfengines.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. 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. Sun
distributes these packages in the JSWDK 1.0.1 servlet.jar file.</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 Xalan
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.xalan.serialize"
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.xalan.serialize 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><anchor name="developer-list"/>
<s2 title="Developers">
<p>A list of some of people currently working on working on &xslt4j;:</p>
<!-- in alphabetical order, by last name -->
<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>
</ul>
</s2>
</s1>