使用JAXB编组时, 影响 哪个元素命名空间/命名空间前缀声明?
目前,所有名称空间前缀都在根元素处声明,但由于处理我的XML的系统的奇怪限制,我需要在子元素处声明它们(这仍然会产生有效的xml文档)。
2006年official jaxb issue tracker and declined by a developer提出了类似但不完全相同的请求。我想知道这种情况是否同时发生变化,或者是否存在某些变通方法。
感谢任何帮助。
示例: 的
JAXB编组创建以下XML:
<outer xmlns:ns1="http://mydomain">
<inner>
<ns1:data/>
</inner>
</outer>
虽然我需要有类似的东西
(ns1
前缀在根元素处声明不:
<outer>
<inner xmlns:ns1="http://mydomain">
<ns1:data/>
</inner>
</outer>
答案 0 :(得分:1)
JAXB (JSR-222)没有提供控制命名空间声明发生位置的方法。 JAXB提供程序倾向于将名称空间放在根元素上(出于性能原因),但它们不是必需的。
下面是我给类似问题的答案的链接,其中XMLStreamWriter
被扩展以控制何时报告名称空间声明。