Spec-Zone.ru › OpenJDK 8

Интерфейс XMLReader

Все известные подынтерфейсы:
XMLFilter
Все известные реализующие классы:
ParserAdapter, XMLFilterImpl

public interface XMLReader

Интерфейс для чтения XML-документа с использованием обратных вызовов.

Этот модуль, как исходный код, так и документация, находится в общественном достоянии и поставляется БЕЗ ГАРАНТИЙ. См. http://www.saxproject.org для получения дополнительной информации.

Примечание: несмотря на свое название, этот интерфейс не расширяет стандартный Java Reader интерфейс, поскольку чтение XML — это принципиально другая операция, чем чтение данных символов.

XMLReader — это интерфейс, который должен реализовывать драйвер SAX2 XML-парсера. Этот интерфейс позволяет приложению устанавливать и запрашивать функции и свойства в парсере, регистрировать обработчики событий для обработки документов и инициировать анализ документа.

Предполагается, что все интерфейсы SAX являются синхронными: методы parse не должны возвращаться до завершения анализа, и средства чтения должны ждать возврата обратного вызова обработчика событий, прежде чем сообщать о следующем событии.

Этот интерфейс заменяет (теперь устаревший) интерфейс SAX 1.0 Parser. Интерфейс XMLReader содержит два важных улучшения по сравнению со старым интерфейсом Parser (а также некоторые незначительные):

  1. он добавляет стандартный способ запроса и установки функций и свойств; и
  2. он добавляет поддержку пространств имен, которая необходима для многих более высокоуровневых стандартов XML.

Существуют адаптеры для преобразования SAX1 Parser в SAX2 XMLReader и наоборот.

С версии:
SAX 2.0
См. также:
XMLFilter, ParserAdapter, XMLReaderAdapter

Краткое описание методов

Модификатор и тип Метод и описание
ContentHandler getContentHandler()

Возвращает текущий обработчик содержимого.

DTDHandler getDTDHandler()

Возвращает текущий обработчик DTD.

EntityResolver getEntityResolver()

Возвращает текущий решатель сущностей.

ErrorHandler getErrorHandler()

Возвращает текущий обработчик ошибок.

boolean getFeature(String name)

Ищет значение флага функции.

Object getProperty(String name)

Ищет значение свойства.

void parse(InputSource input)

Разбирает XML-документ.

void parse(String systemId)

Разбирает XML-документ из идентификатора системы (URI).

void setContentHandler(ContentHandler handler)

Позволяет приложению зарегистрировать обработчик событий содержимого.

void setDTDHandler(DTDHandler handler)

Позволяет приложению зарегистрировать обработчик событий DTD.

void setEntityResolver(EntityResolver resolver)

Позволяет приложению зарегистрировать решатель сущностей.

void setErrorHandler(ErrorHandler handler)

Позволяет приложению зарегистрировать обработчик событий ошибок.

void setFeature(String name, boolean value)

Устанавливает значение флага функции.

void setProperty(String name, Object value)

Устанавливает значение свойства.

Методы

getFeature

boolean getFeature(String name)
            throws SAXNotRecognizedException,
                   SAXNotSupportedException

Ищет значение флага функциональности.

Имя функциональности — это любой полностью определённый URI. XMLReader может распознавать имя функциональности, но временно быть не в состоянии вернуть его значение. Некоторые значения функциональности могут быть доступны только в определённых контекстах, таких как до, во время или после анализа. Кроме того, некоторые значения функциональности могут быть недоступны программным способом. (В случае адаптера для SAX1 Parser, нет независимого от реализации способа показать, выполняет ли базовый анализатор валидацию, разворачивает ли внешние сущности и так далее.)

Все XMLReaders обязаны распознавать имена функциональности http://xml.org/sax/features/namespaces и http://xml.org/sax/features/namespace-prefixes.

Типичное использование выглядит примерно так:

XMLReader r = new MySAXDriver();

                         // try to activate validation
 try {
   r.setFeature("http://xml.org/sax/features/validation", true);
 } catch (SAXException e) {
   System.err.println("Cannot activate validation.");
 }

                         // register event handlers
 r.setContentHandler(new MyContentHandler());
 r.setErrorHandler(new MyErrorHandler());

                         // parse the first document
 try {
   r.parse("http://www.foo.com/mydoc.xml");
 } catch (IOException e) {
   System.err.println("I/O exception reading XML document");
 } catch (SAXException e) {
   System.err.println("XML exception reading document.");
 }

