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/277920/Phase2"
< EclipseLink | DesignDocs | 277920
m (→org/example/customer/eclipselink-oxm.xml) |
|||
Line 108: | Line 108: | ||
accessor-order="UNDEFINED" | accessor-order="UNDEFINED" | ||
accessor-type="FIELD"> | accessor-type="FIELD"> | ||
− | + | <xml-type | |
− | + | factoryClass="Factory.class" | |
− | + | factoryMethod="createAddress" | |
− | + | name="address-type" | |
− | + | namespace="urn:customer" | |
− | + | propOrder="street city"/> | |
− | + | <xml-root-element | |
− | + | name="address" | |
− | + | namespace="urn:customer"/> | |
</java-type> | </java-type> | ||
</java-types> | </java-types> | ||
</xml-bindings> | </xml-bindings> | ||
</source> | </source> |
Revision as of 10:18, 6 July 2009
Contents
Phase 2
Provide support for high level metadata.
Annotations
The following annotations will be targetted in this phase:
Annotation | Package | Type | Field | Method |
---|---|---|---|---|
XmlAccessorOrder | X | X | ||
XmlAccessorType | X | X | ||
XmlRootElement | X | |||
XmlType | X |
Java Metadata
The following example will demonstrate how these annotations can be applied to Java classes:
org.example.customer.package-info.java
@XmlAccessorOrder(XmlAccessOrder.ALPHABETICAL) @XmlAccessorType(XmlAccessType.PROPERTY) package org.example.customer; import javax.xml.bind.annotation.XmlAccessOrder; import javax.xml.bind.annotation.XmlAccessorOrder; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType;
org.example.customer.Address
package org.example.customer; @XmlAccessorOrder(XmlAccessOrder.UNDEFINED) @XmlAccessorType(XmlAccessType.FIELD) @XmlType( factoryClass=Factory.class, factoryMethod="createAddress", name="address-type", namespace="urn:customer", propOrder={"street", "city"}) @XmlRootElement(name="address", namespace="urn:customer") public class Address { private String street; private String city; public String getStreet() { return street; } public void setStreet(String street) { this.street = street; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } }
XML Metadata
xml-accessor-order
If this is present in the XML then it completely replaces the corresponding annotation.
xml-accessor-type
If this is present in the XML then it completely replaces the corresponding annotation.
xml-root-element
If this is present in the XML then it completely replaces the corresponding annotation.
xml-type
If this is present in the XML then it completely replaces the corresponding annotation.
org/example/customer/eclipselink-oxm.xml
This XML file represents metadata overrides for classes in the "org.example.customer" package.
<?xml version="1.0" encoding="UTF-8"?> <xml-bindings xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm" accessor-order="ALPHABETICAL" accessor-type="PROPERTY"> <java-types> <java-type name="Address" accessor-order="UNDEFINED" accessor-type="FIELD"> <xml-type factoryClass="Factory.class" factoryMethod="createAddress" name="address-type" namespace="urn:customer" propOrder="street city"/> <xml-root-element name="address" namespace="urn:customer"/> </java-type> </java-types> </xml-bindings>