1

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

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

JAXB 在表示元素的类中生成此 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 中实现这一点?

4

1 回答 1

1

总而言之,您期望 Foo 的默认值?如果是这样,请尝试在 Foo 类型元素上添加默认值。

有关默认值,请参见http://www.w3.org/TR/xmlschema-0/#OccurrenceConstraints

于 2012-11-09T11:47:02.087 回答