Как составить список элементов JAXBElement?
У меня есть одно POJO, которое я не могу комментировать, например:
public class APojo {
private String aString;
public APojo() {
super();
}
public String getAString() {
return aString;
}
public void setAString(String aString) {
this.aString = aString;
}
}
Так что я делаю это
APojo aPojo = new APojo();
aPojo.setaString("a string");
JAXBElement<APojo> aJAXBedPojo = new JAXBElement<APojo>(new QName("apojo"), APojo.class, aPojo);
Что правильно маршалируется.
Тем не менее
List<JAXBElement<APojo>> list = new ArrayList<JAXBElement<APojo>>();
Не работает: когда я это делаю
JAXBContext context = JAXBContext.newInstance(APojo.class, ArrayList.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
m.marshal(list, System.out);
Время выполнения повышается:
[com.sun.istack.internal.SAXException2: unable to marshal type "java.util.ArrayList" as an element because it is missing an @XmlRootElement annotation]
Что нормально, поскольку ArrayList не аннотирован.
Я знаю, что могу создать обертку вокруг ArrayList и аннотировать ее с помощью @XmlRootElement, чтобы я мог упорядочить эту обертку.
Я ищу решение без такой обертки. Можно ли создать JAXBElement с T, являющимся ArrayList? Или что-то подобное?