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.

Другие вопросы по тегам