Xerces v2.12.0 XML Schema 1.1验证

时间:2018-11-14 17:55:16

标签: 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");

除了:

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。

1 个答案:

答案 0 :(得分:0)

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