1

JAXBを介してxmlファイルを作成しているため、次のような要素が生成されます。

<someData null="true"/>

Javaクラスは次のようになります。

@XmlType(propOrder={"someData"})
public class someClass implements Serializable {
    private String someData;

    public String getSomeData() {
        return someData;
    }

    public void setSomeData(String someData) {
        this.someData = someData;
    }
}

nilの場合にxmlからsomeDataを削除する出力を生成する、または次のような空の要素を生成する注釈、またはその他のメカニズムはありますか?:

<someData/>
4

1 に答える 1

1

オブジェクトモデルを考えると、次のデモコードがあります。

package forum10437439;

import javax.xml.bind.*;
import javax.xml.namespace.QName;

public class Demo {

    public static void main(String[] args) throws Exception {
        JAXBContext jc = JAXBContext.newInstance(someClass.class);

        someClass someClass = new someClass();
        someClass.setSomeData(null);

        Marshaller marshaller = jc.createMarshaller();
        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
        JAXBElement<someClass> je = new JAXBElement<someClass>(new QName("root"), someClass.class, someClass); 
        marshaller.marshal(je, System.out);
    }

}

探しているXML結果が生成されます。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root/>

考えられる原因

のインスタンスを表示している表現にXmlAdapter変換している可能性のあるパッケージレベルで登録しましたか?String

于 2012-05-03T20:20:43.120 に答える