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。
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依赖项似乎指向没有XMLSchema1.1支持的Xerces 12.2.0 jar。到今天为止,我认为XMLSchema1.1版本还没有发布到Maven。
Apache社区一直在帮助在Maven repos中提供Xerces。你可能想在这里讨论一下:https://issues.apache.org/jira/browse/XERCESJ-1695.