gpt4 book ai didi

Java xml 绑定(bind)与错误的 xmlns 属性名称

转载 作者:行者123 更新时间:2023-12-02 08:32:44 27 4
gpt4 key购买 nike

当我使用注释时:

@XmlRootElement(name="RootElement", namespace="namespace")
class RootElement {

要从 java 创建 xml 文件,它会创建根元素:

<ns2:RootElement xmlns:ns2="namespace">

但我想在没有“ns2”的情况下创建,例如:

<RootElement xmlns="namespace">

知道如何修复它吗?

Reletad 链接(我用来创建 xml 的示例): http://www.java2s.com/Code/JavaAPI/javax.xml.bind.annotation/XmlRootElementname.htm

最佳答案

在您的情况下,JAXB 不使用 xmlns = "namespace" 因为 xmlns = "namespace" 还为子元素指定命名空间,然后您的 last 元素位于默认命名空间中(因为 @XmlRootElement 没有为子元素指定命名空间)。因此,您需要使用 @XmlElement 设置 firstlast 的命名空间:

  @XmlElement(namespace = "namespace")
public String getFirst() {
return first;
}

...

@XmlElement(namespace = "namespace")
public String getLast() {
return last;
}

您还可以通过在package-info.java中使用包级注释来避免为每个元素编写 namespace :

@javax.xml.bind.annotation.XmlSchema(
namespace = "namespace",
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package foo;

关于Java xml 绑定(bind)与错误的 xmlns 属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2875285/

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