Xalan-Java version 2.5.D1
|
|
 |
 |
 |
 |
Changes since Xalan-Java
2.4.1 |
 |
 |
 |
 |
|
|
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.
Fixes in this release include the following:
- 4858,
5140,
6075,
6157,
10053,
10626,
12481,
13414,
13651,
13774,
13775,
13977,
14112,
14148,
14157,
14178,
14229,
14236,
14237,
14241,
14244,
14300,
14322,
14324,
14365,
14368,
14406,
14578,
14753,
14856,
14862,
14965,
15074,
15094,
15218,
15254,
15373,
15586,
16745,
17030,
17136
- Support for and bundling of Xerces Java 2.3.
- 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.
- For a list of Xalan-Java commits, see
xalan-cvs@xml.apache.org in the Apache mailing
list archive index.
|
 |
 |
 |
 |
Changes since Xalan-Java
2.4.0 |
 |
 |
 |
 |
|
|
- Performance fixes and enhancements to address the
degradation of performance between Xalan-Java version 2.3.1 and
Xalan-Java 2.4.0.
- A prototype implementation of the DOM
Level 3 XPath Specification. The implementation is considered
'experimental' at this time due to the status of the specification.
See the new sample, ApplyXPathDOM for an example
of how to use this API.
- Extension changes and enhancements:
-
- Implement canonical namespaces for all Xalan extensions.
All extensions now use namespaces starting with
http://xml.apache.org/xalan .
The old namespaces are still supported for backward compatibility.
See the updated extensions
documentation for details.
- 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.
- 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.
- Enable the EXSLT extensions for XSLTC. The EXSLT common,
math, sets, dates-and-times and strings modules can be used in
XSLTC.
- Integration of the nodeset and redirect extension for
XSLTC. You can now use Xalan namespaces for these extensions in
XSLTC.
- 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.
- 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.
- Fixed SQL Extension problem where a query that returned
zero rows would incorrectly return a JDBC exception.
- Fixed a limitation for XPath expressions. The token queue
and operations map can now grow to accomodate really large XPath
expressions.
- Fixes for the following bugzilla defects: 4344,
5046,
6181,
6927,
7161,
7357,
8175,
8473,
8939,
9731,
9959,
10176,
10384,
10414,
10643,
11073,
11341,
11661,
11743,
11809,
12077,
12127,
12298,
12687,
13059,
13303,
13305,
13106,
13501,
13711,
13754,
13863,
13944,
14022
- Support for and bundling of Xerces Java 2.2.
- 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.
- For a list of Xalan-Java commits, see
xalan-cvs@xml.apache.org in the Apache mailing
list archive index.
- Support building Xalan with JDK 1.4.
|
 |
 |
 |
 |
Changes since Xalan-Java
2.3.1 |
 |
 |
 |
 |
|
|
- Fixes for the following bugzilla defects: 3238,
4603,
5013,
5016,
5941,
6071,
6268,
6284,
6356,
6547,
6798,
6833,
6925,
6972,
7023,
7118,
7123,
7157,
7410,
7776,
8324,
8358,
8551,
8894,
9068,
9137,
9146,
9171,
9174,
9179,
9572,
9575,
9683,
9753,
10137,
10306,
10323,
10625,
10715,
10832,
10837,
10839,
10914,
10945,
11123,
11166,
11221,
11345,
11704,
11987,
11828,
12075
- .
- Xalan-Java now uses a list of supported encodings in a
properties file (org.apache.xalan.serialize.Encodings.properties).
Fixes Bugzilla 6356. Patch from Sergey Ushakov.
- Support for the EXSLT
function and result elements, and EXSLT date-and-time
functions.
- 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.
- Performance improvement. Instead of looping through the
ExtendedType objects, use a hashtable and go directly to the
correct object.
- Separation of source and messages. Messages have been
moved into property files for easier localization.
- XSLTC version upgraded from 1.0 to 1.2.
- Support for and bundling of Xerces Java 2.1.
- 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.
- For a list of Xalan-Java commits, see
xalan-cvs@xml.apache.org in the Apache mailing
list archive index.
|
|
|
- Xalan Java 2 is integrated with release 2 of Xerces-Java.
Xalan-Java version 2.5.D1 does not include support for the
deprecated Xalan-Java 1 compatability API. The Xalan-Java 1
compatability code does NOT compile with Xerces-Java 2.
- The SQL extension samples
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 set up InstantDB to support
our SQL extension samples.
- Documentation updates: We have subdivided the release
notes into multiple files to accelerate HTML document loading, and
we have added a document on Transform
features.
- 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.
- Handling xsl:namespace-alias declarations: In release
2.0.D01, we reported the need to do some research concerning
exactly how Xalan 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.
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 Literal
Result Elements. More simply, if the stylesheet calls for
<axsl:foo> to be output as a literal result element, then it
will be output as <axsl:foo> in the result, but the namespace
associated with this "axsl" prefix will be as designated in the
xsl:namespace-alias declaration.
- For HTML output, Xalan-Java 2 outputs character entity
references (© etc.) for the special characters designated
in Appendix A. DTDs of
the XHTML 1.0: The Extensible HyperText Markup Language.
Xalan-Java 1.x, on the other hand, outputs literal characters for
some of these special characters.
- In conformance with the XSLT
Recommendation on the HTML Output Method and Section
B.2.1 of the HTML 4.0 Recommendation, Xalan-Java 2 uses %hh
encoding for each byte of the UTF-8 representation of non-ASCII
characters in HTML URI attributes.
- When your stylesheet asks for an explicit carriage-return
character ( ) 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 ( ) 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.
- 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 (Xerces-Java 2.3.0 does not).
- When you traverse the namespace axis for a collection of
element nodes, Xalan-Java includes one 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.
- See Bugzilla
bug 2291 for a discussion of issues surrounding use of the
default character encoding to read META-INF/Services.
- As Bugzilla
bug 1800 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.
|
|
|
All known Xalan-Java bugs are listed in Bugzilla
(the Apache bug database). For a list of open bugs with links
to each bug report, see XalanJ2 open bugs. If you find a new bug, please
enter a XalanJ2 bug report in this database.
 |
