Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

EclipseLink/DesignDocs/217508

< EclipseLink‎ | DesignDocs
Revision as of 16:18, 4 February 2008 by Rick.barkhouse.oracle.com (Talk | contribs) (Requirements)

Support for Root Elements representing Simple Types

ER 217508

Document History

Date Author Version Description & Notes
2008-02-01 Rick Barkhouse Initial Draft

Project overview

This project will add the ability for EclipseLink OX to unmarshal XML documents that have simple types as their root element. Instead of a "rich" top-level element representing a domain object (e.g. Employee, PurchaseOrder), the root element may be a simple primitive value.

Goals:

  • Allow the user to unmarshal XML documents that contain simple type root elements.

Concepts

The following concepts are used in this document:

  • Simple Type - one of the basic, "built-in" types available in XML Schema. These may represent basic Java primitives (such as xsd:boolean and xsd:float), or more robust types (xsd:hexBinary, xsd:dateTime, xsd:QName). XML Schema has two categories of simple types; Primitive Types (the most basic of data type), and Derived Types (other simple types that are defined in terms of primitive types).

XML Schema Primitive Data Types
string boolean decimal float double duration dateTime
time date gYearMonth gYear gMonthDay gDay gMonth
hexBinary base64Binary anyURI QName NOTATION
XML Schema Derived Data Types
normalizedString token language NMTOKEN NMTOKENS Name NCName
ID IDREF IDREFS ENTITY ENTITIES integer nonPositiveInteger
negativeInteger long int short byte nonNegativeInteger unsignedLong
unsignedInt unsignedShort unsignedByte positiveInteger

For more information see: http://www.w3.org/TR/xmlschema-2/#built-in-datatypes

Requirements

The requirements for this project are as follows:

  • Support unmarshalling of XML instance documents that contain Simple Type (both primitive and derived) root elements.
  • Support marshalling "primitive" Java objects to XML.
  • Ensure that the proper ConversionManager is used when converting XML to Java.
  • Ensure that the proper ClassLoader is used when converting values.


For example, the JAXB TCK uses the following types of test documents:

XML Schema - The schema contains a single element, a restriction (extension) of the base64Binary simple type:

<schema ...>
...
   <element name="NISTSchema-base64Binary-enumeration" type="nist:NISTSchema-base64Binary-enumeration-Type"/>
 
   <simpleType name="NISTSchema-base64Binary-enumeration-Type">
      <restriction base="base64Binary">
         <enumeration value="bHlsY2JmaXFjaW9ubmg="/>
      </restriction>
   </simpleType>
</schema>

XML Instance Document - The document contains a single element with value zGk=:

<NISTSchema-base64Binary-enumeration
    xmlns="NISTSchema-base64Binary-enumeration-NS"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="NISTSchema-base64Binary-enumeration-NS enumeration.xsd">zGk=</NISTSchema-base64Binary-enumeration>

Functionality

Design Constraints

Maintainability

GUI

Config files

Documentation

Open Issues

This section lists the open issues that are still pending that must be decided prior to fully implementing this project's requirements.

Decisions

This section lists decisions made. These are intended to document the resolution of open issues or constraints added to the project that are important.

Issue # Owner Description / Notes

Future Considerations

Issue # Description / Notes Decision

Back to the top