[英]How to create xml using JAXB with namespace
我正在尝试从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);
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"?>
您可以将java.util.List
指定为如下所示。
@XmlElement(name="myElem")
List<MyElem> flexField;
public List<MyElem> getMyElem() {
if(myElem == null) {
myElem = new ArrayList<MyElem>();
}
return this.myElem;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.