Xerces v2.12.0 Проверка XML-схемы 1.1
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 ответ
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 указывает на jar Xerces 12.2.0 без поддержки XML Schema 1.1. На сегодняшний день я не думаю, что версия XML Schema 1.1 была опубликована в Maven.
Сообщество Apache помогает делать Xerces доступными в репозиториях Maven. Вы можете поднять обсуждение здесь: https://issues.apache.org/jira/browse/XERCESJ-1695.