JAXB:限定属性禁用默认命名空间 xmlns=“”?
当我使用 @XmlSchema(attributeFormDefault = XmlNsForm.QUALIFIED, ...)
或 @XmlAttribute(namespace = "sample.com/y", ...)
JAXB 忽略@XmlSchema(namespace = "sample.com/x", ...)
而不是:
<a xmlns="sample.com/y" xmlns:ns0="sample.com/y">
<b ns0:att=""/>
</a>
生成类似以下内容:
<ns1:a xmlns:ns1="sample.com/x" xmlns:ns0="sample.com/y">
<ns1:b ns0:att=""/>
</ns1:a>
这是预期的行为吗?有什么办法可以纠正这个问题吗?
When I use @XmlSchema(attributeFormDefault = XmlNsForm.QUALIFIED, ...)
or@XmlAttribute(namespace = "sample.com/y", ...)
JAXB ignores @XmlSchema(namespace = "sample.com/x", ...)
and instead of:
<a xmlns="sample.com/y" xmlns:ns0="sample.com/y">
<b ns0:att=""/>
</a>
generates something like:
<ns1:a xmlns:ns1="sample.com/x" xmlns:ns0="sample.com/y">
<ns1:b ns0:att=""/>
</ns1:a>
Is this an expected behavior? Is there any way to correct this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
EclipseLink JAXB (MOXy) 正在处理元素的前缀限定根据属性形式限定而有所不同(如下所示)。
命名空间限定没有错误,但我同意尽可能使用默认命名空间更好。您可以使用以下错误跟踪此问题的进展:
A
演示
未设置 attributeFormDefault 的包信息
输出:
包-info 与 attributeFormDefault设置
输出:
EclipseLink JAXB (MOXy) is handling the prefix qualification for elements differently depending upon the attribute form qualification (as demonstrated below).
The namespace qualification is not wrong, but I agree that the use of default namespace is better when possible. You can track the progress on this issue using the following bug:
A
Demo
package-info without attributeFormDefault set
Output:
package-info with attributeFormDefault set
Output: