Spec-Zone.ru › OpenJDK 27

Класс CatalogFeatures

java.lang.Object
javax.xml.catalog.CatalogFeatures
public class CatalogFeatures extends Object
CatalogFeatures содержит набор функций и свойств.
Функции каталога
Функция Описание Имя свойства Системное свойство [1] Значение [2] Действие
Тип Значение
FILES Список URI, разделённых точками с запятой, для поиска файлов каталога. URI должны быть абсолютными и иметь обработчик протокола URL для схемы URI. javax.xml.catalog.files javax.xml.catalog.files String URIs Считывает первый каталог как текущий; загружает остальные, если в текущем каталоге не найдено совпадение, включая делегированные каталоги, если таковые имеются.
PREFER Определяет приоритет между публичными и системными идентификаторами. Значение по умолчанию — public [3]. javax.xml.catalog.prefer N/A String system Выполняет поиск совпадения среди системных записей; выполняет поиск среди публичных записей, если внешний идентификатор указывает только публичный идентификатор
public Выполняет поиск совпадения среди системных записей; выполняет поиск среди публичных записей, если соответствующая системная запись не найдена.
DEFER Указывает, что альтернативные каталоги, включая указанные в записях delegate или nextCatalog, считываются только по мере необходимости. Значение по умолчанию — true. javax.xml.catalog.defer [4] javax.xml.catalog.defer String true Загружает альтернативные каталоги по мере необходимости.
false Загружает все каталоги[5].
RESOLVE Определяет действие, если после исчерпания всех указанных каталогов совпадающая запись не найдена. Значение по умолчанию — strict. javax.xml.catalog.resolve [4] javax.xml.catalog.resolve String strict Выбрасывает CatalogException, если совпадение не найдено.
continue Позволяет XML-парсеру продолжить работу, как если бы совпадение не было найдено.
ignore Указывает XML-парсеру пропустить внешние ссылки, если совпадение не найдено.

[1] Для функций, помеченных как «N/A», системное свойство отсутствует.

[2] Значение должно в точности соответствовать указанному в этой таблице, с учётом регистра. Любое неуказанное значение приведёт к исключению IllegalArgumentException.

[3] В спецификации каталогов определены сложные правила для атрибута prefer. Хотя его значение может быть public или system, спецификация устанавливает system в качестве предпочтительного варианта: независимо от выбранного значения всегда используется системная запись, если она найдена. Публичные записи рассматриваются только в том случае, если значение prefer — public и системные записи не найдены. Поэтому рекомендуется задавать для атрибута prefer значение public (оно используется по умолчанию).

[4] Хотя атрибуты defer и resolve не являются стандартными в спецификации каталогов OASIS, Java Catalog API распознаёт их так же, как prefer — в качестве атрибутов записи каталога главного каталога. Обратите внимание, что будут использоваться только атрибуты, заданные для записи каталога главного файла каталога.

[5] Если предполагается совместное использование всего хранилища каталогов, может быть целесообразно задать для свойства javax.xml.catalog.defer значение false, чтобы предварительно загрузить весь каталог.

Приоритет свойств

Для функций каталога действует правило приоритета свойств, описанное в сводке модуля и определяющее порядок извлечения значений из различных источников конфигурации, таких как файл конфигурации JAXP, системные свойства и свойства API. Помимо общих источников конфигурации, функции каталога также поддерживаются непосредственно в файле каталога, где их можно указать в качестве атрибутов записей catalog и group. Если эти атрибуты заданы, они имеют приоритет над любыми другими источниками конфигурации. Например, если в файле каталога задан атрибут prefer, как в <catalog prefer="public">, указывать любое другое значение свойства "prefer" не требуется — оно будет проигнорировано.

Экземпляр CatalogFeatures можно создать с помощью его построителя, как показано в следующем примере кода:

               CatalogFeatures f = CatalogFeatures.builder()
                       .with(Feature.FILES, "file:///etc/xml/catalog")
                       .with(Feature.PREFER, "public")
                       .with(Feature.DEFER, "true")
                       .with(Feature.RESOLVE, "ignore")
                       .build();

Поддержка XML-процессоров JAXP

Функции каталога поддерживаются всеми процессорами JAXP, включая SAX и DOM (javax.xml.parsers), парсеры StAX (javax.xml.stream), проверку схем (javax.xml.validation) и преобразование XML (javax.xml.transform). Описанные выше функции можно задавать через фабрики или процессоры JAXP, в которых определён интерфейс setProperty или setAttribute. Например, следующий фрагмент кода задаёт URI файла каталога для парсера SAX с помощью свойства javax.xml.catalog.files:
     SAXParserFactory spf = SAXParserFactory.newInstance();
     spf.setFeature(XMLConstants.USE_CATALOG, true); [1]
     SAXParser parser = spf.newSAXParser();
     parser.setProperty(CatalogFeatures.Feature.FILES.getPropertyName(), "file:///etc/xml/catalog");

[1] Обратите внимание, что это утверждение не требуется, поскольку значение по умолчанию для USE_CATALOG — true.

