JSRs: Java Specification Requests
JSR 206: JavaTM API for XML Processing (JAXP) 1.3
JCP version in use: 2.6
Java Specification Participation Agreement version in use: 2.0
JAXP 1.3 is the next version of JAXP, an implementation independent portable API for processing XML with JavaTM.
Please direct comments on this JSR to the Spec Lead(s)
The following information has been updated from the original proposal.
Name of Maintenance Lead: Joe Wang
E-Mail Address: huizhe.wang
Telephone Number: -
Fax Number: -
Section 1. Identification
Submitting Member: Sun Microsystems
Name of Contact Person: Jeff Suttor
E-Mail Address: jeff.suttor
Telephone Number: +1 650 352 6340
Fax Number: +1 650 352 6340
Specification Lead: Jeff Suttor, Norm Walsh
E-Mail Address: jeff.suttor
Telephone Number: +1 650 352 6340, +1 413 256 6985
Fax Number: +1 650 352 6340, +1 413 256 6985
Initial Expert Group Membership:
Supporting this JSR:
Section 2: Request
2.1 Please describe the proposed Specification:
JAXP 1.3 defines a set of implementation independent portable APIs for processing XML and is a follow-on to JSR 63 Java™ API for XML Processing 1.2 (Maintenance Release). JAXP 1.3 is fully backward compatible with JAXP 1.2.
JAXP needs to support current XML standards in a timely fashion in order for the Java™ platform to remain relevant to developers and users. The revised XML standards incorporate changes based on several years of growing implementation experience. Standardizing support for current standards will insure inter-operation in addition to providing increased functionality to developers and users. The following core XML standards have been revised since JAXP 1.2 and support for them will be updated in JAXP 1.3:
JSRs, and applications, involving XML processing will
benefit from a common standard specification of fundamental XML
Experts from other JSRs and developers of more complex and ambitious applications have requested standardized support for more precise control over XML processing. Examples include JSR 105 XML Digital Signature APIs needing to control canonicalization, JSR 31 XML Data Binding Specification needing the definition of Java™ Objects for XML Schema Part 2: Datatypes, and applications, especially J2EE™ applications, needing more precise control over the characteristics of the JAXP processor returned by the processor factory. The Expert Group will consult with other JSRs and apply their knowledge of existing and future applications to determine the need for standardized support of more precise control of XML processing.
Several denial of service exploits in processing XML have recently been exposed. These exploits are more the result of the nature of the XML specification vs. JAXP implementations. JAXP 1.3 will address these known issues. The Expert Group will pro-actively examine the relationship of valid XML constructs to their processing resources and define appropriate mechanisms to preempt future exploits.
Improving the performance of XML processing is desired. For example, some XML processor implementations already support grammar pre-parsing and caching. Developers have also asked for the ability to signal the processor that it is OK to release processing related resources, e.g. "I am done with this sub-tree", in addition to providing guidance to anticipated processing patterns, e.g. "I know I am going to heavily modify the entire tree. The Expert Group will evaluate what existing XML processing implementations have done to enhance performance in addition to applying their own knowledge of how Java and XML interact to define mechanisms for enhancing performance.
The W3C DOM APIs are generated from IDL and are not always an optimal fit for the Java™ developer. The Expert Group will evaluate providing helper classes to support easy XPath 1.0 queries on DOM that follow Java™ design patterns.
Many XML document processing use cases involve one
document referring to another document for inclusion. Applications
are currently using ad-hoc implementation specific ways of achieving
inclusion. Examples include JavaServer Pages™
Specification Version 2.0's
Enabling future support of XML Path Language (XPath) 2.0 and XSL Transformations (XSLT) Version 2.0 is a design goal. An analysis of XPath/XSLT 2.0 will be done by the Expert Group to insure that follow-on versions of JAXP will be able to support them with minimal changes to JAXP. The XPath/XSLT 2.0 implementation community will be engaged to encourage bi-directional guidance between the JSR specification and the early implementations.
2.2 What is the target Java platform? (i.e., desktop, server, personal, embedded, card, etc.)
JavaTM 2 Platform, Standard Edition (J2SETM) 1.5
2.3 What need of the Java community will be addressed by the proposed specification?
Please see 2.1 above.
2.4 Why isn't this need met by existing specifications?
Please see 2.1 above.
2.5 Please give a short description of the underlying technology or technologies:
Please see 2.1 above.
2.6 Is there a proposed package name for the API Specification? (i.e., javapi.something, org.something, etc.)
2.7 Does the proposed specification have any dependencies on specific operating systems, CPUs, or I/O devices that you know of?
There are no dependencies.
2.8 Are there any security issues that cannot be addressed by the current security model?
There are no security issues.
2.9 Are there any internationalization or localization issues?
There are no internationalization or localization issues. XML by definition is Unicode based and was designed for maximum use by the international community.
2.10 Are there any existing specifications that might be rendered obsolete, deprecated, or in need of revision as a result of this work?
JAXP 1.3 will replace JAXP 1.2. As JAXP 1.3 will consolidate common XML constructs into javax.xml.* to be used by other JSRs, future versions of JSR 101 JavaTM APIs for XML based RPC, JSR 31 XML Data Binding Specification and JSR 173 Streaming API for XML will be able to use these constructs. Enhancements for more precise XML processing will enable JSR 105 XML Digital Signature APIs and JSR 106 XML Digital Encryption APIs to use standard APIs vs. implementation specific APIs.
2.11 Please describe the anticipated schedule for the development of this specification.
JAXP 1.3 schedule will be aligned with the schedule for J2SETM 1.5
2.12 Please describe the anticipated working model for the Expert Group working on developing this specification.
The Expert Group will interact using the private e-mail alias and web site provided by the JCP's PMO in addition to conference calls and face-to-face meetings as appropriate. Expert Group members have strong ties into the Java and XML communities and will call on domain experts as needed.
2.13 Please describe how the RI and TCK will de delivered, i.e. as part of a profile or platform edition, or stand-alone, or both. Include version information for the profile or platform in your answer.
The RI and TCK will be delivered both as part of J2SETM 1.5 and also for stand-alone use.
2.14 Please state the rationale if previous versions are available stand-alone and you are now proposing in 2.13 to only deliver RI and TCK as part of a profile or platform edition (See sections 1.1.5 and 1.1.6 of the JCP 2 document).
Although this represents no change from the prior version of JAXP, it is important to note that the XML space is changing faster than that of J2SETM. While JAXP 1.3 will be synchronizing the current XML standards with a J2SETM release, the XML space will continue its rapid evolution and there will be a need to revise JAXP outside of the J2SETM release schedule. As these asynchronous JAXP releases happen, a separate RI and TCK will be provided.
2.15 Please provide a description of the business terms for the Specification, RI and TCK that will apply when this JSR is final.
The JAXP 1.3 JSR will be delivered as part of J2SETM 1.5. The proposed J2SETM 1.5 licensing terms are available at J2SETM 1.5 licensing terms. The RI will also be licensed stand-alone, under Sun's normal Binary Code License Agreement. There will be no charge for a binary license. The TCK will also be licensed stand-alone at no charge to J2SETM and J2EETM platform TCK licensees. The stand-alone TCK will be offered for license at no charge, without support or any trademark license rights, to qualified not-for-profit entities (including not-for-profit academic institutions) and qualified individuals engaged in efforts to create compatible implementations of the JAXP 1.3 Specification.
Section 3: Contributions
3.1 Please list any existing documents, specifications, or implementations that describe the technology. Please include links to the documents if they are publicly available.
Please see 2.1 above.
Significant implementation of the JAXP 1.3 feature set is well underway as part of the Apache XML Project. Several members of the Expert Group are active designers and developers of Xerces2 Java Parser and Xalan-Java and have commit privileges.
3.2 Explanation of how these items might be used as a starting point for the work.
The previous release of JAXP 1.2 used these projects as the development environment of the RI and JAXP 1.3 will continue to do so.