Разработчики могут свободно (и им это рекомендуется) создавать свои собственные функциональности, используя имена, основанные на своих собственных URI.

Параметры:
name - Имя функциональности, которое является полностью определённым URI.
Возвращает:
Текущее значение функциональности (true или false).
Исключения:
SAXNotRecognizedException - Если значение функциональности не может быть назначено или получено.
SAXNotSupportedException - Когда XMLReader распознаёт имя функциональности, но не может определить его значение в данный момент.
См. также:
setFeature(java.lang.String, boolean)

setFeature

void setFeature(String name,
                boolean value)
         throws SAXNotRecognizedException,
                SAXNotSupportedException

Устанавливает значение флага функциональности.

Имя функциональности — это любой полностью определённый URI. XMLReader может предоставлять значение функциональности, но быть не в состоянии изменить текущее значение. Некоторые значения функциональности могут быть неизменяемыми или изменяемыми только в определённых контекстах, таких как до, во время или после анализа.

Все XMLReaders обязаны поддерживать установку http://xml.org/sax/features/namespaces в true и http://xml.org/sax/features/namespace-prefixes в false.

Параметры:
name - Имя функциональности, которое является полностью определённым URI.
value - Запрашиваемое значение функциональности (true или false).
Исключения:
SAXNotRecognizedException - Если значение функциональности не может быть назначено или получено.
SAXNotSupportedException - Когда XMLReader распознаёт имя функциональности, но не может установить запрашиваемое значение.
См. также:
getFeature(java.lang.String)

getProperty

Object getProperty(String name)
            throws SAXNotRecognizedException,
                   SAXNotSupportedException

Ищет значение свойства.

Имя свойства — это любой полностью определённый URI. XMLReader может распознавать имя свойства, но временно быть не в состоянии вернуть его значение. Некоторые значения свойств могут быть доступны только в определённых контекстах, таких как до, во время или после анализа.

XMLReaders не обязаны распознавать какие-либо конкретные имена свойств, хотя начальный основной набор документирован для SAX2.

Разработчики могут свободно (и им это рекомендуется) создавать свои собственные свойства, используя имена, основанные на своих собственных URI.

Параметры:
name - Имя свойства, которое является полностью определённым URI.
Возвращает:
Текущее значение свойства.
Исключения:
SAXNotRecognizedException - Если значение свойства не может быть назначено или получено.
SAXNotSupportedException - Когда XMLReader распознаёт имя свойства, но не может определить его значение в данный момент.
См. также:
setProperty(java.lang.String, java.lang.Object)

setProperty

void setProperty(String name,
                 Object value)
          throws SAXNotRecognizedException,
                 SAXNotSupportedException

Устанавливает значение свойства.

Имя свойства — это любой полностью определённый URI. XMLReader может распознавать имя свойства, но быть не в состоянии изменить текущее значение. Некоторые значения свойств могут быть неизменяемыми или изменяемыми только в определённых контекстах, таких как до, во время или после анализа.

XMLReaders не обязаны распознавать установку каких-либо конкретных имён свойств, хотя основной набор определён SAX2.

Этот метод также является стандартным механизмом для установки расширенных обработчиков.

Параметры:
name - Имя свойства, которое является полностью определённым URI.
value - Запрашиваемое значение для свойства.
Исключения:
SAXNotRecognizedException - Если значение свойства не может быть назначено или получено.
SAXNotSupportedException - Когда XMLReader распознаёт имя свойства, но не может установить запрашиваемое значение.

setEntityResolver

void setEntityResolver(EntityResolver resolver)

Позволяет приложению зарегистрировать решатель сущностей.

Если приложение не регистрирует решатель сущностей, XMLReader будет выполнять собственное разрешение по умолчанию.

Приложения могут зарегистрировать новый или другой решатель в середине анализа, и SAX-анализатор должен начать использовать новый решатель немедленно.

Параметры:
resolver - Решатель сущностей.
См. также:
getEntityResolver()

getEntityResolver

EntityResolver getEntityResolver()

Возвращает текущий решатель сущностей.

Возвращает:
Текущий решатель сущностей или null, если ни один не был зарегистрирован.
См. также:
setEntityResolver(org.xml.sax.EntityResolver)

setDTDHandler

void setDTDHandler(DTDHandler handler)

Позволяет приложению зарегистрировать обработчик событий DTD.

Если приложение не регистрирует обработчик DTD, все события DTD, сообщённые SAX-анализатором, будут молча игнорироваться.

Приложения могут зарегистрировать новый или другой обработчик в середине анализа, и SAX-анализатор должен начать использовать новый обработчик немедленно.

