XSD 自底向上 JAX-WS 的限制

XSD Restrictions for bottom-up JAX-WS

我们使用 Spring 和 CXF 来提供 SOAP Web 服务。 WSDL 是从 Java 代码生成的。

有没有一种方法可以在 Java 代码中定义将应用于生成的 XSD 的验证规则?

例如,支持某些 JSR 303 注释会很棒。在这种情况下,此代码:

@Pattern(regexp = "[0-9]+/[0-9]+")
private String phone;

会这样 XSD:

<restriction base="string">
   <pattern value="[0-9]+/[0-9]+"></pattern>
</restriction>

我正在寻找这样的 JAXB 扩展:https://github.com/whummer/jaxb-facets

不幸的是,它不是 JAXB 的扩展,而是一个分支,因此它完全取代了 JDK 中的 JAXB 实现。

这个项目的目的是整合到 JDK,但它并没有发生,正如您在这张票中看到的那样:https://github.com/javaee/jaxb-v2/issues/917

还有另一个解决类似问题的项目:https://github.com/krasa/krasa-jaxb-tools,但这个项目也不再受支持。