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.
EclipseLink/DesignDocs/277920/Phase2
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>