Получите XMLReader, который гарантированно вызовет мой EntityResolver
Механизм JAXP для получения XMLReader
в действительности позволяет выбор XMLReader
настраиваться настройкой системных свойств. Один из популярных вариантов (по уважительным причинам) - использовать Apache. ResolvingXMLReader
, который использует файл каталога для косвенной ссылки URI.
Без разницы XMLReader
Я использую в своем приложении, я хочу (по одному конкретному пути), чтобы иметь возможность установить свой собственный EntityResolver
на XMLReader
, Проблема в том, что апач ResolvingXMLReader
молча игнорирует мою попытку установить EntityResolver
на том основании, что он хочет использовать свой собственный.
Я ищу идеи / предложения о том, как обойти эту проблему.
Во-первых, выявление ситуации. Явно тестирую, является ли XMLReader, который мне дали, Apache ResolvingXMLReader
не похоже на очень чистое решение; другие реализации могут иметь такую же проблему. Настройка EntityResolver
и поиск, чтобы узнать, действительно ли его называют, чувствует себя дорогим и довольно чрезмерно оборонительным.
Во-вторых, что делать, если ситуация обнаружена? Я был бы счастлив получить экземпляр XML-парсера, которому я могу доверять, например, тот, что в JDK. Есть ли способ получить экземпляр XMLReader платформы по умолчанию, не зная его фактического имени, учитывая, что это имя не обязательно будет стабильным?
Обратите внимание, что я говорю об одном специализированном внутреннем пути, где это необходимо. В целом, я очень рад, что пользователи перенаправили мой код на использование Apache. ResolvingXMLReader
для всего остального.
Есть идеи?