2013-06-06 3 views
0

Версия Xerces, поставляемая с Java, имеет bug when dealing with empty XML elements for XML version 1.1 input. Эта ошибка уже давно исправлена ​​в выпуске Apache Xerces (начиная с версии 2.6.2).Переопределить реализацию Xerces для создания XMLEventReader через XMLInputFactory

Я хочу создать XMLEventReader через интерфейс XMLInputFactory. Что-то вроде этого:

XMLInputFactory.newFactory().createXMLEventReader(new FileInputStream(inputFile)); 

Простое размещение контейнеров Xerces в пути к классам, похоже, не работает здесь. На самом деле я не вижу, что выпуск Apache Xerces расширяет XMLInputFactory, что, по-видимому, является необходимым условием для создания фабрики ввода конкретных приложений.

Есть ли способ заставить XMLInputFactory.newFactory использовать выпуск Apache Xerces из класса?

+0

[Это] (http://stackoverflow.com/a/7794556/2071828) может помочь. Вам необходимо установить системное свойство, чтобы указать фабрике, какой класс должен быть создан. –

+0

К сожалению, у Xerces нет реализации XMLInputFactory. По крайней мере, я не мог найти его. – jhunovis

ответ

0

Попробуйте

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

эта версия включает в себя StAX и будет переопределить по умолчанию осущ STAX автоматически, использованияКонтактная баночка Service Provider

Механизм
+0

К сожалению, наш проект не использует Maven. Все библиотеки устанавливаются с помощью установки пути к классам. – jhunovis

+0

Это нормально просто скачать xerces 2.11.0 jar отсюда http://xerces.apache.org/mirrors.cgi –

+0

Кажется, что это не работает. Я попробовал код примера из вопроса [связанного в моем вопросе] (http://stackoverflow.com/questions/10727288/why-does-the-stax-parser-think-this-is-valid-xml-1-0 -but-not-1-1) только с вашей зависимостью от Maven от Xerces 2.11. – jhunovis

 Смежные вопросы

  • Нет связанных вопросов^_^