JAXB 是否支持 xsd:restriction?

2024-05-03

<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 客户端存根生成器这样做,可能是 axis2 webservice,但不确定。


The JAXB (JSR-222) http://jcp.org/en/jsr/detail?id=222规范不包括在域模型中生成快速失败逻辑。现在的常见做法是以注释(或 XML)的形式表达验证规则并对其运行验证。Bean 验证 (JSR-303) http://jcp.org/en/jsr/detail?id=303对此进行了标准化,并且可在任何 Java EE 6 实现中使用。

XJC 扩展

我自己没有尝试过以下扩展,但它似乎会生成Bean 验证 (JSR-303) http://jcp.org/en/jsr/detail?id=303来自 XML 模式的域模型表示验证规则的注释。由于 XJC 具有很强的可扩展性,因此可能还有其他可用的插件。

  • https://github.com/krasa/krasa-jaxb-tools https://github.com/krasa/krasa-jaxb-tools
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAXB 是否支持 xsd:restriction? 的相关文章

随机推荐