Обработчик расширения SAX2 для лексических событий.
Этот модуль, и исходный код и документация, находится в Общедоступном Домене, и прибывает без ГАРАНТИИ. См. http://www.saxproject.org для дополнительной информации.
Это - дополнительный обработчик расширения для SAX2, чтобы предоставить лексическую информацию о XML-документе, таком как комментарии и границы раздела CDATA. Средства чтения XML не обязаны распознавать этот обработчик, и это не часть дистрибутивов SAX2 только для ядра.
События в лексическом обработчике применяются ко всему документу, не только к элементу документа, и все лексические события обработчика должны появиться между startDocument обработчика содержимого и endDocument событиями.
Чтобы установить LexicalHandler для средства чтения XML, используйте setProperty метод с именем свойства http://xml.org/sax/properties/lexical-handler и объект, реализовывая этот интерфейс (или нуль) как значение. Если читатель не сообщит о лексических событиях, то это бросит a SAXNotRecognizedException когда Вы пытаетесь зарегистрировать обработчик.
Этот метод предназначается, чтобы сообщить о начале объявления 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 - Приложение может повысить исключение.
Этот метод предназначается, чтобы сообщить о конце объявления DOCTYPE; если у документа не будет никакого объявления DOCTYPE, то этот метод не будет вызван.
Броски:
SAXException - Приложение может повысить исключение.
Сообщите о начале некоторых внутренних и внешних объектов XML.
Создание отчетов объектов параметра (включая внешнее подмножество DTD) является дополнительными, и драйверами SAX2, которые сообщают, что события LexicalHandler, возможно, не реализуют это; можно использовать http://xml.org/sax/features/lexical-handler/parameter-entities функция, чтобы запросить или управлять созданием отчетов объектов параметра.
Об общих объектах сообщают с их регулярными именами, объектам параметра предварительно ожидали '%' к их именам, и у внешнего подмножества DTD есть имя псевдообъекта" [дата]".
Когда драйвер SAX2 обеспечивает эти события, все другие события должны быть должным образом вложены в пределах, запускают/заканчиваются события объекта. Нет никакого дополнительного требования этого события от DeclHandler или DTDHandler должным образом упорядочить.
Отметьте, что о пропущенных объектах сообщат через skippedEntity событие, которое является частью интерфейса ContentHandler.
Из-за модели событий потоковой передачи, которую использует SAX, о некоторых границах объекта нельзя сообщить ни при каких обстоятельствах:
общие объекты в пределах значений атрибута
объекты параметра в пределах объявлений
Они будут тихо расширены без индикации относительно того, где исходные границы объекта были.
Отметьте также, что о границах символьных ссылок (которые не являются действительно объектами так или иначе) не сообщают.
Все start/endEntity события должны быть должным образом вложены.
Параметры:
name - Имя объекта. Если это будет объект параметра, то имя начнется 'с %', и если это будет внешнее подмножество DTD, то это будет" [дата]".
Броски:
SAXException - Приложение может повысить исключение.
void comment(char[] ch,
int start,
int length)
throws SAXException
Сообщите о XML-комментарии где угодно в документе.
Этот обратный вызов будет использоваться для комментариев внутри или снаружи элемента документа, включая комментарии во внешнем подмножестве DTD (если считано). Комментарии в DTD должны быть должным образом вложены внутри start/endDTD и start/endEntity события (если использующийся).
Параметры:
ch - Массив, содержащий символы в комментарии.
start - Стартовая позиция в массиве.
length - Число символов, чтобы использовать от массива.
Броски:
SAXException - Приложение может повысить исключение.