有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JAXB在编组java时将xmlns添加到元素中

如何在使用JAXB编组Java对象时将xmlns添加到元素中,因此结果应该如下

<R>  
    <A xmlns:p2="test" p2:type="type">
        some value
    </A>
</R>

例如,我的Java实体类是:

@XmlRootElement
public class R {

    private String a;

    public String getA() {
        return a;
    }

    @XmlElement(name="A")
    public void setA(String a) {
        this.a = a;
    }
}

尝试将名称空间添加到XmlElement中,但结果不是我所期望的。请,任何帮助都将不胜感激


共 (1) 个答案

  1. # 1 楼答案

    在您的示例中,type属性是命名空间限定的。您可以在@XmlAttribute注释上为它设置namespace参数

    R

    import javax.xml.bind.annotation.*;
    
    @XmlRootElement(name="R")
    @XmlAccessorType(XmlAccessType.FIELD)
    public class R {
    
        @XmlElement(name="A")
        private A a;
    
    }
    

    A

    import javax.xml.bind.annotation.*;
    
    @XmlAccessorType(XmlAccessType.FIELD)
    public class A {
    
        @XmlAttribute(namespace="test")
        private String type;
    
        @XmlValue
        private String value;
    
    }
    

    了解更多信息