Spec-Zone.ru › OpenJDK 8

Интерфейс EntityResolver

Все известные подинтерфейсы:
EntityResolver2
Все известные реализующие классы:
DefaultHandler, DefaultHandler2, HandlerBase, XMLFilterImpl

public interface EntityResolver

Основной интерфейс для разрешения сущностей.

Этот модуль, как исходный код, так и документация, находится в общественном достоянии и не имеет ГАРАНТИИ. См. http://www.saxproject.org для получения дополнительной информации.

Если приложению SAX требуется реализовать пользовательскую обработку внешних сущностей, оно должно реализовать этот интерфейс и зарегистрировать экземпляр с драйвером SAX с помощью метода setEntityResolver.

Затем XML-читатель позволит приложению перехватить любые внешние сущности (включая внешний подмножество DTD и внешние параметрические сущности, если таковые имеются) перед их включением.

Многим приложениям SAX не нужно реализовывать этот интерфейс, но он будет особенно полезен для приложений, которые создают XML-документы из баз данных или других специализированных источников ввода, или для приложений, которые используют типы URI, отличные от URL.

Следующий разрешитель предоставит приложению специальный поток символов для сущности с идентификатором системы "http://www.myhost.com/today":

import org.xml.sax.EntityResolver;
 import org.xml.sax.InputSource;

 public class MyResolver implements EntityResolver {
   public InputSource resolveEntity (String publicId, String systemId)
   {
     if (systemId.equals("http://www.myhost.com/today")) {
              // return a special input source
       MyReader reader = new MyReader();
       return new InputSource(reader);
     } else {
              // use the default behaviour
       return null;
     }
   }
 }

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

С момента:
SAX 1.0
См. также:
XMLReader.setEntityResolver(org.xml.sax.EntityResolver), InputSource

Методы

Модификатор и тип Метод и описание
InputSource resolveEntity(String publicId, String systemId)

Разрешить приложению разрешать внешние сущности.

Методы

resolveEntity

InputSource resolveEntity(String publicId,
                          String systemId)
                   throws SAXException,
                          IOException

Разрешить приложению разрешать внешние сущности.

Парсер вызовет этот метод перед открытием любой внешней сущности, за исключением сущности верхнего уровня документа. Такие сущности включают внешнее подмножество DTD и внешние параметрические сущности, на которые ссылается DTD (в обоих случаях, только если парсер читает внешние параметрические сущности), и внешние общие сущности, на которые ссылается элемент документа (если парсер читает внешние общие сущности). Приложение может запросить, чтобы парсер нашел саму сущность, использовал альтернативный URI или использовал данные, предоставленные приложением (как поток символов или байтов).

Авторы приложений могут использовать этот метод для перенаправления внешних идентификаторов систем на защищенные и/или локальные URI, для поиска общедоступных идентификаторов в каталоге или для чтения сущности из базы данных или другого источника ввода (например, диалогового окна). Ни XML, ни SAX не задают предпочтительной политики для использования общедоступных или системных идентификаторов для разрешения ресурсов. Однако SAX определяет, как интерпретировать любой возвращенный этим методом InputSource, и что если он не возвращается, то идентификатор системы будет дериференцирован как URL.

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

Параметры:
publicId - Публичный идентификатор внешней сущности, на которую делается ссылка, или null, если он не был предоставлен.
systemId - Идентификатор системы внешней сущности, на которую делается ссылка.
Возвращает:
Объект InputSource, описывающий новый источник ввода, или null, чтобы запросить, чтобы парсер открыл обычное подключение URI к идентификатору системы.
Исключения:
SAXException - Любое SAX-исключение, возможно, обертывающее другое исключение.
IOException - Java-специфическое исключение IO, возможно, результат создания нового InputStream или Reader для InputSource.
См. также:
InputSource

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API