java - 在从 Java JAXB 注释类生成的模式中生成 XSD 限制

标签 java xsd jaxb moxy

莫西 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/

相关文章:

xml - Visual Studio 2010 中的 XSLT 2.0 intellisense - 添加架构?

kotlin - 用于 build.gradle.kts 的 Jaxb。如何将其从groovy翻译成kotlin?

json - Glassfish JAX-RS JSON 映射简单示例内部服务器错误 500 未生成日志

java - 异常在线程 "IDL"java.lang.UnsatisfiedLinkError : no idl_ips in java. library.path

xml - XSD:导入复杂类型不起作用

java - egl_emulation eglsurfaceattrib 未使用流媒体播放器实现

xml - 在 xsd 中使用 ="optional"是多余的吗?

java - jsp 中不显示后跟 < 字符的文本

java - File 可以找到文件,但 FileReader 找不到

java - 参数长度太长