Класс SAXParserFactory

public abstract class SAXParserFactory
extends Object

Определяет фабричный API, который позволяет приложениям настраивать и получать SAX-парсер для разбора XML-документов.

Since:
1.4

Конструкторы

Модификатор Конструктор Описание
protected SAXParserFactory()

Защищённый конструктор для принудительного использования 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 newInstance()

Получить новый экземпляр SAXParserFactory.

static SAXParserFactory newInstance​(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.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Конструкторы

SAXParserFactory

protected SAXParserFactory()

Защищенный конструктор для принудительного использования newInstance().

Методы

newDefaultInstance

public static SAXParserFactory newDefaultInstance()

Создаёт новый экземпляр SAXParserFactory встроенной реализации по умолчанию.

Возвращает:
Новый экземпляр SAXParserFactory встроенной реализации по умолчанию.
С:
9

newInstance

public static SAXParserFactory newInstance()

Получает новый экземпляр SAXParserFactory. Этот статический метод создаёт новый экземпляр фабрики. Метод использует следующий упорядоченный поиск для определения класса реализации SAXParserFactory для загрузки:

  • Использует системное свойство javax.xml.parsers.SAXParserFactory.
  • Использует файл конфигурации "jaxp.properties". Файл находится в стандартном формате Properties и обычно расположен в директории conf установки Java. Он содержит полное имя класса реализации, при этом ключ соответствует вышеопределённому системному свойству.

    Файл jaxp.properties читается реализацией JAXP только один раз, а его значения кешируются для дальнейшего использования. Если файл не существует при первой попытке его чтения, дальнейшие попытки проверки его существования не выполняются. Изменить значение любого свойства в jaxp.properties после его первого прочтения невозможно.

  • Использует механизм загрузки поставщиков услуг, определённый классом ServiceLoader, для поиска и загрузки реализации сервиса с использованием механизма загрузки по умолчанию: механизм загрузки поставщиков услуг будет использовать класс загрузки контекста текущей нити для попытки загрузки сервиса. Если класс загрузки контекста равен null, будет использоваться системный класс загрузки.

  • В противном случае возвращается реализация по умолчанию системы.

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

Parameters:
schema - Schema для использования, null для удаления схемы.
Throws:
UnsupportedOperationException - Когда реализация не переопределяет этот метод
Since:
1.5

setXIncludeAware

public void setXIncludeAware(boolean state)

Установить состояние обработки XInclude.

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

Обработка XInclude по умолчанию равна false.

Parameters:
state - Установить обработку XInclude в true или false
Throws:
UnsupportedOperationException - При отсутствии переопределения метода в реализации
Since:
1.5

isXIncludeAware

public boolean isXIncludeAware()

Получить состояние обработки XInclude.

Returns:
текущее состояние обработки XInclude
Throws:
UnsupportedOperationException - При отсутствии переопределения метода в реализации
Since:
1.5

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

Spec-Zone .ru
спецификации, руководства, описания, API