我在stackoverflow上做了一些搜索,并没有真正找到我需要的答案。
我在尝试使用JAXB操作命名空间时遇到了一些麻烦。我们来吧。
我需要以下格式的XML
<root xmlns="http://namespace/root">
<item xmlns="http://namespace/item">
<id>1</id>
<name>First</name>
</item>
<item xmlns="http://namespace/item">
<id>2</id>
<name>Second</name>
</item>
</root>
如您所见,我基本上需要在每个标记上复制名称空间。当我尝试使用JAXB创建它时,我得到以下XML输出:
<root xmlns="http://namespace/root"
xmlns:ns2="http://namespace/item">
<ns2:item>
<ns2:id>1</ns:id>
<ns2:name>First</ns2:name>
</ns2:item>
<ns2:item>
<ns2:id>2</ns:id>
<ns2:name>Second</ns2:name>
</ns2:item>
</root>
显然有意义的是它是这样生成的,它使用前缀所以这里不应该有任何问题,
但我发送此XML的消费者要求它采用该格式,我必须为文件中的每个项目复制命名空间。
有人知道怎么做吗?我想到了一个String模板,但由于它已经完成了JAXB,我想知道是否有更简单的方法来做到这一点。
提前谢谢大家!