使用jaxb / xkc生成一组与我的xsd相关的类。
具体来说,我对以下定义的枚举(来自xsd)
有疑问<xs:simpleType name="TEST">
<xs:annotation>
<xs:documentation>
BLAH
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="FOO"/>
<xs:enumeration value="BAR"/>
</xs:restriction>
</xs:simpleType>
现在,如果我将C in作为值传递,您可能会因为以下生成的代码而失败;
@XmlType(name = "TEST")
@XmlEnum
public enum TEST{
@XmlEnumValue("FOO")
FOO("FOO"),
@XmlEnumValue("BAR")
BAR("BAR");
private final String value;
TEST(String v) {
value = v;
}
public String value() {
return value;
}
public static TEST fromValue(String v) {
for (TEST test: TEST.values()) {
if (test.value.equals(v)) {
return test;
}
}
throw new IllegalArgumentException(v);
}
}
现在我认为应该抛出异常,但事实并非如此。可能是因为fromValue方法似乎没有被调用到任何地方?为什么在这种情况下它只是将值设置为null然后如何让它抛出异常?
由于