Поддержка каталогов процессорами JAXP зависит как от функции USE_CATALOG, так и от наличия корректных файлов каталога. Процессор JAXP будет использовать каталог, только если функция включена и корректные файлы каталога указаны с помощью свойства javax.xml.catalog.files. Процессор не будет пытаться использовать каталог, если USE_CATALOG задано как false или если файл каталога не указан.

Процессоры JAXP учитывают настройки по умолчанию для CatalogFeatures. Например, по умолчанию процессоры сообщат об исключении, если совпадающая запись не найдена, поскольку значением по умолчанию для свойства javax.xml.catalog.resolve является strict.

Процессоры JAXP отдают предпочтение пользовательским преобразователям, заданным явно. Если такой преобразователь зарегистрирован, он будет использоваться вместо CatalogResolver. Однако если он возвращает null, процессоры продолжат поиск с помощью CatalogResolver. Если он возвращает пустой источник, CatalogResolver не будет выполнять поиск.

Поддержка каталогов доступна для всех процессов в библиотеке JAXP, поддерживающих преобразователь. В следующей таблице перечислены все такие процессы.

Процессы с поддержкой каталогов

Процессы с поддержкой каталогов
Процесс Тип записи каталога Пример
DTD и внешние сущности public, system
  The following DTD reference:
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

  Can be resolved using the following Catalog entry:
  <public publicId="-//W3C//DTD XHTML 1.0 Strict//EN" uri="catalog/xhtml1-strict.dtd"/>
  or
  <systemSuffix systemIdSuffix="html1-strict.dtd" uri="catalog/xhtml1-strict.dtd"/>
XInclude uri
  The following XInclude element:
  <xi:include href="https://openjdk.org/xml/disclaimer.xml"/>

  can be resolved using a URI entry:
  <uri name="https://openjdk.org/xml/disclaimer.xml" uri="file:///pathto/local/disclaimer.xml"/>
  or
  <uriSuffix uriSuffix="disclaimer.xml" uri="file:///pathto/local/disclaimer.xml"/>
Импорт XSD uri
  The following import element:
   <xsd:import namespace="https://openjdk.org/xsd/XSDImport_person"
               schemaLocation="https://openjdk.org/xsd/XSDImport_person.xsd"/>

  can be resolved using a URI entry:
  <uri name="https://openjdk.org/xsd/XSDImport_person.xsd" uri="file:///pathto/local/XSDImport_person.xsd"/>
  or
  <uriSuffix uriSuffix="XSDImport_person.xsd" uri="file:///pathto/local/XSDImport_person.xsd"/>
  or
  <uriSuffix uriSuffix="https://openjdk.org/xsd/XSDImport_person" uri="file:///pathto/local/XSDImport_person.xsd"/>
Включение XSD uri
  The following include element:
  <xsd:include schemaLocation="https://openjdk.org/xsd/XSDInclude_person.xsd"/>

  can be resolved using a URI entry:
  <uri name="https://openjdk.org/xsd/XSDInclude_person.xsd" uri="file:///pathto/local/XSDInclude_person.xsd"/>
  or
  <uriSuffix uriSuffix="XSDInclude_person.xsd" uri="file:///pathto/local/XSDInclude_person.xsd"/>
Импорт и включение XSL uri
  The following include element:
  <xsl:include href="https://openjdk.org/xsl/include.xsl"/>

  can be resolved using a URI entry:
  <uri name="https://openjdk.org/xsl/include.xsl" uri="file:///pathto/local/include.xsl"/>
  or
  <uriSuffix uriSuffix="include.xsl" uri="file:///pathto/local/include.xsl"/>
Функция document в XSL uri
  The document in the following element:
  <xsl:variable name="dummy" select="document('https://openjdk.org/xsl/list.xml')"/>

  can be resolved using a URI entry:
  <uri name="https://openjdk.org/xsl/list.xml" uri="file:///pathto/local/list.xml"/>
  or
  <uriSuffix uriSuffix="list.xml" uri="file:///pathto/local/list.xml"/>
Начиная с:
9

Краткое описание вложенных классов

Модификатор и тип Класс Описание
static class  CatalogFeatures.Builder
Класс Builder для создания объекта CatalogFeatures.
static enum  CatalogFeatures.Feature
Тип Feature, определённый в таблице функций каталога.

Краткое описание методов

Модификатор и тип Метод Описание
static CatalogFeatures.Builder builder()
Возвращает экземпляр построителя для создания объекта CatalogFeatures.
static CatalogFeatures defaults()
Возвращает экземпляр CatalogFeatures с настройками по умолчанию.
String get(CatalogFeatures.Feature cf)
Возвращает значение указанной функции.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли другой объект этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Финализация устарела и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного времени.

Подробное описание методов

defaults

public static CatalogFeatures defaults()
Возвращает экземпляр CatalogFeatures с настройками по умолчанию.
Возвращает:
экземпляр CatalogFeatures по умолчанию

get

public String get(CatalogFeatures.Feature cf)
Возвращает значение указанной функции.
Параметры:
cf — тип функции каталога
Возвращает:
значение функции

builder

public static CatalogFeatures.Builder builder()
Возвращает экземпляр построителя для создания объекта CatalogFeatures.
Возвращает:
экземпляр построителя

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе документация Java SE, где приведены более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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