public interface LexicalHandler
Этот модуль, и исходный код и документация, находится в Общедоступном Домене, и прибывает без ГАРАНТИИ. См. для дополнительной информации.
Это - дополнительный обработчик расширения для SAX2, чтобы предоставить лексическую информацию о XML-документе, таком как комментарии и границы раздела CDATA. Средства чтения XML не обязаны распознавать этот обработчик, и это не часть дистрибутивов SAX2 только для ядра.
События в лексическом обработчике применяются ко всему документу, не только к элементу документа, и все лексические события обработчика должны появиться между startDocument обработчика содержимого и endDocument событиями.
Чтобы установить LexicalHandler для средства чтения XML, используйте setProperty метод с именем свойства http://xml.org/sax/properties/lexical-handler и объект, реализовывая этот интерфейс (или нуль) как значение. Если читатель не сообщит о лексических событиях, то это бросит a SAXNotRecognizedException когда Вы пытаетесь зарегистрировать обработчик.
| Модификатор и Тип | Метод и Описание |
|---|---|
void |
comment(char[] ch, int start, int length)
Сообщите о XML-комментарии где угодно в документе.
|
void |
endCDATA()
Сообщите о конце раздела CDATA.
|
void |
endDTD()
Сообщите о конце объявлений DTD.
|
void |
endEntity(String name)
Сообщите о конце объекта.
|
void |
startCDATA()
Сообщите о запуске раздела CDATA.
|
void |
startDTD(String name, String publicId, String systemId)
Сообщите о запуске объявлений DTD, если любой.
|
void |
startEntity(String name)
Сообщите о начале некоторых внутренних и внешних объектов XML.
|
void startDTD(String name, String publicId, String systemId) throws SAXException
Этот метод предназначается, чтобы сообщить о начале объявления DOCTYPE; если у документа не будет никакого объявления DOCTYPE, то этот метод не будет вызван.
Все объявления, о которых сообщают через DTDHandler или DeclHandler события должны появиться между startDTD и endDTD события. Объявления, как предполагается, принадлежат внутреннему подмножеству DTD, если они не появляются между startEntity и endEntity события. О комментариях и инструкциях обработки от DTD нужно также сообщить между startDTD и endDTD событиями в их первоначальном заказе (логического) возникновения; они не обязаны появляться в их корректных расположениях относительно событий DTDHANDLER ИЛИ DECLHANDLER, как бы то ни было.
Отметьте, что start/endDTD события появятся в пределах start/endDocument событий от ContentHandler и перед первым startElement событие.
name - Имя типа документа.publicId - Объявленный общедоступный идентификатор для внешнего подмножества DTD, или нуль, если ни один не был объявлен.systemId - Объявленный системный идентификатор для внешнего подмножества DTD, или нуль, если ни один не был объявлен. (Отметьте, что это не разрешается против URI основы документа.)SAXException - Приложение может повысить исключение.endDTD(), startEntity(java.lang.String)void endDTD()
throws SAXException
Этот метод предназначается, чтобы сообщить о конце объявления DOCTYPE; если у документа не будет никакого объявления DOCTYPE, то этот метод не будет вызван.
SAXException - Приложение может повысить исключение.startDTD(java.lang.String, java.lang.String, java.lang.String)void startEntity(String name) throws SAXException
Создание отчетов объектов параметра (включая внешнее подмножество DTD) является дополнительными, и драйверами SAX2, которые сообщают, что события LexicalHandler, возможно, не реализуют это; можно использовать http://xml.org/sax/features/lexical-handler/parameter-entities функция, чтобы запросить или управлять созданием отчетов объектов параметра.
Об общих объектах сообщают с их регулярными именами, объектам параметра предварительно ожидали '%' к их именам, и у внешнего подмножества DTD есть имя псевдообъекта" [дата]".
Когда драйвер SAX2 обеспечивает эти события, все другие события должны быть должным образом вложены в пределах, запускают/заканчиваются события объекта. Нет никакого дополнительного требования этого события от DeclHandler или DTDHandler должным образом упорядочить.
Отметьте, что о пропущенных объектах сообщат через skippedEntity событие, которое является частью интерфейса ContentHandler.
Из-за модели событий потоковой передачи, которую использует SAX, о некоторых границах объекта нельзя сообщить ни при каких обстоятельствах:
Они будут тихо расширены без индикации относительно того, где исходные границы объекта были.
Отметьте также, что о границах символьных ссылок (которые не являются действительно объектами так или иначе) не сообщают.
Все start/endEntity события должны быть должным образом вложены.
name - Имя объекта. Если это будет объект параметра, то имя начнется 'с %', и если это будет внешнее подмножество DTD, то это будет" [дата]".SAXException - Приложение может повысить исключение.endEntity(java.lang.String), DeclHandler.internalEntityDecl(java.lang.String, java.lang.String), DeclHandler.externalEntityDecl(java.lang.String, java.lang.String, java.lang.String)void endEntity(String name) throws SAXException
name - Имя объекта, который заканчивается.SAXException - Приложение может повысить исключение.startEntity(java.lang.String)void startCDATA()
throws SAXException
О содержании раздела CDATA сообщат через постоянного клиента characters событие; это событие предназначается только, чтобы сообщить о границе.
SAXException - Приложение может повысить исключение.endCDATA()void endCDATA()
throws SAXException
SAXException - Приложение может повысить исключение.startCDATA()void comment(char[] ch,
int start,
int length)
throws SAXException
Этот обратный вызов будет использоваться для комментариев внутри или снаружи элемента документа, включая комментарии во внешнем подмножестве DTD (если считано). Комментарии в DTD должны быть должным образом вложены внутри start/endDTD и start/endEntity события (если использующийся).
ch - Массив, содержащий символы в комментарии.start - Стартовая позиция в массиве.length - Число символов, чтобы использовать от массива.SAXException - Приложение может повысить исключение.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92