blob: e647bb5ad2f5508c07c43b6f6372ee3f8ebc3c4e [file] [log] [blame]
<?xml version="1.0" standalone="no"?>
<!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd">
<!--
* 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="What's new in &xslt4j2;">
<s2 title="What's new in &xslt4j-current;">
<p> &nbsp; </p>
<s3 title="Support for JAXP 1.3">
<p>Support for JAXP 1.3 has been introduced in this release of &xslt4j;. JAXP 1.3
includes a new javax.xml.xpath package, which provides an object-model neutral
API for the evaluation of XPath expressions and access to the evaluation environment.
Please refer to <link idref="xpath_apis">Using the JAXP 1.3 XPath API</link> for details on how to
use the new XPath API. You can also look at the code in the samples
<link idref="samples" anchor="applyxpathjaxp">ApplyXPathJAXP</link> ,
<link idref="samples" anchor="xpathresolver">XPathResolver</link> and
<link idref="samples" anchor="extensionresolver">ExtensionFunctionResolver</link>.</p>
<p>There are also a few new transformer features
in JAXP 1.3, as described in the following list:<br/><br/>
<li>A new method
<jump href="apidocs/javax/xml/transform/TransformerFactory.html#setFeature(java.lang.String, boolean)">
TransformerFactory.setFeature(String name, boolean value)</jump></li>
<li>A new method <jump href="apidocs/javax/xml/transform/Transformer.html#reset()">
Transformer.reset()</jump></li>
<li>A new nextSibling attribute is introduced for
<jump href="apidocs/javax/xml/transform/dom/DOMResult.html">DOMResult</jump>, accessible
by the constructors, getter and setter methods.</li>
<li>Support for the <link idref="features" anchor="secureprocessing">secure processing feature</link></li></p>
</s3>
<s3 title="New default error handling behavior">
The behavior of the default <jump href="apidocs/javax/xml/transform/ErrorListener.html">ErrorListener</jump>
was changed in this release of &xslt4j;,
in order to conform with a clarification of the required behavior described by JAXP 1.3.
If an application does not register its own ErrorListener, the default ErrorListener is
used which reports all warnings and errors to System.err and does not throw any Exceptions. Applications
are strongly encouraged to register and use ErrorListeners that insure proper behavior for warnings and errors.
The default ErrorListener of the old &xslt4ji; processor throws exceptions on errors and fatal errors. If your
code expects exceptions to be thrown on errors and fatal errors, you have to set a customized ErrorListener on
TransformerFactory and/or Transformer. You can use
<jump href="apidocs/org/apache/xml/utils/DefaultErrorHandler.html">org.apache.xml.utils.DefaultErrorHandler</jump>
as a sample ErrorListener implementation.
</s3>
<s3 title="Support for XML 1.1">
<p>This release of &xslt4j; adds support for Namespaces in XML 1.1 and XML 1.1 output documents.
The processors: <br/><br/>
<li> support C0 control characters </li>
<li> handle C1 control characters in a way that is consistent with the requirements of XML 1.1 </li>
<li> treat NEL (U+0085) and LSEP (U+2028) as end-of-line markers </li>
<li> support <jump href="http://www.ietf.org/rfc/rfc3987.txt">Internationalized Resource Identifiers (IRIs)</jump> </li>
<li> support the additional characters in NCNames and QNames permitted by XML 1.1 and Namespaces in XML 1.1 </li></p>
<p>The processors do not undeclare namespaces other than the default namespace in serialized documents Also, Full
normalization is not supported.</p>
<p>An input document can be either XML 1.0 or XML 1.1. Also, a stylesheet document can be either XML 1.0 or XML 1.1.
A stylesheet document must conform to the XSLT 1.0 specifications.</p>
<p>Note that it is possible for a stylesheet module that is an XML 1.1 document to use constructs that cannot be
serialized as part of a valid XML 1.0 document, and for a stylesheet module that is an XML 1.0 document to use
constructs that cannot be serialized as part of a valid XML 1.1 document. For example, a stylesheet module that
is an XML 1.1 document might contain a literal result element whose name contains characters that are not permitted
as part of a QName in a document that conforms to Namespaces for XML 1.0. The user needs to ensure that the nodes
created by the stylesheet can be serialized as part of a well-formed document of the required version of XML.</p>
</s3>
<s3 title="Support for Alternative BSF Implementations">
<p>Extensions written in Java are directly supported by &xslt4j;. For extensions written in languages other than
Java, &xslt4j; uses the Bean Scripting Framework (BSF), an architecture for incorporating scripting into Java
applications and applets, and an implementation of BSF must be available on the classpath. In previous
releases, IBM's BSF implementation (bsf.jar from 2001) has been included in the &xslt4j; distribution.
Some time ago IBM donated their BSF implementation to the <jump href="http://jakarta.apache.org/bsf/index.html">
Apache Jakarta BSF</jump> project. As of this release,
the IBM bsf.jar is no longer included in the &xslt4j; distribution. To use extensions written in
languages other than Java, please download a version of Jakarta BSF and put it on your classpath. To use
a different BSF implementation, please refer to <link idref="extensions"
anchor="BSFManager">setting the BSFManager</link>.</p>
</s3>
<s3 title="New serializer.jar">
<p>In this release of &xslt4j; the code related to serialization of output result trees has been pulled out of
xalan.jar and moved into a new jar file, named serializer.jar.</p>
<p>The code in serializer.jar has been modified to have no build or runtime dependencies on the rest of the
code in &xslt4j;, therefore, serializer.jar can be used in a stand-alone fashion through its public APIs.
Although the code has been modified to create a stand-alone jar, the serializer public APIs have not changed
and the package names and classnames are the same as they were last release.</p>
</s3>
</s2>
</s1>