Spec-Zone.ru › OpenJDK 25

Интерфейс DeclHandler

Все известные реализующие классы:
DefaultHandler2
public interface DeclHandler
Обработчик расширения SAX2 для событий объявления DTD.

Это необязательный обработчик расширения SAX2, предназначенный для предоставления более полной информации об объявлениях DTD в XML-документе. XML-парсеры не обязаны распознавать этот обработчик, и он не входит в дистрибутивы SAX2, содержащие только базовые компоненты.

Обратите внимание, что объявления DTD, связанные с данными (неразобранные сущности и нотации), уже передаются через интерфейс DTDHandler.

Если вы используете обработчик объявлений вместе с лексическим обработчиком, все события будут происходить между событиями startDTD и endDTD.

Чтобы задать DeclHandler для XML-парсера, используйте метод setProperty с именем свойства http://xml.org/sax/properties/declaration-handler и объектом, реализующим этот интерфейс (или значением null), в качестве значения. Если парсер не сообщает о событиях объявлений, при попытке зарегистрировать обработчик он вызовет исключение SAXNotRecognizedException.

Начиная с:
1.4, SAX 2.0 (расширения 1.0)

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

Модификатор и тип Метод Описание
void attributeDecl(String eName, String aName, String type, String mode, String value)
Сообщает об объявлении типа атрибута.
void elementDecl(String name, String model)
Сообщает об объявлении типа элемента.
void externalEntityDecl(String name, String publicId, String systemId)
Сообщает об объявлении внешней разобранной сущности.
void internalEntityDecl(String name, String value)
Сообщает об объявлении внутренней сущности.

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

elementDecl

void elementDecl(String name, String model) throws SAXException
Сообщает об объявлении типа элемента.

Модель содержимого будет представлена строкой "EMPTY", строкой "ANY" или группой в круглых скобках, за которой может следовать индикатор вхождения. Модель будет нормализована: все параметрические сущности будут полностью разрешены, все пробельные символы удалены, а охватывающие скобки сохранены. Другие виды нормализации (например, удаление избыточных скобок или упрощение индикаторов вхождения) остаются на усмотрение парсера.

Параметры:
name — имя типа элемента.
model — модель содержимого в виде нормализованной строки.
Вызывает исключения:
SAXException — приложение может вызвать исключение.

attributeDecl

void attributeDecl(String eName, String aName, String type, String mode, String value) throws SAXException
Сообщает об объявлении типа атрибута.

Будет сообщено только об эффективном (первом) объявлении атрибута. Типом будет одна из строк "CDATA", "ID", "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", "ENTITY", "ENTITIES", группа токенов в круглых скобках с разделителем "|" и без пробельных символов либо слово "NOTATION", за которым следует пробел и группа токенов в круглых скобках без пробельных символов.

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

Параметры:
eName — имя связанного элемента.
aName — имя атрибута.
type — строка, представляющая тип атрибута.
mode — строка, представляющая режим задания значения атрибута ("#IMPLIED", "#REQUIRED" или "#FIXED"), либо null, если ни один из этих режимов не применяется.
value — строка, представляющая значение атрибута по умолчанию, либо null, если оно отсутствует.
Вызывает исключения:
SAXException — приложение может вызвать исключение.

internalEntityDecl

void internalEntityDecl(String name, String value) throws SAXException
Сообщает об объявлении внутренней сущности.

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

Параметры:
name — имя сущности. Если это параметрическая сущность, имя будет начинаться с '%'.
value — текст замены сущности.
Вызывает исключения:
SAXException — приложение может вызвать исключение.
См. также:
  • externalEntityDecl(String, String, String)
  • DTDHandler.unparsedEntityDecl(String, String, String, String)

externalEntityDecl

void externalEntityDecl(String name, String publicId, String systemId) throws SAXException
Сообщает об объявлении внешней разобранной сущности.

Будет сообщено только об эффективном (первом) объявлении каждой сущности.

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

Параметры:
name — имя сущности. Если это параметрическая сущность, имя будет начинаться с '%'.
publicId — публичный идентификатор сущности или null, если он не задан.
systemId — системный идентификатор сущности.
Вызывает исключения:
SAXException — приложение может вызвать исключение.
См. также:
  • internalEntityDecl(String, String)
  • DTDHandler.unparsedEntityDecl(String, String, String, String)

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.xml/org/xml/sax/ext/DeclHandler.html

Spec-Zone.ru

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