Spec-Zone.ru › OpenJDK 21

Класс SAXParserFactory

java.lang.Object
javax.xml.parsers.SAXParserFactory
public abstract class SAXParserFactory extends Object
Определяет API фабрики, которая позволяет приложениям настраивать и получать SAX-парсер для разбора XML-документов.
Since:
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, не учитывая возможные ограничения реализации.
Параметры:
name - Имя параметра, который нужно установить.
value - Значение параметра, которое нужно установить.
Исключение:
ParserConfigurationException - если парсер не может быть создан, удовлетворяющий запрошенной конфигурации.
SAXNotRecognizedException - Когда базовый XMLReader не распознаёт имя свойства.
SAXNotSupportedException - Когда базовый XMLReader распознаёт имя свойства, но не поддерживает его.
NullPointerException - Если параметр name является null.
См. также:
  • XMLReader.setFeature(java.lang.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(java.lang.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 (например, добавляя значения по умолчанию, отсутствующие в документах), и анализатор отвечает за то, чтобы приложение получило этот измененный поток событий.

Изначально 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 реализация. Однако анализаторам и схемам разрешается использовать специфичные для реализации пользовательские механизмы, если они дают результат, описанный в спецификации.

Параметры:
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

© 1993, 2023, 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/21/docs/api/java.xml/javax/xml/parsers/SAXParserFactory.html

Spec-Zone.ru

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