Find JSRs
Submit this Search


Ad Banner
 
 
 
 

JSRs: Java Specification Requests
JSR 206: JavaTM API for XML Processing (JAXP) 1.3

Updates to the Original JSR

The following information has been updated from the original proposal.

2013.12.04:

2.2 What is the target Java platform? (i.e., desktop, server, personal, embedded, card, etc.)

JAXP 1.6: Java Platform, Standard Edition 8 and above
JAXP 1.5: Java Platform, Standard Edition 7 and above
JAXP 1.4: Java Platform, Standard Edition 6 and above
JAXP 1.3: Java Platform, Standard Edition 5 and above

2013.10.15:
JSR 206 moved to JCP 2.9

2.19 Please describe the communications channel you have established for the public to observe Expert Group deliberations, provide feedback, and view archives of all Expert Group communications.

https://java.net/projects/jaxp/lists

2.20 What is the URL of the Issue Tracker that the public can read, and how does the public log issues in the Issue Tracker?

https://java.net/jira/browse/jaxp/

2.21 Please provide the location of the publicly accessible document archive you have created for the Expert Group.

Community Files under the Community Tab on this page.

2008.10.28:

Name of Maintenance Lead: Joe Wang

E-Mail Address: huizhe.wang@sun.com

Telephone Number: -

Fax Number: -


Original Java Specification Request (JSR)

Identification | Request | Contributions

Section 1. Identification

Submitting Member: Sun Microsystems

Name of Contact Person: Jeff Suttor

E-Mail Address: jeff.suttor@sun.com

Telephone Number: +1 650 352 6340

Fax Number: +1 650 352 6340


Specification Lead: Jeff Suttor, Norm Walsh

E-Mail Address: jeff.suttor@sun.com, norman.walsh@sun.com

Telephone Number: +1 650 352 6340, +1 413 256 6985

Fax Number: +1 650 352 6340, +1 413 256 6985


Initial Expert Group Membership:

  • BEA
  • Miles Sabin
  • Oracle
  • SAP
  • Sun Microsystems, Inc.

Supporting this JSR:

  • Apple
  • BEA
  • Borland
  • Miles Sabin
  • Oracle
  • SAP
  • Sun Microsystems, Inc.



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 constructs in javax.xml.*. This will avoid duplication of effort, insure inter-operation and provide easy and efficient ways of conforming to XML specifications. Common constructs currently being used in multiple JSRs include XML Qualified Name and Namespace Context. As JAXP 1.3 standardizes common constructs identified by the Expert Group, future revisions of JSRs involving XML will be able to reuse them.

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 <jsp:directive.include> and the use of the Xerces Native Interface. The Expert Group will evaluate if support for XML Inclusions (XInclude) Version 1.0 will enable inter-operation and encourage desirable XML information modeling practices.

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

Update:
JAXP 1.6: Java Platform, Standard Edition 8 and above
JAXP 1.5: Java Platform, Standard Edition 7 and above
JAXP 1.4: Java Platform, Standard Edition 6 and above
JAXP 1.3: Java Platform, Standard Edition 5 and above

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.)

javax.xml.*

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.