Интерфейс CatalogResolver

Все суперинтерфейсы:
EntityResolver, LSResourceResolver, URIResolver, XMLResolver
public interface CatalogResolver
extends EntityResolver, XMLResolver, URIResolver, LSResourceResolver

Разрешитель каталога, реализующий SAX EntityResolver, StAX XMLResolver, DOM LS LSResourceResolver, используемые в проверке схем, и Transform URIResolver, и разрешающий внешние ссылки с помощью каталогов.

Стандарт каталогов отличает external identifiers от uri entries как используемые только для идентификации DTD, тогда как uri entries для других ресурсов, таких как таблицы стилей и схемы. Однако Java API, такие как XMLResolver и LSResourceResolver, такого различия не делают. В соответствии с существующим Java API, этот CatalogResolver распознает идентификатор системы как URI и будет искать как system , так и uri записи в каталоге, чтобы найти соответствующую запись.

Поиск начинается в текущем каталоге. Если совпадение найдено, дальнейшие попытки не будут предприниматься. Только если совпадение не найдено в текущем каталоге, будут рассмотрены альтернативные каталоги, включая делегированный и следующий каталоги.

Порядок поиска

Разрешитель сначала будет искать записи системного типа со специфицированным systemId. Системные записи включают system, rewriteSystem и systemSuffix записи.

Если совпадение не найдено, public записи могут быть просмотрены в соответствии с атрибутом prefer.

Атрибут prefer: если prefer общедоступен, а совпадение не найдено через системные записи, public записи будут рассмотрены. Если не указано, prefer общедоступен по умолчанию (Обратите внимание, что по стандарту OASIS, системные записи всегда рассматриваются перед общедоступными. Предпочтение общедоступным означает, что общедоступные записи будут сопоставлены, когда указаны и системный, и общедоступный идентификаторы. Поэтому рекомендуется отдавать предпочтение общедоступным.)

Если совпадение не найдено с systemId и public идентификатором, разрешитель продолжит поиск uri записей со специфицированным systemId или href. uri записи включают uri, rewriteURI, и uriSuffix записи.

Обработка ошибок

Интерфейсы, которые расширяет CatalogResolver, определяют проверяемые исключения, включая:

Однако CatalogResolver будет выбрасывать CatalogException только когда javax.xml.catalog.resolve указан как strict. Для приложений, ожидающих обработки проверяемых исключений, может потребоваться использование пользовательского разрешителя для обертывания CatalogResolver или его реализации с объектом Catalog.

С:
9

Методы

Модификатор и тип Метод Описание
Source resolve​(String href, String base)

Реализует URIResolver.

InputSource resolveEntity​(String publicId, String systemId)

Реализует EntityResolver.

InputStream resolveEntity​(String publicId, String systemId, String baseUri, String namespace)

Реализует XMLResolver.

LSInput resolveResource​(String type, String namespaceUri, String publicId, String systemId, String baseUri)

Реализует LSResourceResolver.

Методы

resolveEntity

InputSource resolveEntity(String publicId,
                          String systemId)

Реализует EntityResolver. Метод ищет соответствия в записях каталога в основных и альтернативных каталогах для указанного publicId, или systemId.

Определено в:
resolveEntity в интерфейсе EntityResolver
Параметры:
publicId — общедоступный идентификатор внешней сущности, на которую ссылаются, или null, если он не был предоставлен
systemId — системный идентификатор внешней сущности, на которую ссылаются. Системный идентификатор требуется для всех внешних сущностей. XML требует системного идентификатора для всех внешних сущностей, поэтому это значение всегда указывается.
Возвращает:
объект InputSource, если соответствие найдено. Если соответствие не найдено, возвращает объект InputSource содержащий пустой объект Reader, если свойство javax.xml.catalog.resolve установлено в значение ignore; возвращает null, если свойство javax.xml.catalog.resolve установлено в значение continue.
Выбрасывает:
CatalogException — если соответствие не найдено, и javax.xml.catalog.resolve указано как strict
См. также:
InputSource

resolve

Source resolve(String href,
               String base)

Реализует URIResolver. Метод ищет соответствия в записях каталога в основных и альтернативных каталогах для указанного атрибута href. Атрибут href будет использован буквально, без попыток сделать его абсолютным относительно base.

