我们正在使用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>
答案 0 :(得分:0)
我一直在寻找这样的JAXB扩展:https://github.com/whummer/jaxb-facets
不幸的是,它不是JAXB的扩展而是fork,因此它完全取代了JDK的JAXB实现。
这个项目的目的是集成到JDK中,但是没有发生,因为你可以在这张票中看到:https://github.com/javaee/jaxb-v2/issues/917
还有另一个解决类似问题的项目:https://github.com/krasa/krasa-jaxb-tools,但这个问题也不再受支持了。