Класс SAXParserFactory
public abstract class SAXParserFactory extends Object
- С момента:
- 1.4
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Защищённый конструктор для принудительного использования newInstance(). |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract boolean |
getFeature |
Возвращает запрашиваемое свойство в базовой реализации 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 |
Получает новый экземпляр SAXParserFactory по имени класса. |
static SAXParserFactory |
newNSInstance() |
Создаёт новый экземпляр NamespaceAware SAXParserFactory. |
static SAXParserFactory |
newNSInstance |
Создаёт новый экземпляр NamespaceAware SAXParserFactory по имени класса. |
abstract SAXParser |
newSAXParser() |
Создаёт новый экземпляр SAXParser с использованием текущих параметров фабрики. |
abstract void |
setFeature |
Устанавливает конкретный атрибут в базовой реализации org.xml.sax.XMLReader. |
void |
setNamespaceAware |
Указывает, что парсер, созданный с помощью этого кода, будет поддерживать XML-пространства имён. |
void |
setSchema |
Устанавливает Schema для использования парсерами, созданными из этой фабрики. |
void |
setValidating |
Указывает, что парсер, созданный с помощью этого кода, будет валидировать документы во время разбора. |
void |
setXIncludeAware |
Устанавливает состояние обработки XInclude. |
Подробное описание конструкторов
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
- См. также:
newSAXParser
public abstract SAXParser newSAXParser() throws ParserConfigurationException, SAXException
- Возвращает:
- Новый экземпляр SAXParser.
- Выбрасывает:
-
ParserConfigurationException- если парсер не может быть создан, удовлетворяющий запрошенной конфигурации. -
SAXException- для ошибок SAX.
setNamespaceAware
public void setNamespaceAware(boolean awareness)
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()
- Возвращает:
- true, если фабрика настроенна для создания парсеров, которые проверяют содержимое XML во время разбора; false в противном случае.
setFeature
public abstract void setFeature(String name, boolean value) throws ParserConfigurationException, SAXNotRecognizedException, SAXNotSupportedException
Все реализации обязаны поддерживать свойство XMLConstants.FEATURE_SECURE_PROCESSING. Когда свойство
-
true: реализация ограничит обработку XML в соответствии с пределами реализации. Примеры включают пределы расширения сущностей и конструкции XML Schema, которые потребовали бы больших ресурсов. Если обработка XML ограничена по соображениям безопасности, это будет сообщено посредством вызова зарегистрированногоErrorHandler.fatalError(SAXParseException exception). См. методыSAXParserparseдля указания обработчика. - Когда свойство
false, реализация будет обрабатывать XML в соответствии со спецификациями XML без учета возможных ограничений реализации.
- Параметры:
-
name- Имя свойства, которое нужно установить. -
value- Значение свойства, которое нужно установить. - Выбрасывает:
-
ParserConfigurationException- если парсер не может быть создан, удовлетворяющий запрошенной конфигурации. -
SAXNotRecognizedException- Когда базовый XMLReader не распознаёт имя свойства. -
SAXNotSupportedException- Когда базовый XMLReader распознаёт имя свойства, но не поддерживает это свойство. -
NullPointerException- Если параметрnameравен null. - См. также:
getFeature
public abstract boolean getFeature(String name) throws ParserConfigurationException, SAXNotRecognizedException, SAXNotSupportedException
- Параметры:
-
name- Имя свойства, которое нужно получить. - Возвращает:
- Значение запрошенного свойства.
- Исключения:
-
ParserConfigurationException- если парсер не может быть создан, удовлетворяющий запрошенной конфигурации. -
SAXNotRecognizedException- Когда базовый XMLReader не распознает имя свойства. -
SAXNotSupportedException- Когда базовый XMLReader распознает имя свойства, но не поддерживает это свойство. - См. также:
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, должен ли он быть обработан в соответствии со спецификацией XML Inclusions (XInclude) Version 1.0.
Обработка XInclude по умолчанию false.
- Параметры:
-
state- Установить обработку XInclude вtrueилиfalse - Исключения:
-
UnsupportedOperationException- Когда реализация не переопределяет этот метод - С момента:
- 1.5
isXIncludeAware
public boolean isXIncludeAware()
- Возвращает:
- текущее состояние обработки 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