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.
Difference between revisions of "EclipseLink/DesignDocs/293925/Phase6"
< EclipseLink | DesignDocs | 293925
Line 44: | Line 44: | ||
The following example will demonstrate how the [http://java.sun.com/javase/6/docs/api/javax/xml/bind/annotation/XmlElements.html XmlElements] annotation can be applied: | The following example will demonstrate how the [http://java.sun.com/javase/6/docs/api/javax/xml/bind/annotation/XmlElements.html XmlElements] annotation can be applied: | ||
− | ==== org.example. | + | ==== org.example.Foo.java ==== |
<source lang="java"> | <source lang="java"> | ||
Line 50: | Line 50: | ||
@javax.xml.bind.annotation.XmlRootElement | @javax.xml.bind.annotation.XmlRootElement | ||
− | public class | + | public class Foo { |
− | + | @javax.xml.bind.annotation.XmlElementWrapper(name="items") | |
− | @javax.xml.bind.annotation.XmlElementWrapper(name=" | + | |
@javax.xml.bind.annotation.XmlElements({ | @javax.xml.bind.annotation.XmlElements({ | ||
− | @javax.xml.bind.annotation.XmlElement(name=" | + | @javax.xml.bind.annotation.XmlElement(name="A", type=Integer.class), |
− | @javax.xml.bind.annotation.XmlElement(name=" | + | @javax.xml.bind.annotation.XmlElement(name="B", type=Float.class) |
}) | }) | ||
public java.util.List items; | public java.util.List items; | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
</source> | </source> | ||
Line 96: | Line 68: | ||
==== org/example/eclipselink-oxm.xml ==== | ==== org/example/eclipselink-oxm.xml ==== | ||
− | This XML file represents metadata overrides for the <code>org.example. | + | This XML file represents metadata overrides for the <code>org.example.Foo</code> class. |
<source lang="xml"> | <source lang="xml"> | ||
Line 102: | Line 74: | ||
<xml-bindings xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm"> | <xml-bindings xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm"> | ||
<java-types> | <java-types> | ||
− | <java-type name="org.example. | + | <java-type name="org.example.Foo"> |
− | <xml-root-element name=" | + | <xml-root-element name="foo"/> |
<java-attributes> | <java-attributes> | ||
− | <xml-elements java-attribute="items | + | <xml-elements java-attribute="items"> |
− | + | <xml-element java-attribute="A" type="java.lang.Integer" /> | |
− | <xml-element java-attribute=" | + | <xml-element java-attribute="B" type="java.lang.Float" /> |
− | <xml-element java-attribute=" | + | |
</xml-elements> | </xml-elements> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</java-attributes> | </java-attributes> | ||
</java-type> | </java-type> |
Revision as of 12:51, 3 December 2009
Phase 6 - Substitution Groups (page under construction)
Provide support for substitution groups.
Annotations
The following annotations will be targeted in this phase:
Annotation | XML Metadata Tag | Package | Type | Field | Method |
---|---|---|---|---|---|
XmlElements | xml-elements | X | X | ||
XmlElementRef | xml-element-ref | X | X | ||
XmlElementRefs | xml-element-refs | X |
X |
Example: XmlElements annotation
Java Metadata
The following example will demonstrate how the XmlElements annotation can be applied:
org.example.Foo.java
package org.example; @javax.xml.bind.annotation.XmlRootElement public class Foo { @javax.xml.bind.annotation.XmlElementWrapper(name="items") @javax.xml.bind.annotation.XmlElements({ @javax.xml.bind.annotation.XmlElement(name="A", type=Integer.class), @javax.xml.bind.annotation.XmlElement(name="B", type=Float.class) }) public java.util.List items; }
XML Metadata
xml-elements
If this is present in the XML then it completely replaces the corresponding annotation.
org/example/eclipselink-oxm.xml
This XML file represents metadata overrides for the org.example.Foo
class.
<?xml version="1.0" encoding="US-ASCII"?> <xml-bindings xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm"> <java-types> <java-type name="org.example.Foo"> <xml-root-element name="foo"/> <java-attributes> <xml-elements java-attribute="items"> <xml-element java-attribute="A" type="java.lang.Integer" /> <xml-element java-attribute="B" type="java.lang.Float" /> </xml-elements> </java-attributes> </java-type> </java-types> </xml-bindings>