当前位置: 首页 > 知识库问答 >
问题:

如何使用JAXB设置默认名称空间

从烈
2023-03-14

我的数据有一个ATOM-XML表示,通过Spring MVC web服务返回。我使用JAXB进行序列化,我有许多名称空间,但我希望默认名称空间设置为Atom,不带前缀。下面是我到目前为止在package-info.java中的内容,但是atom前缀被设置为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中没有。

共有1个答案

胡高寒
2023-03-14

尝试为要显示为默认值的命名空间添加具有前缀“”@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参考实现的最新版本将尽可能使用它们。

有关更多信息

  • http://blog.bdoughan.com/2011/11/jaxb-and-namespace-prefixes.html
 类似资料:
  • 正如在如何使用XPath with Saxon-HE in command Line?中看到的,我尝试使用Saxon和XPath查询HTML。 我在Linux shell中尝试了以下内容: 它可以工作,但我想设置一个默认的名称空间,以便能够查询HTML文件而不需要前缀或通配符,通过示例: 应该是有效的查询。 知道吗?

  • 问题内容: 有没有一种方法可以在python ElementTree中定义默认/无前缀的命名空间?这似乎不起作用… 这也不是: 可以,但是我必须在每个元素前加上前缀: 在OSX上使用Python 3.5。 编辑:如果答案为“否”,您仍然可以获得赏金:-)。我只是想要一个花了很多时间使用它的人的明确“否”。 问题答案: 没有简单的方法可以透明地处理默认名称空间。正如您已经提到的,为空名称空间分配非空

  • 问题内容: 我发现在hibernate配置文件中,我们可以设置参数: 现在,我正在使用JPA,我也想这样做。否则,我必须将参数添加到每个@Table注释中,例如: 据我了解,此参数应该在配置的这一部分中: …但是我在Google中找不到它的名字。有任何想法吗? 问题答案: 也不知道为此的JPA属性。但是,您可以仅将Hibernate属性(假设您使用Hibernate作为提供程序)添加为 hiber

  • 我有一个关于ES6导入模块的问题。 我试图在我的Three.js代码中添加OrbitControl。由于OrbitControls是一个单独的模块,我需要在我的代码中分别导入它们,如下所示。它工作得很好。 然而 我首先想到的是 原因是, 据我所知,如果模块将某些内容导出为导出默认值, 我可以通过在“导入”代码中添加花括号来访问它们。 但是,它没有起作用,因此我假设“三个orbitcontrols”

  • 首先,我使用Camel 2.15版(在Fuse 6.2.1中)创建了一些路由。 在我的过程中,我试图从使用cxf xjc maven插件生成的pojo中创建一个XML(cxf xjc从xsd的某个地方读取了一些xsd,然后生成了带有jaxb注释的pojo)。 pojos是TempProject和TempProjects。 我可以使用以下代码生成xml: 我打电话 在我实现从pojo到xml的编组的

  • 当我给出命令时,我得到默认配置文件的以下输出: 然而,当我给一个命名的配置文件的命令时,我得到了一个配置文件名 我曾尝试通过读取'set'CLI命令将默认配置文件命名为,我还尝试了,因为我认为在阅读本页后,变量的命名就是这样的。我之所以要这样做,是因为我想要有两个配置文件,并且我想要使用环境变量在配置文件之间切换。