微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

受 Bean Validation 2.0 注释限制的模式生成

如何解决受 Bean Validation 2.0 注释限制的模式生成

我想使用 Bean Validation 2.0 JSR-380 注释(或至少 JSR-303)为soap web 服务实现合同最后的方法,我想用maven 从带注释的java 类生成xsd 文件。目前我使用 schemagen 插件org.codehaus.mojo:jaxb2-maven-plugin:2.5.0 目标来生成架构定义,但 JSR-380 注释被忽略,我找不到任何 maven 插件或配置来达到预期的结果。

我曾经采用契约拳方法,没有任何问题,org.codehaus.mojo:jaxb2-maven-plugin:2.5.0 插件 xjc 目标和来自 -XJSR303Annotations 模块的额外 com.github.krasa:krasa-jaxb-tools:1.8 参数。如我所料,生成的 java 类有 @NotNull、@Size、@Pattern 等注释。

我已经注释了这样的java类

@XmlAccessorType(XmlAccesstype.FIELD)
@XmlType(name = "SampleRequest",namespace = "com/stackoverflow/sample")
@XmlRootElement(name = "sampleRequest",namespace = "com/stackoverflow/sample")
public class SampleRequest {

    @Pattern(regexp = "[A-Z]{3}-[0-9]{3}")
    private String licensePlateNumber;

    // getter/setter

}

我想要实现的是带有相应 <restriction> 标签输出 xsd。

所以我期待这样的输出

  <xs:simpleType name="LicensePlateType">
    <xs:restriction base="xs:string">
      <xs:pattern value="[A-Z]{3}-[0-9]{3}"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="SampleRequest">
    <xs:sequence>
      <xs:element minOccurs="0" name="licensePlateNumber" type="LicensePlateType"/>
    </xs:sequence>
  </xs:complexType>

有谁知道我的问题的解决方案,或者我必须编写一个自定义的 maven 插件

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。