JSRs: Java Specification Requests
JSR 63: JavaTM API for XML Processing 1.1
The following changes have been made to the original request:
Specification Lead: Sun Microsystems, Inc.
Name of Spec Lead: Rajiv Mordani
E-Mail Address: firstname.lastname@example.org
Telephone Number: +1 408 517 6707
Fax Number: +1 408 863 3164
Original Java Specification Request (JSR)
Section 1. Identification
Submitting Participant: Sun Microsystems, Inc.
Name of Contact Person: James Duncan Davidson
E-Mail Address: email@example.com
Telephone Number: 408 863 3281
Fax Number: 408 863 3195
List of other Participants who endorse this JSR:
Section 2: Request
2.1 Please describe the proposed Specification:
The proposed specification will define a set of implementation independent portable APIs supporting XML Processing. This specification will be a follow-on specification to the Java API for XML Parsing (JAXP) 1.0 which was produced under JSR-000005. This specification will update the JAXP 1.0 specification support for SAX and DOM by endorsing SAX2 and DOM Level 2 respectively. In addition, it will define a set of implementation independent APIs for supporting XML Stylesheet Language / Transformation (XSLT) processors as well as possibly utilizing the XML utility standards of XBase, XLink, XPath, and XPointer.
2.2 What is the target Java platform? (i.e., desktop, server, personal, embedded, card, etc.)
This facility is targeted for use by the Java 2 Standard Edition and Java 2 Enterprise Edition platforms.
2.3 What need of the Java community will be addressed by the proposed specification?
The proposed specification will update the current JAXP 1.0 specification to support the latest versions of the external DOM and SAX standards that it endorses. At the current time, SAX2 and DOM Level 2 are progressing rapidly towards final status and it is anticipated that they will be complete within the next few months.
In addition, this specification will meet the need for Java Platform programmers to easily utilize XSL in their applications by providing a plugability mechanism for accessing XSL processors.
2.4 Why isn't this need met by existing specifications?
The existing JAXP 1.0 specification needs to be updated to take advantage of the latest SAX and DOM standards so that the users of the API have access the features that those updated specifications provide. In addition, there currently is no way to obtain an instance of an XSL processor and use it without using implementation specific mechanisms.
2.5 Please give a short description of the underlying technology or technologies:
XML is the meta language defined by the World Wide Web Consortium (W3C) that can be used to describe a broad range of hierarchical mark up languages. It is a set of rules, guidelines, and conventions for describing structured data in a plain text editable file. It is expected that this specification will endorse version 1.0 of the XML Recommendation.
XML Namespaces define the syntax and semantics for XML structures required to be distinct from other XML markup. In particular it defines a mechanism whereby a set of XML markup may have a distinguishing \223namespace\224 associated with it. It is expected that this specification will endorse version 1.0 of the XML Namespaces Recommendation.
The Simple API for XML (SAX) is a public domain API developed cooperatively by the members of the XML-DEV mailing list. It provides an event-driven (sometimes referred to as a callback-style) interface to the process of parsing an XML document. It is anticipated that this specification will endorse version 2.0 of the API.
The Document Object Model (DOM) describes facilities for a programmatic representation of a parsed XML document. The DOM specification defines these interfaces using Interface Definition Language (IDL) in a language independent fashion and also includes a Java Language Binding. It is anticipated that this specification will endorse Level 2 of the specification.
XSL is a language for expressing stylesheets. It consists of two parts: 1) a language for transforming XML documents to other XML documents (XSLT), and 2) an XML vocabulary for expressing formatting semantics. It is anticipated that this specification will support the 1.0 version of the XSLT specification.
XML Base (XBase) allows a document to specify a document\222s base URI against which all relative URI references in the document can be resolved against. This includes references to images, stylesheets, applets, etc. It is anticipated that this specification will endorse the 1.0 version of the XBase specification.
XML Pointer Language (XPointer) is a language that can be used as a fragment identifier for any URI that locates an XML resources. It is based on the XML Path Language (XPath). It supports addressing internal structures of XML documents, traversals of a document tree, and the selection of internal parts of an XML document based on various properties.\240 It is anticipated that this specification will endorse the 1.0 version of the XPointer specification.
XPath is a language for addressing parts of an XML document, designed to be used by both XSLT and XPointer. It is anticipated that this specification will endorse the 1.0 version of the XPath Recommendation.
2.6 Is there a proposed package name for the API Specification? (i.e., javapi.something, org.something, etc.)
The SAX and DOM pluggability interfaces are located in the package javax.xml.parsers. These current classes would be updated as part of this specification work.
The XSLT pluggability interfaces would be located in the package javax.xml.transform.
2.7 Does the proposed specification have any dependencies on specific operating systems, CPUs, or I/O devices that you know of?
2.8 Are there any security issues that cannot be addressed by the current security model?
2.9 Are there any internationalization or localization issues?
XML was designed from the ground up to address such issues. A requirement of the proposed specification is that it preserve the inherent internationalizability of XML and related technologies.
2.10 Are there any existing specifications that might be rendered obsolete, deprecated, or in need of revision as a result of this work?
The functionality in the Java API for XML Parsing 1.0 would be updated and subsumed as part of this work.
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.
3.2 Explanation of how these items might be used as a starting point for the work.
The XML, XML Namespaces, SAX, DOM, and XSL specifications will be endorsed as part of this specification work. As well, there is an early XSLT pluggability specification called TRaX that can serve as a starting point for designing the XSLT pluggability layer.
The Java API for XML Parsing 1.0 is the previous version of this specification work.