Если значение является URN, атрибут href распознается как publicId, и используется для поиска в записях public. Если значение является URI, оно рассматривается как systemId, и используется для поиска в записях system и uri.

Определено в:
resolve в интерфейсе URIResolver
Параметры:
href — атрибут href, который определяет URI таблицы стилей, который может быть относительным или абсолютным
base — базовый URI, относительно которого атрибут href будет сделан абсолютным, если требуется абсолютный URI
Возвращает:
объект Source, если соответствие найдено. Если соответствие не найдено, возвращает пустой объект Source, если свойство javax.xml.catalog.resolve установлено в значение ignore; возвращает объект Source с оригинальным URI (href или href с решенным базой, если база не null), если свойство javax.xml.catalog.resolve установлено в значение continue.
Выбрасывает:
CatalogException — если соответствие не найдено, и javax.xml.catalog.resolve указано как strict

resolveEntity

InputStream resolveEntity(String publicId,
                          String systemId,
                          String baseUri,
                          String namespace)

Реализует XMLResolver. Для целей разрешения publicId и systemId, этот метод эквивалентен resolveEntity(java.lang.String, java.lang.String).

Атрибут systemId будет использован буквально, без попыток сделать его абсолютным относительно baseUri. Атрибуты baseUri и namespace не используются при поиске соответствия в каталоге. Однако относительный systemId в источнике xml может быть преобразован в абсолютный парсером с использованием baseURI, что затруднит поиск записи system. В таком случае рекомендуется использовать запись systemSuffix вместо system.

Определено в:
resolveEntity в интерфейсе XMLResolver
Параметры:
publicId — общедоступный идентификатор внешней сущности, на которую ссылаются, или null, если он не был предоставлен
systemId — системный идентификатор внешней сущности, на которую ссылаются. Системный идентификатор требуется для всех внешних сущностей. XML требует системного идентификатора для всех внешних сущностей, поэтому это значение всегда указывается.
baseUri — абсолютный базовый URI, не используемый CatalogResolver
namespace — имя пространства сущности для разрешения, не используемое CatalogResolver.
Возвращает:
объект InputStream, если соответствие найдено; null, если соответствие не найдено, и свойство javax.xml.catalog.resolve установлено в continue или ignore. Обратите внимание, что для XMLResolver игнорирование ссылки невозможно, ignore поэтому обрабатывается так же, как continue.
Выбрасывает:
CatalogException — если соответствие не найдено, и javax.xml.catalog.resolve указано как strict

resolveResource

LSInput resolveResource(String type,
                        String namespaceUri,
                        String publicId,
                        String systemId,
                        String baseUri)

Реализует LSResourceResolver. Для целей разрешения publicId и systemId, этот метод эквивалентен resolveEntity(java.lang.String, java.lang.String).

Атрибут systemId будет использован буквально, без попыток сделать его абсолютным относительно baseUri. Атрибуты baseUri, namespaceUri и type не используются при поиске соответствия в каталоге. Однако относительный systemId в источнике может быть преобразован в абсолютный парсером с использованием baseURI, что затруднит поиск записи system. В таком случае рекомендуется использовать запись systemSuffix вместо system.

Определено в:
resolveResource в интерфейсе LSResourceResolver
Параметры:
type — тип разрешаемого ресурса, не используется CatalogResolver
namespaceUri — имя пространства разрешаемого ресурса, не используется CatalogResolver
publicId — общедоступный идентификатор внешней сущности, на которую ссылаются, или null, если общедоступный идентификатор не был предоставлен или если ресурс не является сущностью.
systemId — системный идентификатор, URI-ссылка на внешний ресурс, на который ссылаются
baseUri — абсолютный базовый URI, не используемый CatalogResolver
Возвращает:
объект LSInput, если соответствие найдено; null, если соответствие не найдено, и свойство javax.xml.catalog.resolve установлено в continue или ignore. Обратите внимание, что для LSResourceResolver, игнорирование ссылки невозможно, ignore поэтому обрабатывается так же, как continue.
Выбрасывает:
CatalogException — если соответствие не найдено, и javax.xml.catalog.resolve указано как strict

© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.xml/javax/xml/catalog/CatalogResolver.html

Spec-Zone .ru
спецификации, руководства, описания, API