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.
EclipseLink/UserGuide/MOXy/Simple Values/Collections/XMLDirectCollectionMapping
EclipseLink | |
Website | |
Download | |
Community | |
Mailing List • Forums • IRC • mattermost | |
Issues | |
Open • Help Wanted • Bug Day | |
Contribute | |
Browse Source |
Key API
Contents
XML Direct Collection Mappings
XML direct collection mappings map a collection of simple Java values directly to XML text nodes. You can use an XML direct collection mapping in the following scenarios:
Mapping to Text Nodes
Given the XML schema in this example, the figure below illustrates an XML direct collection mapping to elements in a corresponding XML document.
Schema for XML Direct Collection Mapping to Text Nodes
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="customer" type="customer-type"/> <xsd:complexType name="customer-type"> <xsd:sequence> <xsd:element name="email-address" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:schema>
XML Direct Collection Mapping to Text Nodes
The following example shows how to annotate your Java class to obtain this mapping with EclipseLink. All that is needed is the standard JAXB @XmlElement annotation.
Java for XML Direct Collection Mapping to Text Nodes
@XmlRootElement public class Customer { @XmlElement(name="email-address") public List<String> emailAddress; }
The example below shows how to to define your mapping information in EclipseLink's OXM metadata format.
OXM for XML Direct Collection Mapping to Text Nodes
... <java-type name="Customer"> <xml-root-element name="customer"/> <java-attributes> <xml-element java-attribute="emailAddresses" name="email-address"/> </java-attributes> </java-type> ...
Mapping to Text Nodes with a Grouping Element
Given the XML schema in this example, the figure below illustrates an XML direct collection mapping to elements in a corresponding XML document.
Schema for XML Direct Collection Mapping to Text Nodes
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="customer" type="customer-type"/> <xsd:complexType name="customer-type"> <xsd:sequence> <xsd:element name="email-address" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:schema>
XML Direct Collection Mapping to Text Nodes
The following example shows how to annotate your Java class to obtain this mapping with EclipseLink. All that is needed is the standard JAXB @XmlElement annotation.
Java for XML Direct Collection Mapping to Text Nodes
@XmlRootElement public class Customer { @XmlElement(name="email-address") public List<String> emailAddress; }
The example below shows how to to define your mapping information in EclipseLink's OXM metadata format.
OXM for XML Direct Collection Mapping to Text Nodes
... <java-type name="Customer"> <xml-root-element name="customer"/> <java-attributes> <xml-element java-attribute="emailAddresses" name="email-address"/> </java-attributes> </java-type> ...