Получите XMLReader, который гарантированно вызовет мой EntityResolver

Механизм JAXP для получения XMLReader в действительности позволяет выбор XMLReader настраиваться настройкой системных свойств. Один из популярных вариантов (по уважительным причинам) - использовать Apache. ResolvingXMLReader, который использует файл каталога для косвенной ссылки URI.

Без разницы XMLReader Я использую в своем приложении, я хочу (по одному конкретному пути), чтобы иметь возможность установить свой собственный EntityResolver на XMLReader, Проблема в том, что апач ResolvingXMLReader молча игнорирует мою попытку установить EntityResolverна том основании, что он хочет использовать свой собственный.

Я ищу идеи / предложения о том, как обойти эту проблему.

Во-первых, выявление ситуации. Явно тестирую, является ли XMLReader, который мне дали, Apache ResolvingXMLReader не похоже на очень чистое решение; другие реализации могут иметь такую ​​же проблему. Настройка EntityResolver и поиск, чтобы узнать, действительно ли его называют, чувствует себя дорогим и довольно чрезмерно оборонительным.

Во-вторых, что делать, если ситуация обнаружена? Я был бы счастлив получить экземпляр XML-парсера, которому я могу доверять, например, тот, что в JDK. Есть ли способ получить экземпляр XMLReader платформы по умолчанию, не зная его фактического имени, учитывая, что это имя не обязательно будет стабильным?

Обратите внимание, что я говорю об одном специализированном внутреннем пути, где это необходимо. В целом, я очень рад, что пользователи перенаправили мой код на использование Apache. ResolvingXMLReader для всего остального.

Есть идеи?

0 ответов

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