gpt4 book ai didi

java - JAXB 编码 : change element which should declare a namespace

转载 作者:行者123 更新时间:2023-11-30 11:20:19 41 4
gpt4 key购买 nike

当使用 JAXB 编码时,我对哪个元素声明命名空间/命名空间前缀有影响吗?

目前,所有命名空间前缀都在根元素中声明,但由于处理我的 XML 的系统的奇怪限制,我需要在子元素中声明它们(这仍然会产生有效的 xml 文档)。

official jaxb issue tracker and declined by a developer 提出了类似但不完全相同的请求回到 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)不提供控制 namespace 声明发生位置的方法。 JAXB 提供者倾向于将命名空间放在根元素上(出于性能原因),但它们不是必需的。

下面是我对类似问题的回答的链接,其中扩展了 XMLStreamWriter 以控制何时报告命名空间声明。

关于java - JAXB 编码 : change element which should declare a namespace,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22784138/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com