我尝试从java对象创建XML,实际上是List<MyElem>
。 MyElem对象本身正在编组好,虽然我无法编组这些对象的列表 - 想到的解决方案之一是创建另一个类来包装该列表,但它看起来很难看。有更优雅的方式吗?
另一个问题 - 有没有办法为每个元素提供模式前缀,比如
<n:elem>some val</n:elem>
没有在每个属性上指定它?
UPD :在第二个问题中,我的意思是,如果我拥有像public String element
这样的属性,它会被编组为<elem>some val</elem>
,而我想要它(以及其他所有属性)作为前缀与n:
,例如<n:elem>
。
让我为第一个提供代码:
List<Book> list = new ArrayList<>();
JAXBContext context = JAXBContext.newInstance(Book.class);
Marshaller jaxbMarshaller = context.createMarshaller();
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
list.add(new Book());
list.add(new Book());
jaxbMarshaller.marshal(list, writer);
哪个产生
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
虽然我想在里面有书籍元素
答案 0 :(得分:0)
您可以指定为java.util.List
,如下所示。
@XmlElement(name="myElem")
List<MyElem> flexField;
public List<MyElem> getMyElem() {
if(myElem == null) {
myElem = new ArrayList<MyElem>();
}
return this.myElem;
}