gpt4 book ai didi

java - 如何使用 JAXB 设置默认命名空间

转载 作者:搜寻专家 更新时间:2023-10-31 19:39:44 24 4
gpt4 key购买 nike

我有一个通过 Spring MVC Web 服务返回的数据的 ATOM-XML 表示。我正在使用 JAXB 进行序列化,我有许多 namespace ,但我希望将默认 namespace 设置为不带前缀的 Atom。这是我目前在 package-info.java 中的内容,但原子前缀设置为 ns3。

@XmlSchema(namespace = com.mycomponay.foo.ATOM_NAMESPACE,
xmlns = {
@XmlNs(prefix = "foo", namespaceURI = com.mycomponay.foo.NAMESPACE_FOO),
}, elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package com.mycompany.web;

import javax.xml.bind.annotation.XmlNs;

我还注意到命名空间在 chrome 中显示,但在 Firefox 中不显示。

最佳答案

尝试为您希望显示为默认 namespace 的 namespace 添加带有前缀 ""@XmlNs 注释。

@XmlSchema(
namespace = com.mycompany.foo.ATOM_NAMESPACE,
xmlns = {
@XmlNs(prefix = "", namespaceURI = com.mycompany.foo.ATOM_NAMESPACE),
@XmlNs(prefix = "foo", namespaceURI = com.mycompany.foo.NAMESPACE_FOO)
},
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package com.mycompany.web;

import javax.xml.bind.annotation.*;

注意:

@XmlSchema 注释中指定的命名空间旨在影响 XML 架构的生成,并且不能保证在将对象模型编码为 XML 时使用。然而EclipseLink JAXB (MOXy)和最新版本的 JAXB reference implementation将尽可能使用它们。

了解更多信息

关于java - 如何使用 JAXB 设置默认命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17478317/

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