仅在jaxb中枚举限制默认值

时间:2012-11-09 11:14:06

标签: java xml xsd jaxb

我在xsd中有这样的东西(我无法编辑):

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

JAXB在表示element的类中生成此java代码,该代码具有Foo作为子代:

    public Foo getValue() {
        return value;
    }

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

但是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中实现这一点?

1 个答案:

答案 0 :(得分:1)

总结一下,你期待Foo的默认值?如果是这样,请尝试在Foo类型元素上添加默认值。

请参阅http://www.w3.org/TR/xmlschema-0/#OccurrenceConstraints获取默认值