Интерфейс DeclHandler
- Все известные реализующие классы:
DefaultHandler2
public interface DeclHandler
Это необязательный обработчик расширений 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 |
Сообщить об объявлении типа атрибута. |
void |
elementDecl |
Сообщить об объявлении типа элемента. |
void |
externalEntityDecl |
Сообщить об объявлении внешней анализируемой сущности. |
void |
internalEntityDecl |
Сообщить об объявлении внутренней сущности. |
Подробное описание методов
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
void externalEntityDecl(String name, String publicId, String systemId) throws SAXException
Будет сообщено только эффективное (первое) объявление для каждой сущности.
Если идентификатор системы является URL, парсер должен полностью разрешить его перед передачей приложению.
- Параметры:
-
name- Имя сущности. Если это параметрическая сущность, имя начнется с '%'. -
publicId- Общедоступный идентификатор сущности или null, если он не был указан. -
systemId- Системный идентификатор сущности. - Исключения:
-
SAXException- Приложение может вызвать исключение. - См. также:
© 1993, 2021, 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/17/docs/api/java.xml/org/xml/sax/ext/DeclHandler.html