首页 > 解决方案 > 为 JAXB 类动态添加命名空间

问题描述

我有以下xml:

<?xml version="1.0" encoding="UTF-8"?>
<roots xmlns="http://www.test.com/test/rest/v1">
   <root>
      <name>james</name>
   </root>
</roots>

我想为上述 xml 生成 JAXB 类,并xmlns="http://www.test.com/test/rest/v1"在编组时动态添加名称空间 ()。我可以生成 JAXB 类,但不能动态添加命名空间。我尝试使用以下代码,但它不起作用。关于如何做到这一点的任何想法?

JAXBContext jaxbContext = JAXBContext.newInstance("com.test");

XMLStreamWriter xmlStreamWriter = XMLOutputFactory.newInstance().createXMLStreamWriter(inputSchema);
xmlStreamWriter.setPrefix("xmlns", "http://www.test.com/test/rest/v1");

Marshaller jaxbMarshaller = jaxbContext.createMarshaller();

jaxbMarshaller.marshal(roots, xmlStreamWriter);

标签: javajaxb

解决方案


推荐阅读