Spec-Zone.ru › OpenJDK 21

Интерфейс 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(java.lang.String, java.lang.String, java.lang.String)
  • DTDHandler.unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)

externalEntityDecl

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

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

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

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

© 1993, 2023, 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/21/docs/api/java.xml/org/xml/sax/ext/DeclHandler.html

Spec-Zone.ru

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