Класс 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() |
Создаёт новый экземпляр 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 без учета возможных ограничений реализации.
- Parameters:
-
name- Название функции, которая должна быть установлена. -
value- Значение функции, которое должно быть установлено. - Throws:
-
ParserConfigurationException- если не может быть создан парсер, удовлетворяющий запрошенной конфигурации. -
SAXNotRecognizedException- Когда базовый XMLReader не распознает имя свойства. -
SAXNotSupportedException- Когда базовый XMLReader распознает имя свойства, но не поддерживает это свойство. -
NullPointerException- Если параметрnameравен null. - See Also:
getFeature
public abstract boolean getFeature(String name) throws ParserConfigurationException, SAXNotRecognizedException, SAXNotSupportedException
- Parameters:
-
name- Название свойства, которое должно быть получено. - Returns:
- Значение запрошенного свойства.
- Throws:
-
ParserConfigurationException- если не может быть создан парсер, удовлетворяющий запрошенной конфигурации. -
SAXNotRecognizedException- Когда базовый XMLReader не распознает имя свойства. -
SAXNotSupportedException- Когда базовый XMLReader распознает имя свойства, но не поддерживает это свойство. - See Also:
getSchema
public Schema getSchema()
Schema, указанный методом setSchema(Schema schema).- Returns:
- объект
Schema, последний установленный методомsetSchema(Schema), или null, если метод не вызывался с момента созданияSAXParserFactory. - Throws:
-
UnsupportedOperationException- Когда реализация не переопределяет этот метод - Since:
- 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. Однако парсерам и схемам разрешается использовать специфичные для реализации механизмы, пока они дают результат, описанный в спецификации.
- Parameters:
-
schema-Schemaдля использования,nullдля удаления схемы. - Throws:
-
UnsupportedOperationException- Когда реализация не переопределяет этот метод - Since:
- 1.5
setXIncludeAware
public void setXIncludeAware(boolean state)
Если в документе-инстансе найден тег XInclude, должен ли он обрабатываться в соответствии со спецификацией XML Inclusions (XInclude) Version 1.0.
Обработка XInclude по умолчанию false.
- Parameters:
-
state- Установить обработку XInclude вtrueилиfalse - Throws:
-
UnsupportedOperationException- Когда реализация не переопределяет этот метод - Since:
- 1.5
isXIncludeAware
public boolean isXIncludeAware()
- Returns:
- текущее состояние обработки XInclude
- Throws:
-
UnsupportedOperationException- Когда реализация не переопределяет этот метод - Since:
- 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://download.java.net/java/early_access/jdk24/docs/api/java.xml/javax/xml/parsers/SAXParserFactory.html