Specification Version: 1.3, Reference Implementation (RI) Version: 1.3.0
This document contains installation instructions and other notes that may help you use this software library more effectively.
This release is contained in six JAR files:
javax.xml.parsers
, javax.xml.transform
, javax.xml.xpath
,
javax.xml.validation
, javax.xml.datatype
,
and javax.xml.namespace
components of JAXP. These
packages contain the APIs that give applications a consistent way
to obtain instances of XML processing implementations. The
javax.xml.xpath
package supports the standard XPath
API.The information in this section pertains to the Xerces technology. For information on known bugs and recent fixes in the latest Apache version, see http://xml.apache.org/xerces2-j/releases.html.
This section discusses known schema processing bugs, limitations, and implementation-dependent operations.
These limitations specify known upper bounds on values.
This implementation-dependent operation is not fully clarified by the W3C XML Schema specification (http://www.w3.org/2001/XMLSchema). As a result, differing implementations exist.
The JAXP 1.2 reference implementation parser (Xerces 2.0.1), <keyref> Identity Constraints refers to <key> or <unique> identity constraints within the scope of the elements to which the <keyref> is attached, as defined in the XML Schema Part 1: Structures. (The introductory section of XML Schema, on the other hand, (XML Schema Part 0: Primer) contains an example with a <keyref> declared on an element used inside the element of its corresponding <key>. The discrepancy is noted here in an effort to avoid confusion.)
This section covers known issues that arise when migrating from earlier versions of JAXP.
JAXP 1.2 is built into JWSDP and J2EE 1.4. These sections of the Compatibility Guide cover the relevant migration issues:
JAXP 1.1 is built into J2EE 1.3 and Java SE 1.4. For differences in functionality from JAXP 1.1, see the JAXP Compatibility Guide.
This section contains implementation notes for DOM Level 3 Core and DOM Level 3 Load and Save.
Not implemented:
Supported parameters:
dom.Element
to
org.apache.xerces.xs.ElementPSVI
and dom.Attr
to
org.apache.xerces.xs.AttributePSVI
.Not supported:
The XSLTC transformer generates a transformation engine, or translet, from an XSL stylesheet. This approach separates the interpretation of stylesheet instructions from their runtime application to XML data.
XSLTC works by compiling a stylesheet into Java byte code (translets), which can then be used to perform XSLT transformations. This approach greatly improves the performance of XSLT transformations where a given stylesheet is compiled once and used many times. It also generates an extremely lightweight translet, because only the XSLT instructions that are actually used by the stylesheet are included.
Note: XSLT is supported by the JAXP transform package. See
javax.xml.transform
for details on accessing basic
XSLT functionality in an implementation-independent manner.
A problem can occur when using a custom class loader with a transformation factory.
Transformation factories in JAXP always prefer the use of the "context class loader" to the use of the "system class loader". Thus, if an application uses a custom class loader, it may need to set the custom class loader as the context class loader for transformation factory to use it. Setting a custom class loader on the current thread can be done as follows:
try { Thread currentThread = Thread.currentThread(); currentThread.setContextClassLoader(customClassLoader); } catch (SecurityException e) { // ... }
If the application is multi-threaded, the custom class loader may need to be set in all threads (every time a new thread is created). A security exception is thrown if an application does not have permission to set the context class loader.
When an application is running on a web server, such as the Java Web Services Developer Pack (JWSDP), with security enabled, the following permissions must be set:
permission java.io.FilePermission "/${webserver.home}/common/endorsed/xercesImpl.jar", "read"; permission java.io.FilePermission "/${webserver.home}/common/endorsed/xalan.jar", "read"; permission java.util.PropertyPermission "javax.xml.parser.SAXParserFactory", "read, write"; permission java.util.PropertyPermission "javax.xml.transform.TransformerFactory", "read, write"; permission java.util.PropertyPermission "user.dir", "read"; permission java.util.PropertyPermission "file.separator", "read"; permission java.util.PropertyPermission "line.separator", "read"; permission java.util.PropertyPermission "JavaClass.debug", "read"; permission java.lang.RuntimePermission "createClassLoader"; permission java.lang.RuntimePermission "accessDeclaredMembers";
Note: If read permission is not set for xercesImpl.jar, a FactoryConfigurationError is thrown that says:
Provider org.apache.xerces.jaxp.SAXParserFactoryImpl not found
elementAttributeLimit
,
which can be used to limit the number of attributes in a element.
The default limit is 10,000 attributes for an element.Performance of Xerces parser improved significantly.
XSLTC was not included as part of this release, which was destined solely for the J2EE platform.
Finally, this release fully supports the proposed 1.2 JAXP
specification,
which implements document validation using W3C XML Schema.
The Xalan XSLTC processor was also added in this release. (It is used to compile a stylesheet into a transformation engine (translet) that is ready to run.)
This release fully supports the proposed 1.2 JAXP specification, which implements document validation using W3C XML Schema.
The parser supports W3C XML Schema but does not support all aspects of the proposed JAXP 1.2 specification. In particular, the ability to enforce that an instance document conforms to a particular schema has not been implemented. However, the validation portions of the specification can be used along with schema hints in the instance document.