Before you can enter
your first bug report, you must submit your email address to
Bugzilla and receive a password. |
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
Xalan.
|
|
|
The Xalan-Java version 2.5.D1 has been tested with
Xerces-Java 2.3.0. The Xalan-Java version 2.5.D1 download from
xml.apache.org includes xercesImpl.jar from Xerces-Java 2.3.0 and
xml-apis.jar. For version information about the contents of
xml-apis.jar, see the JAR manifest. For information about including
xercesImpl.jar and xml-apis.jar on the system class path, see Setting up the system class
path.
Important You may experience unpredictable
anomalies if your Xalan-Java and Xerces-Java builds are not in
synch. If you download an update to Xalan-Java, check the release
notes to determine which version of Xerces-Java you should
use.
|
|
|
|
We provide
two distributions: a binary distribution, and a source
distribution. See Downloading
what you need. If you have downloaded the binary distribution,
you already have a build. If you downloaded the source
distribution, you can use Ant to build Xalan-Java, 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.
|
|
Apache Ant is a flexible, powerful, and easy-to-use Java
build tool that we include with the Xalan-Java 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.
Instructions for using Ant
- Set the JAVA_HOME environment variable to the JDK root
directory.
JDK 1.2.2 or higher is required to build Xalan-Java. You must put
tools.jar from the JDK bin directory on the classpath.
- Depending on your environment, run the batch file
(build.bat) or shell file (build.sh) from the Xalan-Java root
directory, optionally with arguments (see the table of targets
below).
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).
You can also set up your classpath manually (see
build.bat or build.sh for the details), and then run Ant as
follows:
java
org.apache.tools.ant.Main target
where target is nothing (for the default target) or one of
the following.
Target |
What Ant does |
compile |
compiles Xalan-Java in build/classes. |
jar (the default) |
creates xalan.jar in the build directory
|
samples |
compiles and jars the sample apps in
build/xalansamples.jar |
servlet |
compiles and jars the sample servlet in
build/xalanservlet.jar |
docs |
creates the HTML User's Guide in build/docs
|
javadocs |
generates the API documentation in
./build/docs/apidocs |
dist |
generates a complete distribution tree with zip and
tar.gz distribution files in build |
clean |
purges the build and distribution |
If you build a target that depends on other targets, Ant
creates those other targets in the correct order.
|
|
|
The Xalan-Java build is in xalan.jar. The Xalan-Java
source code tree is in the src directory.
If you are using Ant, the target is jar (the default).
For more information, see Using
Ant.
If you want to do the build without Ant, keep the
following in mind:
- Set the classpath to include the src directory,
xercesImpl.jar, and bsf.jar.
- 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.
- Use the Sun jar utility to store the resulting .class
files in xalan.jar
|
 |
 |
 |
 |
Rebuilding the Xalan-Java
documentation |
 |
 |
 |
 |
|
|
Xalan-Java 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-Java HTML User's Guide, and the
overview and package-level documents used during the generation of
Javadoc.
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.
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 Using Ant.
If you want to rebuild the documentation without using
Ant, keep the following in mind:
- Unzip xml-site-style.tar.gz into the xdocs directory (the
operation places files in a number of subdirectories).
- Be sure stylebook-1.0-b2.jar, xalan2jdoc.jar, xalan.jar,
bsf.jar, bsfengines.jar, and xercesImpl.jar are on the class
path.
- To build doc in a build/docs subdirectory, run StyleBook
from the xdocs directory as follows:
java
org.apache.stylebook.StyleBook "targetDirectory=../build/docs/"
sources/xalanLocal.xml style
- 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):
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
- Before you run javadoc, make sure the following directory
structure exists under the Xalan root directory:
build/docs/apidocs.
- To build the API documentation, run the JDK 1.2.2 javadoc
tool from the xdocs directory (all one line):
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 "Xalan-Java 2" -doctitle
"xslt4j; 2" -bottom "Copyright © 2000 Apache XML Project. All
Rights Reserved."
|
|
|
|
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 Xalan-Java?
Please
email your comments, questions, suggestions, and offers to join the
Xalan team to Xalan
Development Mailing List.
|
|
|
A list of
some of people currently working on working on
Xalan-Java:
|
|