莫西 BeanValidation使我能够向我的 JAXB 类添加验证。
使用 MOXy 的“Bean 验证插件”,我可以在基于 restrictions/facets 生成的 JAXB 类中进行 Bean 验证来自预先存在的架构。
然而,有什么方法可以生成架构 restrictions/facets基于 Bean 验证注释 来自 JAXB 注释的 java 类?
XJC 在执行“schema first”生成 java 时有一个方便的插件架构,但是是否有任何等效的“java first”方法来增强生成的 XSD 的额外限制,甚至添加 XML 注释?在 MOXy 或 JAXB-RI 中?
MOXy 在中间映射中非常灵活,可以在模式生成期间使用吗?
jaxb-facets project似乎做了我想做的事,但实现者不得不 fork 一个全新的 JAXB-RI 来获得它,而且它似乎不会很快被采用。(See this Java JIRA)
我尝试了@m0mus 指定的分辨率,但不得不使用 sonatype 存储库中的 2.7.0-SNAPSHOT 版本。我还有一些问题; 1. 我必须用@XmlElement 对java 字段进行注释,才能让这些方面出现在xsd 中。 @XmlAttribute、@XmlAccessorType(XmlAccessType.FIELD) 没有区别。 @Pattern 无效;我不得不处理 Pattern.List 中的单个模式;
@XmlElement
@Pattern.List(value = { @Pattern(regexp="[0-9]*") })
public String phoneNumber2;
有关详细信息,请参阅 EclipseLink Forum
最佳答案
提交了增强处理 @XMLAttribute
字段的请求:Bugs Page
您需要使用 v2.7 的原因是,在一些用于架构生成的异常调用树中,enable facets 属性值不会沿着调用树传播。这是fixed 5 月 5 日。要求向后移植到 EL v2.6 now .
关于java - 在从 Java JAXB 注释类生成的模式中生成 XSD 限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32403146/