Класс DefaultHandler2
- Все реализуемые интерфейсы:
ContentHandler, DTDHandler, EntityResolver, ErrorHandler, DeclHandler, EntityResolver2, LexicalHandler
public class DefaultHandler2 extends DefaultHandler implements LexicalHandler, DeclHandler, EntityResolver2
LexicalHandler, DeclHandler и EntityResolver2. За исключением переопределения исходного метода SAX1 resolveEntity(), добавленные методы обработчика просто возвращают управление. Подклассы могут переопределять каждый метод по отдельности. Примечание: этот класс может в дальнейшем учитывать, что при вызове ContentHandler.setDocumentLocator() может передаваться объект Locator2, а при вызове ContentHandler.startElement() может передаваться объект Attributes2.
- Начиная с версии:
- 1.5, SAX 2.0 (расширения 1.1 alpha)
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
DefaultHandler2() |
Создает обработчик, который игнорирует все события синтаксического анализа. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
attributeDecl |
Сообщает об объявлении типа атрибута. |
void |
comment |
Сообщает о комментарии XML в любом месте документа. |
void |
elementDecl |
Сообщает об объявлении типа элемента. |
void |
endCDATA() |
Сообщает о завершении раздела CDATA. |
void |
endDTD() |
Сообщает о завершении объявлений DTD. |
void |
endEntity |
Сообщает о завершении сущности. |
void |
externalEntityDecl |
Сообщает об объявлении анализируемой внешней сущности. |
InputSource |
getExternalSubset |
Сообщает анализатору, что если во входном тексте документа не объявлено внешнее подмножество, использовать его не следует. |
void |
internalEntityDecl |
Сообщает об объявлении внутренней сущности. |
InputSource |
resolveEntity |
Вызывает EntityResolver2.resolveEntity() с нулевыми именем сущности и базовым URI. |
InputSource |
resolveEntity |
Указывает анализатору разрешить systemId относительно baseURI и прочитать текст сущности по полученному абсолютному URI. |
void |
startCDATA() |
Сообщает о начале раздела CDATA. |
void |
startDTD |
Сообщает о начале объявлений DTD, если они имеются. |
void |
startEntity |
Сообщает о начале некоторых внутренних и внешних сущностей XML. |
Методы, объявленные в классе DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning | Модификатор и тип | Метод | Описание |
|---|---|---|
void |
characters |
Получает уведомление о символьных данных внутри элемента. |
void |
endDocument() |
Получает уведомление о завершении документа. |
void |
endElement |
Получает уведомление о завершении элемента. |
void |
endPrefixMapping |
Получает уведомление о завершении сопоставления пространства имен. |
void |
error |
Получает уведомление об исправимой ошибке анализатора. |
void |
fatalError |
Сообщает о неисправимой ошибке синтаксического анализа XML. |
void |
ignorableWhitespace |
Получает уведомление о незначащих пробельных символах в содержимом элемента. |
void |
notationDecl |
Получает уведомление об объявлении нотации. |
void |
processingInstruction |
Получает уведомление о инструкции обработки. |
void |
setDocumentLocator |
Получает объект Locator для событий документа. |
void |
skippedEntity |
Получает уведомление о пропущенной сущности. |
void |
startDocument() |
Получает уведомление о начале документа. |
void |
startElement |
Получает уведомление о начале элемента. |
void |
startPrefixMapping |
Получает уведомление о начале сопоставления пространства имен. |
void |
unparsedEntityDecl |
Получает уведомление об объявлении неанализируемой сущности. |
void |
warning |
Получает уведомление о предупреждении анализатора. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект какому-либо другому объекту. |
protected void |
finalize() |
Устарело и подлежит удалению: этот элемент API может быть удален в будущей версии. Финализация устарела и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Методы, объявленные в интерфейсе ContentHandler
declaration | Модификатор и тип | Метод | Описание |
|---|---|---|
default void |
declaration |
Получает уведомление об объявлении XML. |
Подробное описание конструкторов
DefaultHandler2
public DefaultHandler2()
Подробное описание методов
startCDATA
public void startCDATA() throws SAXException
LexicalHandlerСодержимое раздела CDATA будет сообщено посредством обычного события characters; это событие предназначено только для обозначения границы.
- Определено в:
-
startCDATAв интерфейсеLexicalHandler - Вызывает исключение:
-
SAXException— приложение может вызвать исключение. - См. также:
endCDATA
public void endCDATA() throws SAXException
LexicalHandler- Определено в:
-
endCDATAв интерфейсеLexicalHandler - Вызывает исключение:
-
SAXException— приложение может вызвать исключение. - См. также:
startDTD
public void startDTD(String name, String publicId, String systemId) throws SAXException
LexicalHandlerЭтот метод предназначен для сообщения о начале объявления DOCTYPE; если в документе нет объявления DOCTYPE, этот метод вызван не будет.
Все объявления, сообщаемые посредством событий DTDHandler или DeclHandler, должны находиться между событиями startDTD и endDTD. Предполагается, что объявления относятся к внутреннему подмножеству DTD, если только они не находятся между событиями startEntity и endEntity. Комментарии и инструкции обработки из DTD также должны сообщаться между событиями startDTD и endDTD в исходном порядке их (логического) появления; при этом они не обязаны находиться в правильных позициях относительно событий DTDHandler или DeclHandler.
Обратите внимание, что события start/endDTD появляются внутри событий start/endDocument интерфейса ContentHandler и до первого события startElement.
- Определено в:
-
startDTDв интерфейсеLexicalHandler - Параметры:
-
name— имя типа документа. -
publicId— объявленный публичный идентификатор внешнего подмножества DTD или null, если он не был объявлен. -
systemId— объявленный системный идентификатор внешнего подмножества DTD или null, если он не был объявлен. (Обратите внимание, что он не разрешается относительно базового URI документа.) - Вызывает исключение:
-
SAXException— приложение может вызвать исключение. - См. также:
endDTD
public void endDTD() throws SAXException
LexicalHandlerЭтот метод предназначен для сообщения об окончании объявления DOCTYPE; если в документе нет объявления DOCTYPE, этот метод вызван не будет.
- Определено в:
-
endDTDв интерфейсеLexicalHandler - Вызывает исключение:
-
SAXException— приложение может вызвать исключение. - См. также:
startEntity
public void startEntity(String name) throws SAXException
LexicalHandlerСообщение о параметрических сущностях (включая внешнее подмножество DTD) необязательно; драйверы SAX2, сообщающие события LexicalHandler, могут не реализовывать эту возможность. Для запроса или управления сообщением о параметрических сущностях можно использовать функцию http://xml.org/sax/features/lexical-handler/parameter-entities.
Общие сущности сообщаются под своими обычными именами, перед именами параметрических сущностей ставится '%', а для внешнего подмножества DTD используется псевдоимя сущности "[dtd]".
При выдаче этих событий драйвером SAX2 все остальные события должны быть корректно вложены в события start/end entity. Дополнительного требования к правильному порядку событий DeclHandler или DTDHandler нет.
Обратите внимание, что о пропущенных сущностях сообщается посредством события skippedEntity, входящего в интерфейс ContentHandler.
Из-за потоковой модели событий, используемой SAX, некоторые границы сущностей не могут быть сообщены ни при каких обстоятельствах:
- общие сущности внутри значений атрибутов
- параметрические сущности внутри объявлений
Они будут развернуты без уведомления о расположении исходных границ сущностей.
Также обратите внимание, что границы ссылок на символы (которые, строго говоря, не являются сущностями) не сообщаются.
Все события start/endEntity должны быть корректно вложены.
- Определено в:
-
startEntityв интерфейсеLexicalHandler - Параметры:
-
name— имя сущности. Если это параметрическая сущность, имя будет начинаться с '%'; для внешнего подмножества DTD оно будет равно "[dtd]". - Вызывает исключение:
-
SAXException— приложение может вызвать исключение. - См. также:
endEntity
public void endEntity(String name) throws SAXException
LexicalHandler- Определено в:
-
endEntityв интерфейсеLexicalHandler - Параметры:
-
name— имя завершающейся сущности. - Вызывает исключение:
-
SAXException— приложение может вызвать исключение. - См. также:
comment
public void comment(char[] ch, int start, int length) throws SAXException
LexicalHandlerЭтот обратный вызов используется для комментариев внутри или вне элемента документа, включая комментарии во внешнем подмножестве DTD (если оно прочитано). Комментарии в DTD должны быть корректно вложены в события start/endDTD и start/endEntity (если они используются).
- Определено в:
-
commentв интерфейсеLexicalHandler - Параметры:
-
ch— массив, содержащий символы комментария. -
start— начальная позиция в массиве. -
length— количество символов, используемых из массива. - Вызывает исключение:
-
SAXException— приложение может вызвать исключение.
attributeDecl
public void attributeDecl(String eName, String aName, String type, String mode, String value) throws SAXException
DeclHandlerСообщается только действующее (первое) объявление атрибута. Типом будет одна из строк "CDATA", "ID", "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", "ENTITY", "ENTITIES", группа токенов в скобках с разделителем "|" и без пробелов либо слово "NOTATION", за которым следует пробел и группа токенов в скобках без пробелов.
Значение будет таким, каким оно сообщается приложениям: нормализованным соответствующим образом, с развернутыми ссылками на сущности и символы.
- Определено в:
-
attributeDeclв интерфейсеDeclHandler - Параметры:
-
eName— имя связанного элемента. -
aName— имя атрибута. -
type— строка, представляющая тип атрибута. -
mode— строка, представляющая режим значения по умолчанию для атрибута ("#IMPLIED", "#REQUIRED" или "#FIXED"), либо null, если ни один из них не применяется. -
value— строка, представляющая значение атрибута по умолчанию, либо null, если оно отсутствует. - Вызывает исключение:
-
SAXException— приложение может вызвать исключение.
elementDecl
public void elementDecl(String name, String model) throws SAXException
DeclHandlerМодель содержимого будет представлена строкой "EMPTY", строкой "ANY" или группой в скобках, за которой может следовать индикатор вхождения. Модель будет нормализована так, чтобы все параметрические сущности были полностью разрешены, а все пробелы удалены; также будут включены охватывающие скобки. Другая нормализация (например, удаление избыточных скобок или упрощение индикаторов вхождения) остается на усмотрение анализатора.
- Определено в:
-
elementDeclв интерфейсеDeclHandler - Параметры:
-
name— имя типа элемента. -
model— модель содержимого в виде нормализованной строки. - Вызывает исключение:
-
SAXException— приложение может вызвать исключение.
externalEntityDecl
public void externalEntityDecl(String name, String publicId, String systemId) throws SAXException
DeclHandlerДля каждой сущности сообщается только действующее (первое) объявление.
Если системный идентификатор является URL-адресом, анализатор должен полностью разрешить его до передачи приложению.
- Определено в:
-
externalEntityDeclв интерфейсеDeclHandler - Параметры:
-
name— имя сущности. Если это параметрическая сущность, имя будет начинаться с '%'. -
publicId— публичный идентификатор сущности или null, если он не указан. -
systemId— системный идентификатор сущности. - Вызывает исключение:
-
SAXException— приложение может вызвать исключение. - См. также:
internalEntityDecl
public void internalEntityDecl(String name, String value) throws SAXException
DeclHandlerДля каждой сущности сообщается только действующее (первое) объявление. Все параметрические сущности в значении будут развернуты, но общие сущности развернуты не будут.
- Определено в:
-
internalEntityDeclв интерфейсеDeclHandler - Параметры:
-
name— имя сущности. Если это параметрическая сущность, имя будет начинаться с '%'. -
value— текст замены сущности. - Вызывает исключение:
-
SAXException— приложение может вызвать исключение. - См. также:
getExternalSubset
public InputSource getExternalSubset(String name, String baseURI) throws SAXException, IOException
- Определено в:
-
getExternalSubsetв интерфейсеEntityResolver2 - Параметры:
-
name— идентифицирует корневой элемент документа. Это имя берется из объявления DOCTYPE (если оно имеется) или из фактического корневого элемента. -
baseURI— базовый URI документа, служащий дополнительной подсказкой для выбора внешнего подмножества. Это всегда абсолютный URI, если только он не равен null из-за того, что XMLReader был передан InputSource без URI. - Возвращает:
- Объект InputSource, описывающий новое внешнее подмножество, которое должен использовать анализатор, либо null, указывающий, что внешнее подмножество не предоставлено.
- Вызывает исключение:
-
SAXException— любое исключение SAX, возможно, оборачивающее другое исключение. -
IOException— вероятно, указывает на сбой при создании нового InputStream или Reader либо на недопустимый URL.
resolveEntity
public InputSource resolveEntity(String name, String publicId, String baseURI, String systemId) throws SAXException, IOException
DefaultHandler.resolveEntity() переопределен для вызова этого метода, иногда этот метод может быть вызван с null в параметрах name и baseURI, а значение systemId уже может быть преобразовано в абсолютное.- Определено в:
-
resolveEntityв интерфейсеEntityResolver2 - Параметры:
-
name— идентифицирует разрешаемую внешнюю сущность. Это "[dtd]" для внешнего подмножества, имя, начинающееся с "%", для обозначения параметрической сущности или имя общей сущности. При вызове анализатором SAX2 это значение никогда не равно null. -
publicId— публичный идентификатор внешней сущности, на которую дана ссылка (нормализованный в соответствии с требованиями спецификации XML), либо null, если он не указан. -
baseURI— URI, относительно которого интерпретируются относительные systemID. Это всегда абсолютный URI, если только он не равен null (вероятно, потому что XMLReader был передан InputSource без URI). Согласно спецификации XML, этот URI связан с символом "<", с которого начинается соответствующее объявление. -
systemId— системный идентификатор внешней сущности, на которую дана ссылка; относительный или абсолютный URI. При вызове анализатором SAX2 это значение никогда не равно null; такие анализаторы разрешают только объявленные сущности и внешнее подмножество. - Возвращает:
- Объект InputSource, описывающий новый источник ввода для анализатора. Возврат null указывает анализатору разрешить системный идентификатор относительно базового URI и установить соединение с полученным URI.
- Вызывает исключение:
-
SAXException— любое исключение SAX, возможно, оборачивающее другое исключение. -
IOException— вероятно, указывает на сбой при создании нового InputStream или Reader либо на недопустимый URL.
resolveEntity
public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException
EntityResolver2.resolveEntity(), передавая null в качестве имени сущности и базового URI. Чтобы использовать этот класс, достаточно переопределить тот метод.- Определено в:
-
resolveEntityв интерфейсеEntityResolver - Переопределяет:
-
resolveEntityв классеDefaultHandler - Параметры:
-
publicId— публичный идентификатор или null, если он отсутствует. -
systemId— системный идентификатор, указанный в документе XML. - Возвращает:
- Новый источник ввода или null, чтобы потребовать поведение по умолчанию.
- Вызывает исключение:
-
SAXException— любое исключение SAX, возможно, оборачивающее другое исключение. -
IOException— при ошибке настройки нового источника ввода. - См. также:
© 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.