问题
I have a MyBean annotated
@XmlRootElement
public class MyBean ...
Marshalling/Unmarshalling MyBean w/o problems, e.g.
JAXBContext jaxbCtx = JAXBContext.newInstance(MyBean.class);
Marshaller m = jaxbCtx.createMarshaller();
m.marshal(myBean, writer);
How can I use JAXB to marshall/unmarshall a Collection or List?
My attempt results in this error:
javax.xml.bind.MarshalException
- with linked exception:
[com.sun.istack.internal.SAXException2: unable to marshal type "java.util.ArrayList" as an element because it is missing an @XmlRootElement annotation]
at com.sun.xml.internal.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:304)
at com.sun.xml.internal.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:230)
回答1:
You have to create another element of type MyBeanList
and use it. Something related on SO Using JAXB to unmarshal/marshal a List<String>
来源:https://stackoverflow.com/questions/2315466/how-to-use-jaxb-to-marshall-unmarshall-a-collection-of-mybean