java - Using a JAXB XmlAdapter to adapt an entire list without a wrapper element -
i'm trying use xmladapter unmarshal xml custom collection type (that intentionally not implement collection interface due conflicting restriction imposed use of class, unfortunately fails if class contains collections). difficulty xml nodes placed collection not wrapped in wrapper element.
here's xml looks like:
<xml> <foo></foo> <bar>1</bar> <bar>2</bar> </xml> i can make jaxb unmarshall following pojo:
class naive { foo foo; list<bar> bar; } however, want following:
class bars { // there fixed number of these, known in advance bar bar1; bar bar2; } class barsadapter extends xmladapter<arraylist<bar>, bars> { ... } class custom { foo foo; @xmljavatypeadapter(barsadapter.class) // won't work bars bar; } as can see, wrote xmladapter wants adapt entire list, not individual elements, never gets invoked unmarshalling. (it invoked marshalling.)
if xml contained wrapper around <bar> elements, know how solve this:
<xml> <foo></foo> <wrapper> <bar>1</bar> <bar>2</bar> </wrapper> </xml> because annotate bars field @xmlelement(id="wrapper") , adapter correctly called. however, xml schema comes rfc , entirely unchangeable, stuck how proceed. ideas appreciated!
Comments
Post a Comment