Spec-Zone.ru › OpenJDK 24

Класс SAXParserFactory

java.lang.Object
javax.xml.parsers.SAXParserFactory
public abstract class SAXParserFactory extends Object
Определяет API фабрики, позволяющей приложениям настраивать и получать SAX-парсер для разбора XML-документов.
С тех пор:
1.4

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

SAXParserFactory()
Модификатор Конструктор Описание
protected
Защищённый конструктор, чтобы принудительно использовать newInstance().

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

Модификатор и тип Метод Описание
abstract boolean getFeature(String name)
Возвращает запрашиваемое свойство в базовой реализации 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(String factoryClassName, ClassLoader classLoader)
Получает новый экземпляр SAXParserFactory по имени класса.
static SAXParserFactory newNSInstance()
Создаёт новый экземпляр NamespaceAware SAXParserFactory.
static SAXParserFactory newNSInstance(String factoryClassName, ClassLoader classLoader)
Создаёт новый экземпляр NamespaceAware SAXParserFactory по имени класса.
abstract SAXParser newSAXParser()
Создаёт новый экземпляр SAXParser с текущими параметрами конфигурации фабрики.
abstract void setFeature(String name, boolean value)
Устанавливает конкретный параметр в базовой реализации org.xml.sax.XMLReader.
void setNamespaceAware(boolean awareness)
Указывает, что парсер, созданный этим кодом, будет поддерживать XML-пространства имён.
void setSchema(Schema schema)
Устанавливает Schema, который будет использоваться парсерами, созданными этой фабрикой.
void setValidating(boolean validating)
Указывает, что парсер, созданный этим кодом, будет валидировать документы по мере их разбора.
void setXIncludeAware(boolean state)
Устанавливает состояние обработки XInclude.

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

SAXParserFactory

protected SAXParserFactory()
Защищённый конструктор для принудительного использования newInstance().

Подробное описание методов

newDefaultNSInstance

public static SAXParserFactory newDefaultNSInstance()
Создаёт новый экземпляр NamespaceAware с использованием встроенной по умолчанию реализации SAXParserFactory. Парсеры, созданные этим экземпляром фабрики, по умолчанию поддерживают XML-пространства имён.
Требования к реализации:
В дополнение к созданию экземпляра фабрики таким же образом, как в newDefaultInstance(), этот метод должен установить NamespaceAware в true.
Возвращает:
новый экземпляр встроенной по умолчанию реализации SAXParserFactory.
С момента:
13

newNSInstance

public static SAXParserFactory newNSInstance()
Создаёт новый экземпляр NamespaceAware с использованием реализации SAXParserFactory. Парсеры, созданные этим экземпляром фабрики, по умолчанию поддерживают XML-пространства имён.
Требования к реализации:
В дополнение к созданию экземпляра фабрики таким же образом, как в newInstance(), этот метод должен установить NamespaceAware в true.
Возвращает:
новый экземпляр реализации SAXParserFactory
Издаёт:
FactoryConfigurationError - в случае ошибки конфигурации сервиса или если реализация недоступна или не может быть инициализирована.
С момента:
13

newNSInstance

public static SAXParserFactory newNSInstance(String factoryClassName, ClassLoader classLoader)
Создаёт новый экземпляр NamespaceAware реализации 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
См. также:
  • newInstance()

newSAXParser

public abstract SAXParser newSAXParser() throws ParserConfigurationException, SAXException
Создаёт новый экземпляр SAXParser, используя текущие параметры фабрики.
Возвращает:
новый экземпляр SAXParser.
Издаёт:
ParserConfigurationException - если парсер не может быть создан, удовлетворяющий запрошенной конфигурации.
SAXException - для ошибок SAX.

setNamespaceAware

public void setNamespaceAware(boolean awareness)
Указывает, что парсер, созданный этим кодом, будет поддерживать XML-пространства имён. По умолчанию это значение равно 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()
Указывает, настроен ли фабрика на создание парсеров, которые валидируют XML-содержимое во время разбора.
Возвращает:
true, если фабрика настроена на создание парсеров, которые валидируют XML-содержимое во время разбора; иначе false.

setFeature

public abstract void setFeature(String name, boolean value) throws ParserConfigurationException, SAXNotRecognizedException, SAXNotSupportedException
Устанавливает конкретную функцию в базовой реализации org.xml.sax.XMLReader. Список основных функций и свойств можно найти по адресу http://www.saxproject.org/

Все реализации обязаны поддерживать функцию XMLConstants.FEATURE_SECURE_PROCESSING. Когда функция

  • true: реализация ограничит обработку XML, чтобы соответствовать пределам реализации. Примеры включают ограничения расширения сущностей и конструкции XML Schema, которые потребляют большое количество ресурсов. Если обработка XML ограничена по соображениям безопасности, об этом будет сообщено вызовом зарегистрированного обработчика ErrorHandler.fatalError(SAXParseException exception). См. методы SAXParser parse для указания обработчика.
  • Когда функция false, реализация будет обрабатывать XML в соответствии со спецификациями XML без учета возможных ограничений реализации.
Parameters:
name - Название функции, которая должна быть установлена.
value - Значение функции, которое должно быть установлено.
Throws:
ParserConfigurationException - если не может быть создан парсер, удовлетворяющий запрошенной конфигурации.
SAXNotRecognizedException - Когда базовый XMLReader не распознает имя свойства.
SAXNotSupportedException - Когда базовый XMLReader распознает имя свойства, но не поддерживает это свойство.
NullPointerException - Если параметр name равен null.
See Also:
  • XMLReader.setFeature(java.lang.String, boolean)

getFeature

public abstract boolean getFeature(String name) throws ParserConfigurationException, SAXNotRecognizedException, SAXNotSupportedException
Возвращает запрошенное свойство в базовой реализации org.xml.sax.XMLReader.
Parameters:
name - Название свойства, которое должно быть получено.
Returns:
Значение запрошенного свойства.
Throws:
ParserConfigurationException - если не может быть создан парсер, удовлетворяющий запрошенной конфигурации.
SAXNotRecognizedException - Когда базовый XMLReader не распознает имя свойства.
SAXNotSupportedException - Когда базовый XMLReader распознает имя свойства, но не поддерживает это свойство.
See Also:
  • XMLReader.getProperty(java.lang.String)

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.

Если в документе-инстансе найден тег XInclude, должен ли он обрабатываться в соответствии со спецификацией XML Inclusions (XInclude) Version 1.0.

Обработка XInclude по умолчанию false.

Parameters:
state - Установить обработку XInclude в true или false
Throws:
UnsupportedOperationException - Когда реализация не переопределяет этот метод
Since:
1.5

isXIncludeAware

public boolean isXIncludeAware()
Получить состояние обработки XInclude.
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

Spec-Zone.ru

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