Интерфейс 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, 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