Параметры:
handler - Обработчик DTD.
См. также:
getDTDHandler()

getDTDHandler

DTDHandler getDTDHandler()

Возвращает текущий обработчик DTD.

Возвращает:
Текущий обработчик DTD или null, если ни один не был зарегистрирован.
См. также:
setDTDHandler(org.xml.sax.DTDHandler)

setContentHandler

void setContentHandler(ContentHandler handler)

Позволяет приложению зарегистрировать обработчик событий контента.

Если приложение не регистрирует обработчик контента, все события контента, сообщённые SAX-анализатором, будут молча игнорироваться.

Приложения могут зарегистрировать новый или другой обработчик в середине анализа, и SAX-анализатор должен начать использовать новый обработчик немедленно.

Параметры:
handler - Обработчик контента.
См. также:
getContentHandler()

getContentHandler

ContentHandler getContentHandler()

Возвращает текущий обработчик контента.

Возвращает:
Текущий обработчик контента или null, если ни один не был зарегистрирован.
См. также:
setContentHandler(org.xml.sax.ContentHandler)

setErrorHandler

void setErrorHandler(ErrorHandler handler)

Позволяет приложению зарегистрировать обработчик событий ошибок.

Если приложение не регистрирует обработчик ошибок, все события ошибок, сообщённые SAX-анализатором, будут молча игнорироваться; однако, нормальная обработка может не продолжиться. Настоятельно рекомендуется, чтобы все SAX-приложения реализовали обработчик ошибок, чтобы избежать непредвиденных ошибок.

Приложения могут зарегистрировать новый или другой обработчик в середине анализа, и SAX-анализатор должен начать использовать новый обработчик немедленно.

Параметры:
handler - Обработчик ошибок.
См. также:
getErrorHandler()

getErrorHandler

ErrorHandler getErrorHandler()

Возвращает текущий обработчик ошибок.

Возвращает:
Текущий обработчик ошибок или null, если ни один не был зарегистрирован.
См. также:
setErrorHandler(org.xml.sax.ErrorHandler)

parse

void parse(InputSource input)
    throws IOException,
           SAXException

Разбирает XML-документ.

Приложение может использовать этот метод, чтобы указать XML-читателю начать разбор XML-документа из любого допустимого источника ввода (поток символов, байтовый поток или URI).

Приложения не могут вызывать этот метод во время анализа (вместо этого они должны создавать новый XMLReader для каждого вложенного XML-документа). После завершения анализа приложение может повторно использовать один и тот же объект XMLReader, возможно, с другим источником ввода. Конфигурация объекта XMLReader (например, привязки обработчиков и значения, установленные для флагов функциональности и свойств), не изменяется по завершении анализа, если только определение этого аспекта конфигурации явно не указывает другое поведение. (Например, флаги функциональности или свойства, показывающие характеристики анализируемого документа.)

Во время анализа XMLReader будет предоставлять информацию о XML-документе через зарегистрированные обработчики событий.

Этот метод является синхронным: он не вернётся, пока не закончится разбор. Если клиентское приложение хочет преждевременно завершить разбор, оно должно выбросить исключение.

Параметры:
input - Источник ввода для верхнего уровня XML-документа.
Исключения:
SAXException - Любое исключение SAX, возможно, оборачивающее другое исключение.
IOException - Исключение ввода-вывода от анализатора, возможно, из байтового потока или потока символов, предоставленного приложением.
См. также:
InputSource, parse(java.lang.String), setEntityResolver(org.xml.sax.EntityResolver), setDTDHandler(org.xml.sax.DTDHandler), setContentHandler(org.xml.sax.ContentHandler), setErrorHandler(org.xml.sax.ErrorHandler)

parse

void parse(String systemId)
    throws IOException,
           SAXException

Разбирает XML-документ из системного идентификатора (URI).

Этот метод является сокращением для распространённого случая чтения документа из системного идентификатора. Он является точным эквивалентом следующего:

parse(new InputSource(systemId));

Если системный идентификатор является URL, он должен быть полностью разрешён приложением, прежде чем он будет передан анализатору.

Параметры:
systemId - Идентификатор системы (URI).
Исключения:
SAXException - Любое исключение SAX, возможно, оборачивающее другое исключение.
IOException - Исключение ввода-вывода от анализатора, возможно, из потока байтов или потока символов, предоставленного приложением.
См. также:
parse(org.xml.sax.InputSource)

© 1993, 2020, 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.

Spec-Zone.ru

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