3

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 に追加しようとしましたが、結果は期待したものではありません。どうぞ、どんな助けでも大歓迎です。

4

1 に答える 1

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;

}

import javax.xml.bind.annotation.*;

@XmlAccessorType(XmlAccessType.FIELD)
public class A {

    @XmlAttribute(namespace="test")
    private String type;

    @XmlValue
    private String value;

}

詳細については

于 2013-07-24T09:18:05.063 に答える