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

时间:2013-07-24 05:03:15

标签: java jaxb marshalling

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

<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 个答案:

答案 0 :(得分:3)

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

<强> - [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;

}

了解更多信息