<xs:element name="age">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="120"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
所以我希望它像这样转换为 Java 代码:
public void setAge(int age){
if(age < 0 || age > 120){
//throw some exception
}
//setting the age as it is a valid value
}
在 JAXB 中可以吗?
见过一些 WebService 客户端 stub 生成器这样做可能是axis2 webservice,但不确定。
最佳答案
JAXB (JSR-222)规范不包括在域模型中生成快速失败逻辑。现在的一种常见做法是以注释(或 XML)的形式表达验证规则并对其进行验证。 Bean Validation (JSR-303)对此进行了标准化,并可在任何 Java EE 6 实现中使用。
XJC 扩展
我自己没有尝试过以下扩展,但它似乎会生成 Bean Validation (JSR-303)从 XML 模式到域模型表示验证规则的注释。由于 XJC 具有很强的可扩展性,因此可能还有其他可用的插件。
关于java - JAXB 是否支持 xsd :restriction?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13775465/