Spec-Zone.ru › OpenJDK 8

Класс XPathFactory

  • java.lang.Object
    • javax.xml.xpath.XPathFactory

public abstract class XPathFactory
extends Object

Объект типа XPathFactory может быть использован для создания объектов XPath.

См. newInstance(String uri) для механизма поиска.

Класс XPathFactory не является потокобезопасным. Другими словами, ответственность приложения состоит в том, чтобы гарантировать, что в любой момент времени не более одного потока использует объект XPathFactory.

XPathFactory не является рекурсивным. Пока один из методов newInstance вызывается, приложениям не следует пытаться рекурсивно вызвать метод newInstance, даже из того же потока.

Since:
1.5

Поля

Модификатор и тип Поле и описание
static String DEFAULT_OBJECT_MODEL_URI

URI модели объекта по умолчанию.

static String DEFAULT_PROPERTY_NAME

Имя свойства по умолчанию в соответствии со спецификацией JAXP.

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

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

Защищённый конструктор, так как для создания нового экземпляра XPathFactory необходимо использовать newInstance() или newInstance(String uri) или newInstance(String uri, String factoryClassName, ClassLoader classLoader).

Методы

Модификатор и тип Метод и описание
abstract boolean getFeature(String name)

Получить состояние указанного функционального элемента.

abstract boolean isObjectModelSupported(String objectModel)

Поддерживает ли этот XPathFactory указанную модель объекта?

static XPathFactory newInstance()

Получить новый экземпляр XPathFactory, используя модель объекта по умолчанию, DEFAULT_OBJECT_MODEL_URI, W3C DOM.

static XPathFactory newInstance(String uri)

Получить новый экземпляр XPathFactory, используя указанную модель объекта.

static XPathFactory newInstance(String uri, String factoryClassName, ClassLoader classLoader)

Получить новый экземпляр XPathFactory из имени класса фабрики.

abstract XPath newXPath()

Возвращает новый XPath, используя базовую модель объекта, определённую при создании XPathFactory.

abstract void setFeature(String name, boolean value)

Установить функциональный элемент для этого XPathFactory и XPath, созданных этой фабрикой.

abstract void setXPathFunctionResolver(XPathFunctionResolver resolver)

Установить решатель функций по умолчанию.

abstract void setXPathVariableResolver(XPathVariableResolver resolver)

Установить решатель переменных по умолчанию.

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

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

Поля

DEFAULT_PROPERTY_NAME

public static final String DEFAULT_PROPERTY_NAME

Имя свойства по умолчанию в соответствии со спецификацией JAXP.

См. также:
Значения постоянных полей

DEFAULT_OBJECT_MODEL_URI

public static final String DEFAULT_OBJECT_MODEL_URI

URI модели объекта по умолчанию.

См. также:
Значения постоянных полей

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

XPathFactory

protected XPathFactory()

Защищённый конструктор, поскольку для создания нового экземпляра XPathFactory, следует использовать newInstance() или newInstance(String uri) или newInstance(String uri, String factoryClassName, ClassLoader classLoader).

Методы

newInstance

public static XPathFactory newInstance()

Получить новый экземпляр XPathFactory с использованием модели объекта по умолчанию, DEFAULT_OBJECT_MODEL_URI, W3C DOM.

Этот метод функционально эквивалентен:

newInstance(DEFAULT_OBJECT_MODEL_URI)

Поскольку реализация для W3C DOM всегда доступна, этот метод никогда не потерпит неудачу.

Возвращает:
Экземпляр XPathFactory.
Бросает:
RuntimeException - При возникновении ошибки при создании экземпляра XPathFactory для модели объекта по умолчанию.

newInstance

public static XPathFactory newInstance(String uri)
                                throws XPathFactoryConfigurationException

Получить новый экземпляр XPathFactory с использованием указанной модели объекта.

Для поиска объекта XPathFactory, этот метод ищет в следующих местах в указанном порядке, где «загрузчик классов» относится к контекстному загрузчику классов:

  1. Если присутствует системная переменная DEFAULT_PROPERTY_NAME + «:uri», где uri — параметр этого метода, то её значение читается как имя класса. Метод попытается создать новый экземпляр этого класса, используя загрузчик классов, и вернёт его, если создание будет успешным.
  2. Читается ${java.home}/lib/jaxp.properties, и ищется значение, связанное с вышеуказанной системной переменной. При наличии значение обрабатывается так же, как и выше.
  3. Используются средства загрузки поставщиков услуг, определённые классом ServiceLoader, для попытки найти и загрузить реализацию сервиса с использованием стандартного механизма загрузки: средство загрузки поставщика услуг будет использовать текущий контекстный загрузчик классов потока для попытки загрузки сервиса. Если контекстный загрузчик классов равен null, будет использован системный загрузчик классов.
    Каждый потенциальный поставщик услуг должен реализовать метод isObjectModelSupported(String objectModel). Первый найденный поставщик услуг, поддерживающий указанную модель объекта, возвращается.
    В случае ServiceConfigurationError будет выброшено исключение XPathFactoryConfigurationException.
  4. Платеформа по умолчанию XPathFactory определяется платформенно-специфичным образом. Должен существовать платформенный XPathFactory по умолчанию для W3C DOM, т.е. DEFAULT_OBJECT_MODEL_URI.

Если всё провалится, будет выброшено исключение XPathFactoryConfigurationException.

Совет по устранению неполадок:

См. Properties.load(java.io.InputStream) для точного понимания того, как парсируется файл свойств. В частности, двоеточия ':' должны быть экранированы в файле свойств, поэтому убедитесь, что URI в нём должным образом экранированы. Например:

http\://java.sun.com/jaxp/xpath/dom=org.acme.DomXPathFactory
Параметры:
uri - Определяет базовую модель объекта. Спецификация определяет только URI DEFAULT_OBJECT_MODEL_URI, http://java.sun.com/jaxp/xpath/dom для W3C DOM, пакета org.w3c.dom, и реализации могут свободно добавлять другие URI для других моделей объектов.
Возвращает:
Экземпляр XPathFactory.
Бросает:
XPathFactoryConfigurationException - Если указанная модель объекта недоступна или есть ошибка конфигурации.
NullPointerException - Если uri является null.
IllegalArgumentException - Если uri является null или uri.length() == 0.

newInstance

public static XPathFactory newInstance(String uri,
                                       String factoryClassName,
                                       ClassLoader classLoader)
                                throws XPathFactoryConfigurationException

Получить новый экземпляр XPathFactory из имени класса фабрики. XPathFactory возвращается, если указанный класс фабрики поддерживает указанную модель объекта. Эта функция полезна, когда в классе пути существует несколько поставщиков. Она предоставляет больше контроля приложению, так как оно может указать, какой поставщик должен быть загружен.

Совет по устранению неполадок

Установка системной переменной jaxp.debug заставит этот метод выводить много отладочных сообщений в System.err о том, что он делает и где ищет.

Если у вас возникли проблемы, попробуйте:

java -Djaxp.debug=1 YourProgram ....
Параметры:
uri - Определяет базовую модель объекта. Спецификация определяет только URI DEFAULT_OBJECT_MODEL_URI,http://java.sun.com/jaxp/xpath/dom для W3C DOM, пакета org.w3c.dom, и реализации могут свободно добавлять другие URI для других моделей объектов.
factoryClassName - Полное имя класса фабрики, который предоставляет реализацию javax.xml.xpath.XPathFactory.
classLoader - ClassLoader используемый для загрузки класса фабрики. Если null текущий контекстный загрузчик классов Thread используется для загрузки класса фабрики.
Возвращает:
Новый экземпляр XPathFactory
Бросает:
XPathFactoryConfigurationException - если factoryClassName является null, или класс фабрики не может быть загружен, создан, или класс фабрики не поддерживает модель объекта, указанную в параметре uri.
NullPointerException - Если uri является null.
IllegalArgumentException - Если uri является null или uri.length() == 0.
С тех пор:
1.6
См. также:
newInstance(), newInstance(String uri)

isObjectModelSupported

public abstract boolean isObjectModelSupported(String objectModel)

Поддерживает ли эта XPathFactory указанную модель объекта?

Параметры:
objectModel - Указывает модель объекта, которую возвращённый XPathFactory будет понимать.
Возвращает:
true если XPathFactory поддерживает objectModel, иначе false.
Бросает:
NullPointerException - Если objectModel является null.
IllegalArgumentException - Если objectModel.length() == 0.

setFeature

public abstract void setFeature(String name,
                                boolean value)
                         throws XPathFactoryConfigurationException

Установить свойство для этого XPathFactory и XPaths, созданных этой фабрикой.

Имена свойств — полностью квалифицированные URIs. Реализации могут определять свои собственные свойства. Если это XPathFactory или созданные им XPaths не могут поддерживать свойство, то выбрасывается исключение XPathFactoryConfigurationException. Возможно, XPathFactory может экспонировать значение свойства, но не может изменить его состояние.

Все реализации обязаны поддерживать свойство XMLConstants.FEATURE_SECURE_PROCESSING. Когда свойство установлено в true, любая ссылка на внешнюю функцию является ошибкой. В этих условиях реализация не должна вызывать XPathFunctionResolver и должна выбросить исключение XPathFunctionException.

Параметры:
name - Имя свойства.
value - Является ли состояние свойства true или false.
Бросает:
XPathFactoryConfigurationException - если это XPathFactory или созданные им XPaths не могут поддерживать это свойство.
NullPointerException - если name является null.

getFeature

public abstract boolean getFeature(String name)
                            throws XPathFactoryConfigurationException

Получить состояние указанного свойства.

Имена свойств — полностью квалифицированные URIs. Реализации могут определять свои собственные свойства. Если это XPathFactory или созданные им XPaths не могут поддерживать свойство, то выбрасывается исключение XPathFactoryConfigurationException. Возможно, XPathFactory может экспонировать значение свойства, но не может изменить его состояние.

Параметры:
name - Имя свойства.
Возвращает:
Состояние указанного свойства.
Бросает:
XPathFactoryConfigurationException - если это XPathFactory или созданные им XPaths не могут поддерживать это свойство.
NullPointerException - если name является null.

setXPathVariableResolver

public abstract void setXPathVariableResolver(XPathVariableResolver resolver)

Установить обработчик переменных по умолчанию.

Любые объекты XPath созданные из этой фабрики, будут использовать указанный обработчик по умолчанию.

Исключение resolver будет выброшено, если resolver является null.

Параметры:
resolver - Обработчик переменных.
Бросает:
NullPointerException - Если resolver является null.

setXPathFunctionResolver

public abstract void setXPathFunctionResolver(XPathFunctionResolver resolver)

Установить обработчик функций по умолчанию.

Любые объекты XPath созданные из этой фабрики, будут использовать указанный обработчик по умолчанию.

Исключение NullPointerException будет выброшено, если resolver является null.

Параметры:
resolver - Обработчик функций XPath.
Бросает:
NullPointerException - Если resolver является null.

newXPath

public abstract XPath newXPath()

Возвращает новый XPath, использующий базовую модель объекта, определённую при создании XPathFactory.

Возвращает:
Новый экземпляр XPath.

© 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