Hi Polly,
If subclasses are involved (ShipToAddress, BillingAddress, and
VendorAddress are all subclasses of Address and each maps to its
corresponding element) then this can be mapped easily:
* Use an XMLAnyCollectionMapping and set "ShipToAddress",
"BillingAddress", and "VendorAddress" as the root elements.
* Use an XMLChoiceCollectionMapping and map "ShipToAddress",
"BillingAddress", and "VendorAddress" as the set of choice elements.
If subclasses are not involved then you are the second person to ask for
this support. I would be interested in your opinion on how to map it.
Unmarshalling is easy, you can do this today in the ways mentioned above.
The problem relates to marshalling, without some sort of descrminator
EclipseLink MOXy doesn't know which element to marshal with.
Possibilities for descriniators include (position in list or a property
on the object).
Alternatively you can use an object to preserve the element info. In
JAXB you can preserve the element name in a JAXBElement, then you need
List<JAXBElement<Address>> instead of List<Address>.
Below is a link disucssion I've been having with someone else on this
issue:
http://forums.oracle.com/forums/message.jspa?messageID=3976208#3976208
-Blaise
polly.c.chang wrote:
Hi,
Is it possible to map elements of different names to the same collection?
As in something like mapping:
<Document>
<ShipToAddress>...</ShipToAddress>
<BillingAddress>...</BillingAddress>
<VendorAddress>...</VendorAddress>
</Document>
To:
public class Document {
private List<Address> addresses
}
Thanks!
--Polly
_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users