2016-12-02 15 views
1

JAXBを使用する私のカスタムオブジェクトをXMLにマーシャリングしています。JAXB:空のときのXmlタグ

は、このようなオブジェクトを考えてみましょう:

@XmlRootElement(name = "Config") 
public class Config { 

    @XmlElement(name = "projectVersion") 
    private String version; 

バージョンの値がnullの場合、私は手動でセッターでそれを設定しています。

this.version=version==null?"":version; 

しかし、私は次のようにタグの出力を取得しています:

</version> 

が、顧客が

<version></version>

どのように私はそれを達成することができますように出力を要求? setterメソッドで空のスペース ""を設定する以外は?

ありがとうございました。

+0

[This(http://stackoverflow.com/questions/32448868/how-to-generate-end-tag-for-empty-elelemt-in-xml-using-jaxb)が役立つ可能性があります – grizzly

答えて

0

なぜ顧客はそれを要求していますか?いかなる理由で?

<version/><version></version>は厳密に同等です。これらはどちらも空要素、ピリオドです。

これらの2つの構文は、仕様の観点からは同等であるため、これは純粋にインプリメンテーション依存です。マーシャリング担当者に、またはmarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE)にマーシャルしてみてください。

関連する問題