繁体   English   中英

JAXB编组:更改元素,应声明一个名称空间

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM