Spec-Zone.ru › OpenJDK 8

Класс SAXParserFactory

  • java.lang.Object
    • javax.xml.parsers.SAXParserFactory

public abstract class SAXParserFactory
extends Object

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

Версия:
$Revision: 1.9 $, $Date: 2010/05/25 16:19:44 $

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

Модификатор Конструктор и описание
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 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().

Методы

newInstance

public static SAXParserFactory newInstance()

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

  • Используйте свойство javax.xml.parsers.SAXParserFactory системы.
  • Используйте файл свойств "lib/jaxp.properties" в каталоге JRE. Этот файл конфигурации находится в стандартном формате java.util.Properties и содержит полное имя класса реализации с ключом, являющимся системным свойством, определённым выше. Файл 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. Однако парсеры и схемы могут использовать специфичные для реализации пользовательские механизмы, если это приводит к результату, описанному в спецификации.

Параметры:
schema - Schema для использования, null для удаления схемы.
Исключения:
UnsupportedOperationException - Когда реализация не переопределяет этот метод
С момента:
1.5

setXIncludeAware

public void setXIncludeAware(boolean state)

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

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

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

Параметры:
state - Установить обработку XInclude в true или false
Исключения:
UnsupportedOperationException - Когда реализация не переопределяет этот метод
С момента:
1.5

isXIncludeAware

public boolean isXIncludeAware()

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

Возвращает:
текущее состояние обработки XInclude
Исключения:
UnsupportedOperationException - Когда реализация не переопределяет этот метод
С момента:
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.

Spec-Zone.ru

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