Интерфейс DeclHandler
- Все известные реализующие классы:
DefaultHandler2
public interface DeclHandler
Обработчик расширений SAX2 для событий объявления DTD.
Этот модуль, как исходный код, так и документация, находится в общественном достоянии и не имеет ГАРАНТИЙ. См. http://www.saxproject.org для получения дополнительной информации.
Это необязательный обработчик расширений 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, 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/org/xml/sax/ext/DeclHandler.html