Spec-Zone.ru › OpenJDK 27

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

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удален в будущей версии.
Финализация устарела и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания, либо до истечения заданного промежутка реального времени.

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

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
См. также:
  • 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). См. методы parse класса SAXParser, чтобы узнать, как задать обработчик.
  • Если функция имеет значение false, реализация будет обрабатывать XML в соответствии со спецификациями XML, не учитывая возможные ограничения реализации.
Параметры:
name — имя устанавливаемой функции.
value — значение устанавливаемой функции.
Выбрасывает:
ParserConfigurationException — если не удается создать парсер, соответствующий запрошенной конфигурации.
SAXNotRecognizedException — если базовая реализация XMLReader не распознает имя свойства.
SAXNotSupportedException — если базовая реализация XMLReader распознает имя свойства, но не поддерживает это свойство.
NullPointerException — если параметр name равен null.
См. также:
  • XMLReader.setFeature(String, boolean)

getFeature

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

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.

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

По умолчанию обработка XInclude имеет значение false.

Параметры:
state — включает обработку XInclude (true) или отключает ее (false).
Выбрасывает:
UnsupportedOperationException — если реализация не переопределяет этот метод.
С версии:
1.5

isXIncludeAware

public boolean isXIncludeAware()
Получает состояние обработки XInclude.
Возвращает:
текущее состояние обработки XInclude
Выбрасывает:
UnsupportedOperationException — если реализация не переопределяет этот метод.
С версии:
1.5

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, включая обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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