Spec-Zone.ru › OpenJDK 27

Класс DefaultHandler2

java.lang.Object
org.xml.sax.helpers.DefaultHandler
org.xml.sax.ext.DefaultHandler2
Все реализуемые интерфейсы:
ContentHandler, DTDHandler, EntityResolver, ErrorHandler, DeclHandler, EntityResolver2, LexicalHandler
public class DefaultHandler2 extends DefaultHandler implements LexicalHandler, DeclHandler, EntityResolver2
Этот класс расширяет базовый класс обработчика SAX2 для поддержки расширений SAX2 LexicalHandler, DeclHandler и EntityResolver2. За исключением переопределения исходного метода SAX1 resolveEntity(), добавленные методы обработчика просто возвращают управление. Подклассы могут переопределять каждый метод по отдельности.

Примечание: этот класс может в дальнейшем учитывать, что при вызове ContentHandler.setDocumentLocator() может передаваться объект Locator2, а при вызове ContentHandler.startElement() может передаваться объект Attributes2.

Начиная с версии:
1.5, SAX 2.0 (расширения 1.1 alpha)

Краткое описание конструкторов

Конструктор Описание
DefaultHandler2()
Создает обработчик, который игнорирует все события синтаксического анализа.

Краткое описание методов

Модификатор и тип Метод Описание
void attributeDecl(String eName, String aName, String type, String mode, String value)
Сообщает об объявлении типа атрибута.
void comment(char[] ch, int start, int length)
Сообщает о комментарии XML в любом месте документа.
void elementDecl(String name, String model)
Сообщает об объявлении типа элемента.
void endCDATA()
Сообщает о завершении раздела CDATA.
void endDTD()
Сообщает о завершении объявлений DTD.
void endEntity(String name)
Сообщает о завершении сущности.
void externalEntityDecl(String name, String publicId, String systemId)
Сообщает об объявлении анализируемой внешней сущности.
InputSource getExternalSubset(String name, String baseURI)
Сообщает анализатору, что если во входном тексте документа не объявлено внешнее подмножество, использовать его не следует.
void internalEntityDecl(String name, String value)
Сообщает об объявлении внутренней сущности.
InputSource resolveEntity(String publicId, String systemId)
Вызывает EntityResolver2.resolveEntity() с нулевыми именем сущности и базовым URI.
InputSource resolveEntity(String name, String publicId, String baseURI, String systemId)
Указывает анализатору разрешить systemId относительно baseURI и прочитать текст сущности по полученному абсолютному URI.
void startCDATA()
Сообщает о начале раздела CDATA.
void startDTD(String name, String publicId, String systemId)
Сообщает о начале объявлений DTD, если они имеются.
void startEntity(String name)
Сообщает о начале некоторых внутренних и внешних сущностей XML.

Методы, объявленные в классе DefaultHandler

characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
Модификатор и тип Метод Описание
void characters(char[] ch, int start, int length)
Получает уведомление о символьных данных внутри элемента.
void endDocument()
Получает уведомление о завершении документа.
void endElement(String uri, String localName, String qName)
Получает уведомление о завершении элемента.
void endPrefixMapping(String prefix)
Получает уведомление о завершении сопоставления пространства имен.
void error(SAXParseException e)
Получает уведомление об исправимой ошибке анализатора.
void fatalError(SAXParseException e)
Сообщает о неисправимой ошибке синтаксического анализа XML.
void ignorableWhitespace(char[] ch, int start, int length)
Получает уведомление о незначащих пробельных символах в содержимом элемента.
void notationDecl(String name, String publicId, String systemId)
Получает уведомление об объявлении нотации.
void processingInstruction(String target, String data)
Получает уведомление о инструкции обработки.
void setDocumentLocator(Locator locator)
Получает объект Locator для событий документа.
void skippedEntity(String name)
Получает уведомление о пропущенной сущности.
void startDocument()
Получает уведомление о начале документа.
void startElement(String uri, String localName, String qName, Attributes attributes)
Получает уведомление о начале элемента.
void startPrefixMapping(String prefix, String uri)
Получает уведомление о начале сопоставления пространства имен.
void unparsedEntityDecl(String name, String publicId, String systemId, String notationName)
Получает уведомление об объявлении неанализируемой сущности.
void warning(SAXParseException e)
Получает уведомление о предупреждении анализатора.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому объекту.
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(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

Методы, объявленные в интерфейсе ContentHandler

declaration
Модификатор и тип Метод Описание
default void declaration(String version, String encoding, String standalone)
Получает уведомление об объявлении XML.

Подробное описание конструкторов

DefaultHandler2

public DefaultHandler2()
Создает обработчик, игнорирующий все события разбора.

Подробное описание методов

startCDATA

public void startCDATA() throws SAXException
Описание скопировано из интерфейса: LexicalHandler
Сообщает о начале раздела CDATA.

Содержимое раздела CDATA будет сообщено посредством обычного события characters; это событие предназначено только для обозначения границы.

Определено в:
startCDATA в интерфейсе LexicalHandler
Вызывает исключение:
SAXException — приложение может вызвать исключение.
См. также:
  • LexicalHandler.endCDATA()

endCDATA

public void endCDATA() throws SAXException
Описание скопировано из интерфейса: LexicalHandler
Сообщает об окончании раздела CDATA.
Определено в:
endCDATA в интерфейсе LexicalHandler
Вызывает исключение:
SAXException — приложение может вызвать исключение.
См. также:
  • LexicalHandler.startCDATA()

startDTD

public void startDTD(String name, String publicId, String systemId) throws SAXException
Описание скопировано из интерфейса: LexicalHandler
Сообщает о начале объявлений DTD, если они есть.

Этот метод предназначен для сообщения о начале объявления 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 — приложение может вызвать исключение.
См. также:
  • LexicalHandler.endDTD()
  • LexicalHandler.startEntity(String)

endDTD

public void endDTD() throws SAXException
Описание скопировано из интерфейса: LexicalHandler
Сообщает об окончании объявлений DTD.

Этот метод предназначен для сообщения об окончании объявления DOCTYPE; если в документе нет объявления DOCTYPE, этот метод вызван не будет.

Определено в:
endDTD в интерфейсе LexicalHandler
Вызывает исключение:
SAXException — приложение может вызвать исключение.
См. также:
  • LexicalHandler.startDTD(String, String, String)

startEntity

public void startEntity(String name) throws SAXException
Описание скопировано из интерфейса: LexicalHandler
Сообщает о начале некоторых внутренних и внешних сущностей XML.

Сообщение о параметрических сущностях (включая внешнее подмножество 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 — приложение может вызвать исключение.
См. также:
  • LexicalHandler.endEntity(String)
  • DeclHandler.internalEntityDecl(String, String)
  • DeclHandler.externalEntityDecl(String, String, String)

endEntity

public void endEntity(String name) throws SAXException
Описание скопировано из интерфейса: LexicalHandler
Сообщает об окончании сущности.
Определено в:
endEntity в интерфейсе LexicalHandler
Параметры:
name — имя завершающейся сущности.
Вызывает исключение:
SAXException — приложение может вызвать исключение.
См. также:
  • LexicalHandler.startEntity(String)

comment

public void comment(char[] ch, int start, int length) throws SAXException
Описание скопировано из интерфейса: LexicalHandler
Сообщает о комментарии XML в любом месте документа.

Этот обратный вызов используется для комментариев внутри или вне элемента документа, включая комментарии во внешнем подмножестве 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 — приложение может вызвать исключение.
См. также:
  • DeclHandler.internalEntityDecl(String, String)
  • DTDHandler.unparsedEntityDecl(String, String, String, String)

internalEntityDecl

public void internalEntityDecl(String name, String value) throws SAXException
Описание скопировано из интерфейса: DeclHandler
Сообщает об объявлении внутренней сущности.

Для каждой сущности сообщается только действующее (первое) объявление. Все параметрические сущности в значении будут развернуты, но общие сущности развернуты не будут.

Определено в:
internalEntityDecl в интерфейсе DeclHandler
Параметры:
name — имя сущности. Если это параметрическая сущность, имя будет начинаться с '%'.
value — текст замены сущности.
Вызывает исключение:
SAXException — приложение может вызвать исключение.
См. также:
  • DeclHandler.externalEntityDecl(String, String, String)
  • DTDHandler.unparsedEntityDecl(String, String, String, String)

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
Сообщает анализатору, что нужно разрешить systemId относительно baseURI и прочитать текст сущности по полученному абсолютному URI. Обратите внимание: поскольку старый метод 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 — при ошибке настройки нового источника ввода.
См. также:
  • EntityResolver.resolveEntity(String, String)

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API