[英]JAXB marshalling: change element which should declare a namespace
使用JAXB编组时,是否会影响名称空间/命名空间前缀的声明 元素 ?
当前,所有名称空间前缀都在根元素上声明,但是由于处理我的XML的系统的局限性,我需要在子元素上声明它们(仍然会生成有效的xml文档)。
向官方jaxb问题跟踪器提出了类似但不完全相同的请求,但在2006年, 开发人员拒绝了该请求。我想知道这种情况在此期间是否发生了变化,或者是否存在一些变通办法。
任何帮助表示赞赏。
例:
JAXB编组创建以下XML:
<outer xmlns:ns1="http://mydomain">
<inner>
<ns1:data/>
</inner>
</outer>
虽然我需要具有类似的内容(在根元素中未声明ns1
前缀):
<outer>
<inner xmlns:ns1="http://mydomain">
<ns1:data/>
</inner>
</outer>
JAXB(JSR-222)没有提供一种控制名称空间声明出现位置的方法。 JAXB提供程序倾向于将名称空间放在根元素上(出于性能原因),但并非必须如此。
以下是我给一个类似问题的答案的链接,其中扩展了XMLStreamWriter
以控制何时报告名称空间声明。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.