Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "EclipseLink/DesignDocs/217508"
(→Requirements) |
(→Functionality) |
||
Line 130: | Line 130: | ||
= Functionality = | = Functionality = | ||
+ | * Use Case 1: | ||
= Design Constraints = | = Design Constraints = |
Revision as of 13:02, 5 February 2008
Support for Root Elements representing Simple Types
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
andxsd: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
- Use Case 1:
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.
Issue # | Owner | Description / Notes |
---|
Issue # | Description / Notes | Decision |
---|