Find JSRs
Submit this Search


Ad Banner
 
 
 
 

JSRs: Java Specification Requests
JSR 222: JavaTM Architecture for XML Binding (JAXB) 2.0

Updates to the Original JSR

The following information has been updated from the original request.

2017.02.24:
JSR 222 moved to JCP version 2.10.

2017.02.01

Maintenance Lead: Roman Grigoriadi, Oracle

E-Mail Address: roman.grigoriadi@oracle.com

Telephone Number: + +420 773 00 2048

Fax Number: -


2010.08.04

Maintenance Lead: Martin Grebac

E-Mail Address: martin.grebac@oracle.com

Telephone Number: +420 23 300 9295

Fax Number: -

NOTE that this information has been updated from this original request.

2006.10.02

Maintenance Lead: Kohsuke Kawaguchi, Sun Microsystems

E-Mail Address: kohsuke.kawaguchi@sun.com

Telephone Number: +1 408 276 7063

Fax Number: -

NOTE that this information has been updated from this original request.


Original Java Specification Request (JSR)

Identification | Request | Contributions

Section 1. Identification

Submitting Member: Sun Microsystems, Inc

Name of Contact Person: Sekhar Vajjhala

E-Mail Address: sekhar.vajjhala@sun.com

Telephone Number: +1 781 442 0300

Fax Number: +1 781 442 1610


NOTE that this information has been updated from this original request.

Specification Lead: Sekhar Vajjhala, Sun Microsystems

E-Mail Address: sekhar.vajjhala@sun.com

Telephone Number: +1 781 442 0300

Fax Number: +1 781 442 1610


Initial Expert Group Membership:

* BEA
* Oracle
* SAP
* Sun Microsystems, Inc.

Supporting this JSR:

* BEA
* Borland
* Fujitsu
* IONA
* Macromedia
* Oracle
* SAP
* Sun Microsystems, Inc.



Section 2: Request

2.1 Please describe the proposed Specification:

JAXB 2.0 is a follow-on to JSR 31 JavaTM XML Data Binding Specification building upon the architecture introduced in JAXB 1.0 JAXB 1.0 lowered the barrier for developers manipulating XML content from Java TM applications. This was achieved by specifying a binding of a XML document to JavaBean objects based on the XML document's XSD schema. The binding was easy to use and natural to a Java programmer. To date, these API's have been used to successfuly process some large, well known schemas. JAXB 2.0 will add new functionality in several important areas. The proposed functionality will enable the development and deployment of JAXB applications in an even wider range of environments. JAXB 2.0 will be backward compatible with JAXB 1.0.

JAXB 2.0 will investigate support for all of W3C XML Schema including frequently requested features such as type and element substitution. To shorten the developement cycle, JAXB 1.0 did not specify bindings for some of the W3C XML Schema features. These are listed in Appendix E.2 of the JAXB 1.0 specification. Some XML schema datatypes do not map naturally to JavaTM. Such addditional JavaTM datatypes have already been identified and communicated as requirements to the JAXP 1.3 (JSR 206) Expert Group. Any additional requirements will be communicated very early on in the JAXB 2.0 specification effort.

For ease of development, J2SE 1.5 release introduces additional language extensions through JSR 14, JSR 201 and JSR 175. Use of these language extensions in binding of XML schema components and JavaTM will result in a better and simpler binding, thus making the application development easier. The use of the language extensions will be enabled using a compiler switch.

JAX-RPC (JSR 101) specified the binding between XML/WSDL datatypes and Java. But to ensure strong alignment between JAX-RPC 2.0 (being developed in parallel with JAXB 2.0) and JAXB 2.0, JAX-RPC 2.0 XML data binding requirements will be addressed by JAXB 2.0.We expect both the JAXB 2.0 and JAX-RPC 2.0 expert groups to work closely together to identify JAX-RPC's XML data binding requirements. Any requirements related to the deployment of components using JAXB in a container managed environment will be addressed.

JAXB 1.0 specified the mapping of XML Schema to Java TM but not JavaTM to XML Schema. JAXB 2.0 will specify the mapping from Java TM to XML Schema. This addresses scenarios where an application design begins with Java TM objects rather than an XML schema. One such example is an application that exports itself as a web service that communicates using SOAP and XML as a transport mechanism.

To enable serialization and deserialization of existing JavaBean classes to XML, support for generation of serializers and deserializers from JavaBean classes will be added. Such support is important since implementing serializers and deserializers can be hard. It is therefore desirable that the serializers and deserializers be generated by an JAXB vendor implementation rather than coded by the application. Furtheremore, JSR 175 (Java Language Meta data JSR) will be leveraged, allowing JavaBean classes, fields etc to be annotated.

Associating application behavior with schema derived interfaces is a frequently requested feature and will be considered.

A portable runtime was out of scope for JAXB 1.0. It will be investigated for JAXB 2.0.

Schema evolution was considered out of scope for JAXB 1.0. This will be investigated in JAXB 2.0.

A flexible binding allows an application to bind only parts of an XML document (relevant to the application) to Java. This will be addressed in JAXB 2.0.

In JAXB 1.0, the schema derived interfaces are close to JavaBean properties. Portable mechanisms to traverse a graph of JavaBean objects will be addressed in JAXB 2.0. Portable mechanisms include but are not limited to the the use of XPath expressions.

We will investigate the integration of StaX ( JSr 173, Streaming API for XML) into JAXB architecture.

Support for enhancements that are frequently requested on the jaxb-interest email alias will be evaluated.

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

It will run on JavaTM 2 Platform, Standard Edition (J2SE) 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.)

The same as JAXB 1.0 - javax.xml.bind

2.7 Does the proposed specification have any dependencies on specific operating systems, CPUs, or I/O devices that you know of?

No

2.8 Are there any security issues that cannot be addressed by the current security model?

No

2.9 Are there any internationalization or localization issues?

No

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 proposed specification will supersede JSR 31 ( Java TM XML Data Binding Specification ).

2.11 Please describe the anticipated schedule for the development of this specification.

The final schedule will need to be determined by the expert group as it depends on the features that will be incorporated into the specification, but we expect to have a final draft by the end of 2004.

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.

These will be available separately as well as part of J2EE 1.5.

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

N/A

2.15 Please provide a description of the business terms for the Specification, RI and TCK that will apply when this JSR is final.

In line with the Java Community Process version 2.5, the following is a summary of Sun's anticipated principal license terms and conditions for the JSR-tbd, JAXB, version 2.0.

Reference Implementation (RI) will be delivered in binary form free of charge. Licensing for the RI will be under the Sun Microsystems, Inc. Binary Code License Agreement.

The RI source will be available under Sun Community Source License (SCSL). Licensing of the RI is not required for the licensing of the TCK.

The JAXB TCK and RI source will be made available at no extra charge to J2EE licensees.

The JAXB TCK will be licensed at no charge, without support or any trademark license rights under Sun's Compatibility Testing Scholarship Program, described at http://java.sun.com/scholarship/.





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.

JSRs:

3.2 Explanation of how these items might be used as a starting point for the work.

The JavaTM Architecture for XML Binding (JAXB) 1.0 specification will be used as a starting point for this JSR. Other documents and specifications listed above will be used in the specification of functionality outlined in Section 2.1 of this JSR.



Section 4: Additional Information (Optional)

4.1 This section contains any additional information that the submitting Member wishes to include in the JSR.

No additional information.