Spec-Zone.ru › OpenJDK 25

Класс 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

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

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
См. также:
  • 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, не учитывая возможные ограничения реализации.
Параметры:
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) Version 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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.xml/javax/xml/parsers/SAXParserFactory.html

Spec-Zone.ru

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