Spec-Zone.ru › OpenJDK 24

Класс 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() с именем сущности null и базовым 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-сущностей.

Методы, объявленные в классе org.xml.sax.helpers.DefaultHandler

characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning

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

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

Методы, объявленные в интерфейсе org.xml.sax.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(java.lang.String)

endDTD

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

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

Определено в:
endDTD в интерфейсе LexicalHandler
Исключения:
SAXException - Приложение может вызвать исключение.
См. также:
  • LexicalHandler.startDTD(java.lang.String, java.lang.String, java.lang.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(java.lang.String)
  • DeclHandler.internalEntityDecl(java.lang.String, java.lang.String)
  • DeclHandler.externalEntityDecl(java.lang.String, java.lang.String, java.lang.String)

endEntity

public void endEntity(String name) throws SAXException
Описание скопировано из интерфейса: LexicalHandler
Сообщает об окончании сущности.
Определено в:
endEntity в интерфейсе LexicalHandler
Параметры:
name - Имя сущности, которая завершается.
Исключения:
SAXException - Приложение может вызвать исключение.
См. также:
  • LexicalHandler.startEntity(java.lang.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(java.lang.String, java.lang.String)
  • DTDHandler.unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)

internalEntityDecl

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

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

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

getExternalSubset

public InputSource getExternalSubset(String name, String baseURI) throws SAXException, IOException
Сообщает анализатору, что если во входном тексте не была объявлена внешняя подгруппа, то она не должна быть использована.
Определено:
getExternalSubset в интерфейсе EntityResolver2
Параметры:
name - Идентифицирует корневой элемент документа. Это имя взято из объявления DOCTYPE (если оно доступно) или из фактического корневого элемента.
baseURI - Базовый URI документа, служащий дополнительным указанием для выбора внешней подгруппы. Это всегда абсолютный URI, если он не равен null, потому что XMLReader получил InputSource без него.
Возвращает:
Объект InputSource, описывающий новую внешнюю подгруппу, которая должна использоваться анализатором, или null, чтобы указать, что внешняя подгруппа не предоставляется.
Исключения:
SAXException - Любое исключение SAX, возможно, обертывающее другое исключение.
IOException - Вероятно, указывает на ошибку создания нового потока ввода или читателя, или незаконный 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]" для внешней подгруппы, либо имя, начинающееся с '%', для указания сущности параметра, либо имя общей сущности. Это никогда не равно null, когда вызывается SAX2-парсером.
publicId - Общедоступный идентификатор внешней сущности, на которую делается ссылка (нормализованный в соответствии с требованиями спецификации XML), или null, если он не был предоставлен.
baseURI - URI, относительно которого интерпретируются относительные systemID. Это всегда абсолютный URI, если он не равен null (вероятно, потому, что XMLReader получил InputSource без него). Этот URI определен спецификацией XML как связанный с "<", начинающим соответствующее объявление.
systemId - Идентификатор системы внешней сущности, на которую делается ссылка; относительный или абсолютный URI. Это никогда не равно null, когда вызывается SAX2-парсером; только объявленные сущности и любая внешняя подгруппа разрешаются такими парсерами.
Возвращает:
Объект InputSource, описывающий новый источник ввода, который должен использоваться анализатором. Возвращение null указывает анализатору разрешить system ID относительно base URI и открыть подключение к результирующему URI.
Исключения:
SAXException - Любое исключение SAX, возможно, обертывающее другое исключение.
IOException - Вероятно, указывает на ошибку создания нового потока ввода или читателя, или незаконный URL.

resolveEntity

public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException
Вызывает EntityResolver2.resolveEntity() с null именем сущности и base URI. Вам нужно переопределить только этот метод, чтобы использовать этот класс.
Определено:
resolveEntity в интерфейсе EntityResolver
Переопределяет:
resolveEntity в классе DefaultHandler
Параметры:
publicId - Общедоступный идентификатор, или null, если он недоступен.
systemId - Идентификатор системы, предоставленный в документе XML.
Возвращает:
Новый источник ввода или null, чтобы потребовать стандартное поведение.
Исключения:
SAXException - Любое исключение SAX, возможно, обертывающее другое исключение.
IOException - Если возникла ошибка при настройке нового источника ввода.
См. также:
  • EntityResolver.resolveEntity(java.lang.String, java.lang.String)

© 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://download.java.net/java/early_access/jdk24/docs/api/java.xml/org/xml/sax/ext/DefaultHandler2.html

Spec-Zone.ru

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