Класс SAXParser
public abstract class SAXParser extends Object
XMLReader. В JAXP 1.0 этот класс оборачивал интерфейс Parser, однако этот интерфейс был заменён интерфейсом XMLReader. Для удобства перехода этот класс продолжает поддерживать то же имя и интерфейс, а также новые методы. Экземпляр этого класса можно получить с помощью метода SAXParserFactory.newSAXParser(). После получения экземпляра этого класса XML можно парсить из различных источников ввода. Эти источники ввода — это InputStream, Files, URL и SAX InputSources.Этот статический метод создаёт новый экземпляр фабрики, основанный на настройке системной переменной, или использует платформенные значения по умолчанию, если переменная не определена.
Системная переменная, которая контролирует, какую реализацию фабрики создать, имеет имя "javax.xml.parsers.SAXParserFactory". Эта переменная задаёт имя класса, который является конкретным подклассом этого абстрактного класса. Если переменная не определена, используется значение по умолчанию платформы.
HandlerBase или DefaultHandler. Реализаторы этого класса, которые оборачивают основную реализацию, могут рассмотреть возможность использования класса ParserAdapter для первоначальной адаптации своей реализации SAX1 для работы с этим пересмотренным классом.
- Since:
- 1.4
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Защищённый конструктор для предотвращения создания экземпляров. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract Parser |
getParser() |
Возвращает SAX-парсер, который инкапсулирован реализацией этого класса. |
abstract Object |
getProperty |
Возвращает запрашиваемое свойство в основной реализации XMLReader. |
Schema |
getSchema() |
Получает ссылку на Schema, используемый процессором XML. |
abstract XMLReader |
getXMLReader() |
Возвращает XMLReader, который инкапсулирован реализацией этого класса. |
abstract boolean |
isNamespaceAware() |
Указывает, настроен ли этот парсер для понимания пространств имён. |
abstract boolean |
isValidating() |
Указывает, настроен ли этот парсер для проверки XML-документов. |
boolean |
isXIncludeAware() |
Получение режима обработки XInclude для этого парсера. |
void |
parse |
Парсит содержимое файла, указанного как XML, используя указанный HandlerBase. |
void |
parse |
Парсит содержимое файла, указанного как XML, используя указанный DefaultHandler. |
void |
parse |
Парсит содержимое данного InputStream в качестве XML, используя указанный HandlerBase. |
| ... | ... | ... |
void |
reset() |
Сбрасывает этот SAXParser до его первоначальной конфигурации. |
abstract void |
setProperty |
Устанавливает конкретное свойство в основной реализации XMLReader. |
Подробное описание конструкторов
SAXParser
protected SAXParser()
Защищённый конструктор, предотвращающий создание экземпляров. Используйте SAXParserFactory.newSAXParser().
Подробное описание методов
reset
public void reset()
Сбросить текущий SAXParser до его исходной конфигурации.
SAXParser сбрасывается в такое же состояние, как при создании с помощью SAXParserFactory.newSAXParser(). reset() разработан для повторного использования существующих SAXParser, тем самым экономя ресурсы, связанные с созданием новых SAXParser.
Сброшенный SAXParser не гарантирует, что он будет иметь такое же значение Schema Object, например, Object.equals(Object obj). Гарантируется функционально эквивалентность Schema.
- Исключения:
-
UnsupportedOperationException- Когда реализации не переопределяют этот метод - С тех пор:
- 1.5
parse
public void parse(InputStream is, HandlerBase hb) throws SAXException, IOException
Обработать содержимое данного экземпляра InputStream как XML с использованием указанного HandlerBase. Рекомендуется использовать версию DefaultHandler данного метода, так как класс HandlerBase устарел в SAX 2.0.
- Параметры:
-
is- Поток ввода, содержащий содержимое для обработки. -
hb- SAX HandlerBase для использования. - Исключения:
-
IllegalArgumentException- Если данный InputStream равен null. -
SAXException- Если обработка вызывает ошибку SAX. -
IOException- Если возникает ошибка ввода-вывода при взаимодействии сInputStream. - См. также:
parse
public void parse(InputStream is, HandlerBase hb, String systemId) throws SAXException, IOException
Обработать содержимое данного экземпляра InputStream как XML с использованием указанного HandlerBase. Рекомендуется использовать версию DefaultHandler данного метода, так как класс HandlerBase устарел в SAX 2.0.
- Параметры:
-
is- Поток ввода, содержащий содержимое для обработки. -
hb- SAX HandlerBase для использования. -
systemId- Идентификатор системы, необходимый для разрешения относительных URI. - Исключения:
-
IllegalArgumentException- Если заданныйInputStreamравенnull. -
IOException- Если возникает ошибка ввода-вывода при взаимодействии сInputStream. -
SAXException- Если возникают ошибки SAX во время обработки. - См. также:
parse
public void parse(InputStream is, DefaultHandler dh) throws SAXException, IOException
InputStream как XML с использованием указанного DefaultHandler.- Параметры:
-
is- Поток ввода, содержащий содержимое для обработки. -
dh- SAX DefaultHandler для использования. - Исключения:
-
IllegalArgumentException- Если данный InputStream равен null. -
IOException- Если возникают ошибки ввода-вывода. -
SAXException- Если возникают ошибки SAX во время обработки. - См. также:
parse
public void parse(InputStream is, DefaultHandler dh, String systemId) throws SAXException, IOException
InputStream как XML с использованием указанного DefaultHandler.- Параметры:
-
is- Поток ввода, содержащий содержимое для обработки. -
dh- SAX DefaultHandler для использования. -
systemId- Идентификатор системы, необходимый для разрешения относительных URI. - Исключения:
-
IllegalArgumentException- Если данный InputStream равен null. -
IOException- Если возникают ошибки ввода-вывода. -
SAXException- Если возникают ошибки SAX во время обработки. - См. также:
parse
public void parse(String uri, HandlerBase hb) throws SAXException, IOException
HandlerBase. Рекомендуется использовать версию DefaultHandler данного метода, так как класс HandlerBase устарел в SAX 2.0
- Параметры:
-
uri- Местоположение содержимого для обработки. -
hb- SAX HandlerBase для использования. - Исключения:
-
IllegalArgumentException- Если uri равен null. -
IOException- Если возникают ошибки ввода-вывода. -
SAXException- Если возникают ошибки SAX во время обработки. - См. также:
parse
public void parse(String uri, DefaultHandler dh) throws SAXException, IOException
DefaultHandler.- Параметры:
-
uri- Местоположение содержимого для обработки. -
dh- SAX DefaultHandler для использования. - Исключения:
-
IllegalArgumentException- Если uri равен null. -
IOException- Если возникают ошибки ввода-вывода. -
SAXException- Если возникают ошибки SAX во время обработки. - См. также:
parse
public void parse(File f, HandlerBase hb) throws SAXException, IOException
HandlerBase. Рекомендуется использовать версию DefaultHandler данного метода, так как класс HandlerBase устарел в SAX 2.0
- Параметры:
-
f- Файл, содержащий XML для обработки -
hb- SAX HandlerBase для использования. - Исключения:
-
IllegalArgumentException- Если объект File равен null. -
IOException- Если возникают ошибки ввода-вывода. -
SAXException- Если возникают ошибки SAX во время обработки. - См. также:
parse
public void parse(File f, DefaultHandler dh) throws SAXException, IOException
DefaultHandler.- Параметры:
-
f- Файл, содержащий XML для обработки -
dh- SAX DefaultHandler для использования. - Исключения:
-
IllegalArgumentException- Если объект File равен null. -
IOException- Если возникают ошибки ввода-вывода. -
SAXException- Если возникают ошибки SAX во время обработки. - См. также:
parse
public void parse(InputSource is, HandlerBase hb) throws SAXException, IOException
InputSource, как XML с использованием указанного HandlerBase. Рекомендуется использовать версию DefaultHandler данного метода, так как класс HandlerBase устарел в SAX 2.0
- Параметры:
-
is- InputSource, содержащий содержимое для обработки. -
hb- SAX HandlerBase для использования. - Исключения:
-
IllegalArgumentException- Если объектInputSourceравенnull. -
IOException- Если возникают ошибки ввода-вывода. -
SAXException- Если возникают ошибки SAX во время обработки. - См. также:
parse
public void parse(InputSource is, DefaultHandler dh) throws SAXException, IOException
InputSource как XML с использованием указанного DefaultHandler.- Parameters:
-
is- Источник входных данных, содержащий содержимое для обработки. -
dh- SAX DefaultHandler для использования. - Throws:
-
IllegalArgumentException- Если объектInputSourceявляетсяnull. -
IOException- Если произошли какие-либо ошибки ввода-вывода. -
SAXException- Если при обработке произошли какие-либо ошибки SAX. - See Also:
getParser
public abstract Parser getParser() throws SAXException
- Returns:
- SAX-парсер, который инкапсулирован реализацией этого класса.
- Throws:
-
SAXException- Если при обработке произошли какие-либо ошибки SAX.
getXMLReader
public abstract XMLReader getXMLReader() throws SAXException
XMLReader, инкапсулированный реализацией этого класса.- Returns:
- XMLReader, инкапсулированный реализацией этого класса.
- Throws:
-
SAXException- Если при обработке произошли какие-либо ошибки SAX.
isNamespaceAware
public abstract boolean isNamespaceAware()
- Returns:
- true, если этот парсер настроен для понимания пространств имён; иначе — false.
isValidating
public abstract boolean isValidating()
- Returns:
- true, если этот парсер настроен для проверки XML-документов; иначе — false.
setProperty
public abstract void setProperty(String name, Object value) throws SAXNotRecognizedException, SAXNotSupportedException
Устанавливает определённое свойство в базовой реализации XMLReader. Список основных функций и свойств можно найти по адресу http://sax.sourceforge.net/?selected=get-set.
Все реализации, реализующие JAXP 1.5 или более позднюю версию, обязаны поддерживать свойства XMLConstants.ACCESS_EXTERNAL_DTD и XMLConstants.ACCESS_EXTERNAL_SCHEMA.
-
Установка свойства
XMLConstants.ACCESS_EXTERNAL_DTDограничивает доступ к внешним DTD, внешним ссылкам сущностей до протоколов, указанных в свойстве. Если доступ запрещён во время разбора из-за ограничения этого свойства,SAXExceptionбудет выброшен методами разбора, определённымиSAXParser.Установка свойства
XMLConstants.ACCESS_EXTERNAL_SCHEMAограничивает доступ к внешним схемам, заданным атрибутом schemaLocation, до протоколов, указанных в свойстве. Если доступ запрещён во время разбора из-за ограничения этого свойства,SAXExceptionбудет выброшен методами разбора, определённымиSAXParser.
- Parameters:
-
name- Имя свойства, которое нужно установить. -
value- Значение свойства, которое нужно установить. - Throws:
-
SAXNotRecognizedException- Когда базовый XMLReader не распознаёт имя свойства. -
SAXNotSupportedException- Когда базовый XMLReader распознаёт имя свойства, но не поддерживает его. - See Also:
getProperty
public abstract Object getProperty(String name) throws SAXNotRecognizedException, SAXNotSupportedException
Возвращает запрашиваемое свойство в базовой реализации XMLReader.
- Parameters:
-
name- Имя свойства, которое нужно получить. - Returns:
- Значение запрошенного свойства.
- Throws:
-
SAXNotRecognizedException- Когда базовый XMLReader не распознаёт имя свойства. -
SAXNotSupportedException- Когда базовый XMLReader распознаёт имя свойства, но не поддерживает его. - See Also:
getSchema
public Schema getSchema()
Получить ссылку на Schema, используемый процессором XML.
Если схема не используется, возвращается null.
- Returns:
-
Schema, используемая, илиnull, если схема не используется - Throws:
-
UnsupportedOperationException- Когда реализация не переопределяет этот метод - Since:
- 1.5
isXIncludeAware
public boolean isXIncludeAware()
Получить режим обработки XInclude для этого парсера.
- Returns:
- значение, возвращаемое
SAXParserFactory.isXIncludeAware()при создании этого парсера из фабрики. - Throws:
-
UnsupportedOperationException- Когда реализация не переопределяет этот метод - Since:
- 1.5
- See Also:
© 1993, 2023, 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://docs.oracle.com/en/java/javase/21/docs/api/java.xml/javax/xml/parsers/SAXParser.html