Класс SAXParserFactory
public abstract class SAXParserFactory extends Object
- Since:
- 1.4
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Защищённый конструктор, чтобы принудительно использовать newInstance(). |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract boolean |
getFeature |
Возвращает запрашиваемое свойство в базовой реализации org.xml.sax.XMLReader. |
Schema |
getSchema() |
Получает объект Schema, указанный с помощью метода setSchema(Schema schema). |
boolean |
isNamespaceAware() |
Указывает, настроена ли фабрика на создание парсеров, поддерживающих имена пространств имён. |
boolean |
isValidating() |
Указывает, настроена ли фабрика на создание парсеров, которые проверяют содержимое XML во время разбора. |
boolean |
isXIncludeAware() |
Получение состояния обработки XInclude. |
static SAXParserFactory |
newDefaultInstance() |
Создаёт новый экземпляр встроенной реализации SAXParserFactory по умолчанию. |
static SAXParserFactory |
newDefaultNSInstance() |
Создаёт новый экземпляр NamespaceAware встроенной реализации SAXParserFactory по умолчанию. |
static SAXParserFactory |
newInstance() |
Получает новый экземпляр SAXParserFactory. |
static SAXParserFactory |
newInstance |
Получает новый экземпляр SAXParserFactory по имени класса. |
static SAXParserFactory |
newNSInstance() |
Создаёт новый экземпляр NamespaceAware SAXParserFactory. |
static SAXParserFactory |
newNSInstance |
Создаёт новый экземпляр NamespaceAware SAXParserFactory по имени класса. |
abstract SAXParser |
newSAXParser() |
Создаёт новый экземпляр SAXParser с использованием текущих параметров конфигурации фабрики. |
abstract void |
setFeature |
Устанавливает определённый параметр в базовой реализации org.xml.sax.XMLReader. |
void |
setNamespaceAware |
Указывает, что парсер, созданный этим кодом, будет поддерживать XML-имена пространств имён. |
void |
setSchema |
Устанавливает Schema для использования парсерами, созданными из этой фабрики. |
void |
setValidating |
Указывает, что парсер, созданный этим кодом, будет проверять документы во время разбора. |
void |
setXIncludeAware |
Устанавливает состояние обработки XInclude. |
Подробное описание конструкторов
SAXParserFactory
protected SAXParserFactory()
newInstance().Подробное описание методов
newDefaultNSInstance
public static SAXParserFactory newDefaultNSInstance()
SAXParserFactory встроенной реализации по умолчанию. Парсеры, созданные с помощью экземпляра фабрики, по умолчанию поддерживают XML-пространства имён.- Требования к реализации:
- Помимо создания экземпляра фабрики с помощью того же процесса, что и
newDefaultInstance(), этот метод должен установить NamespaceAware в true. - Возвращает:
- новый экземпляр
SAXParserFactoryвстроенной реализации по умолчанию. - С:
- 13
newNSInstance
public static SAXParserFactory newNSInstance()
SAXParserFactory. Парсеры, созданные с помощью экземпляра фабрики, по умолчанию поддерживают XML-пространства имён.- Требования к реализации:
- Помимо создания экземпляра фабрики с помощью того же процесса, что и
newInstance(), этот метод должен установить NamespaceAware в true. - Возвращает:
- новый экземпляр
SAXParserFactory - Исключение:
-
FactoryConfigurationError- в случае ошибки конфигурации службы или если реализация недоступна или не может быть создана. - С:
- 13
newNSInstance
public static SAXParserFactory newNSInstance(String factoryClassName, ClassLoader classLoader)
SAXParserFactory из имени класса. Парсеры, созданные с помощью экземпляра фабрики, по умолчанию поддерживают XML-пространства имён.- Требования к реализации:
- Помимо создания экземпляра фабрики с помощью того же процесса, что и
newInstance(java.lang.String, java.lang.ClassLoader), этот метод должен установить NamespaceAware в true. - Параметры:
-
factoryClassName- полное квалифицированное имя класса фабрики, предоставляющее реализациюjavax.xml.parsers.SAXParserFactory. -
classLoader-ClassLoaderдля загрузки класса фабрики. Если этоnull, используется контекстный класс-загрузчик текущегоThreadдля загрузки класса фабрики. - Возвращает:
- новый экземпляр
SAXParserFactory - Исключение:
-
FactoryConfigurationError- еслиfactoryClassNameявляетсяnull, или класс фабрики не может быть загружен или создан. - С:
- 13
newDefaultInstance
public static SAXParserFactory newDefaultInstance()
SAXParserFactory встроенной реализации по умолчанию.- Возвращает:
- Новый экземпляр
SAXParserFactoryвстроенной реализации по умолчанию. - С:
- 9
newInstance
public static SAXParserFactory newInstance()
SAXParserFactory. Этот метод использует механизм поиска JAXP для определения класса реализации SAXParserFactory для загрузки. После того как приложение получило ссылку на SAXParserFactory, оно может использовать фабрику для настройки и получения экземпляров парсеров.
Совет по устранению неполадок
Установка системной переменной jaxp.debug заставит этот метод печатать большое количество отладочных сообщений в System.err о том, что он делает и где смотрит.
Если у вас проблемы с загрузкой SAXParserов, попробуйте:
java -Djaxp.debug=1 YourProgram ....
- Возвращает:
- Новый экземпляр SAXParserFactory.
- Исключение:
-
FactoryConfigurationError- в случае ошибки конфигурации службы или если реализация недоступна или не может быть создана.
newInstance
public static SAXParserFactory newInstance(String factoryClassName, ClassLoader classLoader)
SAXParserFactory по имени класса. Эта функция полезна, когда в пути класса несколько поставщиков. Она даёт больше контроля над приложением, позволяя указать, какой поставщик должен быть загружен. После того, как приложение получило ссылку на SAXParserFactory , оно может использовать фабрику для настройки и получения экземпляров парсеров.
Совет по устранению неполадок
Установка системной переменной jaxp.debug заставит этот метод печатать большое количество отладочных сообщений в System.err о том, что он делает и где смотрит.
Если у вас есть проблемы, попробуйте:
java -Djaxp.debug=1 YourProgram ....
- Параметры:
-
factoryClassName- полное квалифицированное имя класса фабрики, предоставляющее реализациюjavax.xml.parsers.SAXParserFactory. -
classLoader-ClassLoaderдля загрузки класса фабрики. Еслиnull, используется контекстный класс-загрузчик текущегоThread. - Возвращает:
- Новый экземпляр
SAXParserFactory - Исключение:
-
FactoryConfigurationError- еслиfactoryClassNameявляетсяnull, или класс фабрики не может быть загружен или создан. - С:
- 1.6
- См. также:
newSAXParser
public abstract SAXParser newSAXParser() throws ParserConfigurationException, SAXException
- Возвращает:
- Новый экземпляр SAXParser.
- Исключение:
-
ParserConfigurationException- если парсер не может быть создан, удовлетворяющий запрошенной конфигурации. -
SAXException- для ошибок SAX.
setNamespaceAware
public void setNamespaceAware(boolean awareness)
false.- Параметры:
-
awareness- true, если парсер, созданный этим кодом, будет поддерживать XML-пространства имён; в противном случае false.
setValidating
public void setValidating(boolean validating)
false. Обратите внимание, что "валидация" здесь означает валидирующий парсер, как определено в рекомендации XML. Другими словами, она в основном просто управляет проверкой DTD. (кроме устаревших двух свойств, определённых в JAXP 1.2.)
Для использования современных языков схем, таких как W3C XML Schema или RELAX NG вместо DTD, вы можете настроить свой парсер на невалидирующий парсер, оставив метод setValidating(boolean) false, а затем использовать метод setSchema(Schema) для ассоциации схемы с парсером.
- Параметры:
-
validating- true, если парсер, созданный этим кодом, будет проверять документы по мере их разбора; в противном случае false.
isNamespaceAware
public boolean isNamespaceAware()
- Возвращает:
- true, если фабрика настроена на создание парсеров, которые осознают пространства имён; в противном случае false.
isValidating
public boolean isValidating()
- Возвращает:
- true, если фабрика настроена на создание парсеров, которые проверяют содержимое XML во время разбора; в противном случае false.
setFeature
public abstract void setFeature(String name, boolean value) throws ParserConfigurationException, SAXNotRecognizedException, SAXNotSupportedException
Все реализации должны поддерживать параметр XMLConstants.FEATURE_SECURE_PROCESSING. Когда этот параметр
-
true: реализация ограничит обработку XML, чтобы соответствовать ограничениям реализации. Примеры включают ограничения расширения сущностей и конструкции XML Schema, которые потребляли бы большие объёмы ресурсов. Если обработка XML ограничена по соображениям безопасности, об этом будет сообщено с помощью вызова зарегистрированного обработчикаErrorHandler.fatalError(SAXParseException exception). См. методыSAXParserparseдля указания обработчика. - Если параметр
false, реализация будет обрабатывать XML в соответствии со спецификациями XML, не учитывая возможные ограничения реализации.
- Параметры:
-
name- Имя параметра, который нужно установить. -
value- Значение параметра, которое нужно установить. - Исключение:
-
ParserConfigurationException- если парсер не может быть создан, удовлетворяющий запрошенной конфигурации. -
SAXNotRecognizedException- Когда базовый XMLReader не распознаёт имя свойства. -
SAXNotSupportedException- Когда базовый XMLReader распознаёт имя свойства, но не поддерживает его. -
NullPointerException- Если параметрnameявляется null. - См. также:
getFeature
public abstract boolean getFeature(String name) throws ParserConfigurationException, SAXNotRecognizedException, SAXNotSupportedException
- Параметры:
-
name- Имя свойства, которое нужно получить. - Возвращает:
- Значение запрошенного свойства.
- Исключения:
-
ParserConfigurationException- если не может быть создан анализатор, удовлетворяющий запрошенной конфигурации. -
SAXNotRecognizedException- Когда базовый XMLReader не распознает имя свойства. -
SAXNotSupportedException- Когда базовый XMLReader распознает имя свойства, но не поддерживает свойство. - См. также:
getSchema
public Schema getSchema()
Schema, заданный методом setSchema(Schema schema).- Возвращает:
- объект
Schema, последний установленный методомsetSchema(Schema), или null, если метод не был вызван с момента созданияSAXParserFactory. - Исключения:
-
UnsupportedOperationException- Когда реализация не переопределяет этот метод - С:
- 1.5
setSchema
public void setSchema(Schema schema)
Schema, который будут использовать анализаторы, созданные из этого фабрики. Когда Schema не равен null, анализатор будет использовать созданный из него валидатор для проверки документов перед передачей информации в приложение.
Если валидатор обнаружит предупреждения/ошибки/критические ошибки, анализатор должен обработать их так, как если бы эти ошибки были обнаружены самим анализатором. Другими словами, если пользователь задал ErrorHandler, он должен получить эти ошибки, а если нет, они должны обрабатываться в соответствии с правилами обработки ошибок по умолчанию, специфичными для реализации.
Валидатор может изменять поток событий SAX (например, добавляя значения по умолчанию, отсутствующие в документах), и анализатор отвечает за то, чтобы приложение получило этот измененный поток событий.
Изначально null установлен как Schema.
Эта обработка вступит в силу даже если метод isValidating() возвращает false.
Использование свойств http://java.sun.com/xml/jaxp/properties/schemaSource и/или http://java.sun.com/xml/jaxp/properties/schemaLanguage в сочетании с объектом Schema не равен null является ошибкой. Такая конфигурация приведет к исключению SAXException при установке этих свойств на SAXParser.
Примечание для разработчиков реализации
Анализатор должен быть способен работать с любым Schema реализация. Однако анализаторам и схемам разрешается использовать специфичные для реализации пользовательские механизмы, если они дают результат, описанный в спецификации.
- Параметры:
-
schema-Schemaдля использования,nullдля удаления схемы. - Исключения:
-
UnsupportedOperationException- Когда реализация не переопределяет этот метод - С:
- 1.5
setXIncludeAware
public void setXIncludeAware(boolean state)
Если в документе-инстансе обнаружен тег XInclude, он должен быть обработан в соответствии со спецификацией XML Inclusions (XInclude) Version 1.0.
Обработка XInclude по умолчанию false.
- Параметры:
-
state- Установить обработку XInclude вtrueилиfalse - Исключения:
-
UnsupportedOperationException- Когда реализация не переопределяет этот метод - С:
- 1.5
isXIncludeAware
public boolean isXIncludeAware()
- Возвращает:
- текущее состояние обработки XInclude
- Исключения:
-
UnsupportedOperationException- Когда реализация не переопределяет этот метод - С:
- 1.5
© 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/SAXParserFactory.html