Класс SAXParserFactory
public abstract class SAXParserFactory extends Object
- Начиная с:
- 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() |
Создаёт новый экземпляр с поддержкой пространств имён встроенной системной реализации по умолчанию SAXParserFactory. |
static SAXParserFactory |
newInstance() |
Получает новый экземпляр SAXParserFactory. |
static SAXParserFactory |
newInstance |
Получает новый экземпляр SAXParserFactory по имени класса. |
static SAXParserFactory |
newNSInstance() |
Создаёт новый экземпляр с поддержкой пространств имён SAXParserFactory. |
static SAXParserFactory |
newNSInstance |
Создаёт новый экземпляр с поддержкой пространств имён 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, для загрузки класса фабрики используется контекстный classLoader текущего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, для загрузки класса фабрики используется контекстный classLoader текущего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 (например, добавлять отсутствовавшие в документах значения по умолчанию), и парсер должен обеспечить передачу приложению изменённого потока событий.
Изначально в качестве Schema задано null.
Эта обработка выполняется, даже если метод isValidating() возвращает false.
Использовать свойство http://java.sun.com/xml/jaxp/properties/schemaSource и/или свойство http://java.sun.com/xml/jaxp/properties/schemaLanguage вместе с ненулевым объектом Schema нельзя. Такая конфигурация приведёт к возникновению исключения 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, 2025, 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/25/docs/api/java.xml/javax/xml/parsers/SAXParserFactory.html