1

xsd に次のようなものがあります (編集できません)。

<xsd:simpleType name="Foo">
    <xsd:restriction base="xsd:string">
        <xsd:enumeration value="BAR"/>
    </xsd:restriction>
</xsd:simpleType>

JAXB はFoo、子として次の要素を持つクラスを表すこの Java コードを生成します。

    public Foo getValue() {
        return value;
    }

    public void setValue(Foo value) {
        this.value = value;
    }

しかし、 の可能な値は 1 つしかないFooため、Java コードで次のようなものを見たいと思います。

public Foo getValue() {
    if( value == null )
    {
        return Foo.BAR; //Foo already is defined as enum, so this code is fine
    }
    return value;
}

JAXBでこれを実現する簡単な方法はありますか?

4

1 に答える 1

1

要約すると、 Foo のデフォルト値を期待していますか? その場合は、代わりに Foo 型要素にデフォルト値を追加してみてください。

デフォルト値についてはhttp://www.w3.org/TR/xmlschema-0/#OccurrenceConstraintsを参照してください

于 2012-11-09T11:47:02.087 に答える