Класс 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() с именем сущности null и базовым URI. |
InputSource |
resolveEntity |
Сообщает парсеру разрешить systemId относительно baseURI и считать текст сущности из полученного абсолютного URI. |
void |
startCDATA() |
Сообщает о начале секции CDATA. |
void |
startDTD |
Сообщает о начале деклараций DTD, если таковые имеются. |
void |
startEntity |
Сообщает о начале некоторых внутренних и внешних 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 будет сообщено через стандартное событие 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 без него. - Возвращает:
- Объект InputSource, описывающий новую внешнюю подгруппу, которая должна использоваться анализатором, или null, чтобы указать, что внешняя подгруппа не предоставляется.
- Исключения:
-
SAXException- Любое исключение SAX, возможно, обертывающее другое исключение. -
IOException- Вероятно, указывает на ошибку создания нового потока ввода или читателя, или незаконный 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]" для внешней подгруппы, либо имя, начинающееся с '%', для указания сущности параметра, либо имя общей сущности. Это никогда не равно 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- Если возникла ошибка при настройке нового источника ввода. - См. также:
© 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