Spec-Zone.ru › OpenJDK 25

Класс 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

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

declaration

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

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 предоставляет эти события, все остальные события должны быть правильно вложены в события начала и конца сущностей. Дополнительных требований к порядку событий из 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, а также с уже преобразованным в абсолютный URI значением 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() с нулевыми именем сущности и базовым URI. Чтобы использовать этот класс, достаточно переопределить этот метод.
Определено в:
resolveEntity в интерфейсе EntityResolver
Переопределяет:
resolveEntity в классе DefaultHandler
Параметры:
publicId — Общедоступный идентификатор или null, если он недоступен.
systemId — Системный идентификатор, указанный в документе XML.
Возвращает:
Новый источник входных данных или null, чтобы использовать поведение по умолчанию.
Выбрасывает:
SAXException — любое исключение SAX, возможно обёртывающее другое исключение.
IOException — если при настройке нового источника входных данных произошла ошибка.
См. также:
  • EntityResolver.resolveEntity(String, String)

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её дочерних компаний в США и других странах.
Авторские права © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.xml/org/xml/sax/ext/DefaultHandler2.html

Spec-Zone.ru

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