Spec-Zone.ru › OpenJDK 17

Класс 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 без учета возможных ограничений реализации.
Параметры:
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, 2021, 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/17/docs/api/java.xml/javax/xml/parsers/SAXParserFactory.html

Spec-Zone.ru

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