Интерфейс 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, когда вы попытаетесь зарегистрировать обработчик.
- С момента:
- 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.