public class DefaultHandler2 extends DefaultHandler implements LexicalHandler, DeclHandler, EntityResolver2
LexicalHandler
, DeclHandler
, и EntityResolver2
расширения. За исключением переопределения оригинала SAX1 resolveEntity()
метод добавленные методы обработчика только возвращается. Подклассификаторы могут переопределить все на основе метода методом. Этот модуль, и исходный код и документация, находится в Общедоступном Домене, и прибывает без ГАРАНТИИ.
Отметьте: этот class мог бы все же узнать, что ContentHandler.setDocumentLocator () вызов можно было бы передать a Locator2
объект, и что ContentHandler.startElement () вызов можно было бы передать a Attributes2
объект.
Конструктор и Описание |
---|
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.
|
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
public DefaultHandler2()
public void startCDATA() throws SAXException
LexicalHandler
О содержании раздела CDATA сообщат через постоянного клиента characters
событие; это событие предназначается только, чтобы сообщить о границе.
startCDATA
в интерфейсе LexicalHandler
SAXException
- Приложение может повысить исключение.LexicalHandler.endCDATA()
public void endCDATA() throws SAXException
LexicalHandler
endCDATA
в интерфейсе LexicalHandler
SAXException
- Приложение может повысить исключение.LexicalHandler.startCDATA()
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, или нуль, если ни один не был объявлен.systemId
- Объявленный системный идентификатор для внешнего подмножества DTD, или нуль, если ни один не был объявлен. (Отметьте, что это не разрешается против URI основы документа.)SAXException
- Приложение может повысить исключение.LexicalHandler.endDTD()
, LexicalHandler.startEntity(java.lang.String)
public void endDTD() throws SAXException
LexicalHandler
Этот метод предназначается, чтобы сообщить о конце объявления DOCTYPE; если у документа не будет никакого объявления DOCTYPE, то этот метод не будет вызван.
endDTD
в интерфейсе LexicalHandler
SAXException
- Приложение может повысить исключение.LexicalHandler.startDTD(java.lang.String, java.lang.String, java.lang.String)
public void startEntity(String name) throws SAXException
LexicalHandler
Создание отчетов объектов параметра (включая внешнее подмножество DTD) является дополнительными, и драйверами SAX2, которые сообщают, что события LexicalHandler, возможно, не реализуют это; можно использовать http://xml.org/sax/features/lexical-handler/parameter-entities
функция, чтобы запросить или управлять созданием отчетов объектов параметра.
Об общих объектах сообщают с их регулярными именами, объектам параметра предварительно ожидали '%' к их именам, и у внешнего подмножества DTD есть имя псевдообъекта" [дата]".
Когда драйвер SAX2 обеспечивает эти события, все другие события должны быть должным образом вложены в пределах, запускают/заканчиваются события объекта. Нет никакого дополнительного требования этого события от DeclHandler
или DTDHandler
должным образом упорядочить.
Отметьте, что о пропущенных объектах сообщат через skippedEntity
событие, которое является частью интерфейса ContentHandler.
Из-за модели событий потоковой передачи, которую использует SAX, о некоторых границах объекта нельзя сообщить ни при каких обстоятельствах:
Они будут тихо расширены без индикации относительно того, где исходные границы объекта были.
Отметьте также, что о границах символьных ссылок (которые не являются действительно объектами так или иначе) не сообщают.
Все start/endEntity события должны быть должным образом вложены.
startEntity
в интерфейсе LexicalHandler
name
- Имя объекта. Если это будет объект параметра, то имя начнется 'с %', и если это будет внешнее подмножество 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)
public void endEntity(String name) throws SAXException
LexicalHandler
endEntity
в интерфейсе LexicalHandler
name
- Имя объекта, который заканчивается.SAXException
- Приложение может повысить исключение.LexicalHandler.startEntity(java.lang.String)
public void comment(char[] ch, int start, int length) throws SAXException
LexicalHandler
Этот обратный вызов будет использоваться для комментариев внутри или снаружи элемента документа, включая комментарии во внешнем подмножестве DTD (если считано). Комментарии в DTD должны быть должным образом вложены внутри start/endDTD и start/endEntity события (если использующийся).
comment
в интерфейсе LexicalHandler
ch
- Массив, содержащий символы в комментарии.start
- Стартовая позиция в массиве.length
- Число символов, чтобы использовать от массива.SAXException
- Приложение может повысить исключение.public void attributeDecl(String eName, String aName, String type, String mode, String value) throws SAXException
DeclHandler
Только об эффективном (первом) объявлении для атрибута сообщат. Тип будет одной из строк "CDATA", "ID", "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", "ОБЪЕКТ", "ОБЪЕКТЫ", заключенная в скобки маркерная группа с разделителем "|" и весь пробел, удаленный, или слово "НОТАЦИЯ", сопровождаемая пространством, сопровождаемым заключенной в скобки маркерной группой со всем удаленным пробелом.
Значение будет значением как сообщающийся приложениям, соответственно нормализованным и с объектом и символьными расширенными ссылками.
attributeDecl
в интерфейсе DeclHandler
eName
- Имя связанного элемента.aName
- Имя атрибута.type
- Строка, представляющая тип атрибута.mode
- Строка, представляющая атрибут, принимающий значение по умолчанию режим ("#IMPLIED", "#REQUIRED", или "#FIXED") или нуль, если ни один из них не применяется.value
- Строка, представляющая значение по умолчанию атрибута, или нуль, если нет ни одного.SAXException
- Приложение может повысить исключение.public void elementDecl(String name, String model) throws SAXException
DeclHandler
Модель контента будет состоять из "ПУСТОЙ" строки, строка "ЛЮБОЙ", или заключенная в скобки группа, дополнительно сопровождаемая индикатором возникновения. Модель будет нормализована так, чтобы все объекты параметра были полностью разрешены, и весь пробел удаляется, и будет включать круглые скобки включения. Другая нормализация (такая как раскрытие избыточных скобок или упрощение индикаторов возникновения) на усмотрение синтаксического анализатора.
elementDecl
в интерфейсе DeclHandler
name
- Имя типа элемента.model
- Модель контента как нормализованная строка.SAXException
- Приложение может повысить исключение.public void externalEntityDecl(String name, String publicId, String systemId) throws SAXException
DeclHandler
Только об эффективном (первом) объявлении для каждого объекта сообщат.
Если системным идентификатором является URL, синтаксический анализатор должен разрешить это полностью прежде, чем передать его к приложению.
externalEntityDecl
в интерфейсе DeclHandler
name
- Имя объекта. Если это будет объект параметра, то имя начнется 'с %'.publicId
- Общедоступный идентификатор объекта, или нуль, если ни один не был дан.systemId
- Системный идентификатор объекта.SAXException
- Приложение может повысить исключение.DeclHandler.internalEntityDecl(java.lang.String, java.lang.String)
, DTDHandler.unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
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)
public InputSource getExternalSubset(String name, String baseURI) throws SAXException, IOException
getExternalSubset
в интерфейсе EntityResolver2
name
- Идентифицирует корневой элемент документа. Это название происходит от объявления DOCTYPE (где доступный) или от фактического корневого элемента.baseURI
- Основной URI документа, служа дополнительной подсказкой для того, чтобы выбрать внешнее подмножество. Это всегда - абсолютный URI, если это не нуль, потому что XMLReader дали InputSource без одного.SAXException
- Любое исключение SAX, возможно обертывая другое исключение.IOException
- Вероятно, указывая на отказ создать новый InputStream или Читателя, или недопустимый URL.public InputSource resolveEntity(String name, String publicId, String baseURI, String systemId) throws SAXException, IOException
DefaultHandler.resolveEntity()
, метод переопределяется, чтобы вызвать этого, этот метод может иногда вызываться с нулевым именем и baseURI, и с systemId, уже абсолютизируемым.resolveEntity
в интерфейсе EntityResolver2
name
- Идентифицирует внешний разрешаемый объект. Или" [дата]" для внешнего подмножества, или имя, начинающее с "%" указать на объект параметра, или иначе имя общего объекта. Это никогда не нуль когда вызвано синтаксическим анализатором SAX2.publicId
- Общедоступный идентификатор внешнего ссылаемого объекта (нормализованный как требуется спецификацией XML), или нуль, если ни один не был предоставлен.baseURI
- URI, относительно которого интерпретируются относительные systemIDs. Это всегда - абсолютный URI, если это не нуль (вероятно, потому что XMLReader дали InputSource без одного). Этот URI определяется спецификацией XML, чтобы быть тем, связанным с" <" запуск соответствующего объявления.systemId
- Системный идентификатор внешнего ссылаемого объекта; или относительный или абсолютный URI. Это никогда не нуль когда вызвано синтаксическим анализатором SAX2; только объявленные объекты, и любое внешнее подмножество, разрешаются такими синтаксическими анализаторами.SAXException
- Любое исключение SAX, возможно обертывая другое исключение.IOException
- Вероятно, указывая на отказ создать новый InputStream или Читателя, или недопустимый URL.public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException
EntityResolver2.resolveEntity()
с нулевым объектом называют и основной URI. Вы только должны переопределить тот метод, чтобы использовать этот class.resolveEntity
в интерфейсе EntityResolver
resolveEntity
в class DefaultHandler
publicId
- Общедоступный идентификатор, или нуль, если ни один не доступен.systemId
- Системный идентификатор обеспечил в XML-документе.SAXException
- Любое исключение SAX, возможно обертывая другое исключение.IOException
- Специфичное для Java исключение IO, возможно результат создания нового InputStream или Читателя для InputSource.EntityResolver.resolveEntity(java.lang.String, java.lang.String)
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92