Java: Как предотвратить 'systemId' в EntityResolver#resolveEntity (Представьте publicId в виде строки, Строка systemId) от того, чтобы быть абсолютизируемым до текущего рабочего каталога

символьная ссылка каждый терминальный редактор в Вашей системе к энергии и символьной ссылке каждый графический редактор в Вашей системе к сценарию, который открывает новое окно терминала с выполнением энергии.

8
задан His 30 October 2009 в 23:54
поделиться

2 ответа

По-видимому, существует еще один интерфейс, называемый EntityResolver2 , который является расширением старого EntityResolver . (Поговорите о запутанных именах!)

В любом случае, я обнаружил, что EntityResolver2 достиг того, что я хотел, то есть он не вносит никаких изменений в systemId , поэтому всегда будет в точности то, что было указано в XML-документе.

8
ответ дан 5 December 2019 в 20:17
поделиться

Из EntityResolver Javadocs :

Если системный идентификатор является URL-адресом, Парсер SAX должен разрешить его полностью прежде чем сообщить об этом

Кроме того, в org.xml.sax docs говорится о функции resolve-dtd-uris:

Это не относится к EntityResolver.resolveEntity (), который не используется для сообщения деклараций ...

Я думаю, вам нужно либо установить свой базовый URI на то, с чем вы можете жить, либо использовать общедоступные идентификаторы вместо идентификаторов системы.

0
ответ дан 5 December 2019 в 20:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: