java - Xerces v2.12.0 XML 模式 1.1 验证

标签 java xml validation xsd xerces2-j

Xerces 2.12.0 声称支持 XSD 1.1 ( https://xerces.apache.org/xerces2-j/faq-xs.html ),但我无法通过 SchemaFactory.newInstance 调用。

更多背景:

此行失败:

import javax.xml.validation.SchemaFactory;
//...
schemaFactory = SchemaFactory.newInstance("http://www.w3.org/XML/XMLSchema/v1.1");

异常(exception):

java.lang.IllegalArgumentException: No SchemaFactory that implements the schema language specified by: http://www.w3.org/XML/XMLSchema/v1.1 could be loaded

这是我正在使用的 Maven 依赖项:

<dependency>
    <groupId>xerces</groupId>
    <artifactId>xercesImpl</artifactId>
    <version>2.12.0</version>
</dependency>

虽然我发现有几篇文章声称这有效,但它不适合我。

我见过有人推荐这个非常古老的依赖项:

<dependency>
    <groupId>org.opengis.cite.xerces</groupId>
    <artifactId>xercesImpl-xsd11</artifactId>
    <version>2.12-beta-r1667115</version>
</dependency>

是的,这有点管用,但我更喜欢使用 Apache 版本,特别是因为它声称支持 XSD 1.1。

最佳答案

Xerces-J 2.12.0 有两种发行版:一种 (Xerces-J-bin.2.12.0-xml-schema-1.1.zip) 包含 XML Schema 1.1 支持,另一种 (Xerces-J-bin.2.12.0.zip) 不包含。您的 Maven 依赖项似乎指向没有 XML Schema 1.1 支持的 Xerces 12.2.0 jar。截至今天,我认为 XML Schema 1.1 版本尚未发布到 Maven。

Apache 社区一直在帮助 Xerces 在 Maven 存储库中可用。您可能想在这里进行讨论:https://issues.apache.org/jira/browse/XERCESJ-1695 .

关于java - Xerces v2.12.0 XML 模式 1.1 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53306174/

相关文章:

c# - 将参数传递给提供给属性的类型

php - 使用 $.post() 进行表单验证

java - 基于语言环境的验证

java - 与 findElement() 一起使用的最有效选择器是什么?

java - Javasound Mixer不显示任何输出设备

java - MyBatis/iBatis - 单独的 SQL Map 文件中的可重用 sql 片段?

android - 在Android中使用drawable中的xml创建像圆弧一样的弯曲线

java - 使用数组创建自定义方法并打印一个值

xml - IoC/依赖注入(inject) - 请解释代码与 XML

java - 如何在java中动态创建XML元素?