如何在JAXB中进行编组时删除XmlRootElement包装器

时间:2017-11-16 09:31:56

标签: java xml jaxb marshalling

假设我有以下POJO类,我想使用JAXB封送

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
Class Employee {
  private String firstName;
  private String lastName;
  private int age;
}

现在,我正在使用以下代码片段

封送Employee类的实例
JAXBContext jc = JAXBContext.newInstance(Employee.class);
Marshaller marshaller = jc.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
OutputStream os = new FileOutputStream("C:\\employee.xml")
marshaller.marshal(employee, os);

生成的XML看起来像

<Employee>
  <firstName>Mark</firstName>
  <lastName>Smith</lastName>
  <age>30</age>
</Employee>

问题:我不希望员工数据的默认员工标记。 即。

我希望输出如下

 <firstName>Mark</firstName>
  <lastName>Smith</lastName>
  <age>30</age>

如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

不确定你在问什么。 XML文档必须包含根元素。 您可以使用QName(下面的示例)更改它,但它必须存在。

._1