Класс XPathFactory
public abstract class XPathFactory extends Object
Экземпляр XPathFactory можно использовать для создания объектов XPath.
Описание механизма поиска см. в разделе newInstance(String uri).
Класс XPathFactory не является потокобезопасным. Иными словами, приложение отвечает за то, чтобы в каждый момент времени объект XPathFactory использовал не более чем один поток. Реализациям рекомендуется помечать методы как synchronized, чтобы защититься от некорректных клиентов.
XPathFactory не является реентерабельным. Во время вызова одного из методов newInstance приложения не должны пытаться рекурсивно вызывать метод newInstance, даже из того же потока.
- С версии:
- 1.5
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final String |
DEFAULT_OBJECT_MODEL_URI |
URI модели объектов по умолчанию. |
static final String |
DEFAULT_PROPERTY_NAME |
Имя свойства по умолчанию согласно спецификации JAXP. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Защищённый конструктор. Для создания экземпляра XPathFactory следует использовать newInstance(), newInstance(String uri) или newInstance(String uri, String factoryClassName, ClassLoader classLoader). |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract boolean |
getFeature |
Получает состояние именованной функции. |
String |
getProperty |
Возвращает значение указанного свойства. |
abstract boolean |
isObjectModelSupported |
Поддерживается ли указанная модель объектов этим XPathFactory? |
static XPathFactory |
newDefaultInstance() |
Создаёт новый экземпляр встроенной системной реализации XPathFactory. |
static XPathFactory |
newInstance() |
Получает новый экземпляр XPathFactory с использованием модели объектов по умолчанию — DEFAULT_OBJECT_MODEL_URI, W3C DOM. |
static XPathFactory |
newInstance |
Получает новый экземпляр XPathFactory с использованием указанной модели объектов. |
static XPathFactory |
newInstance |
Получает новый экземпляр XPathFactory по имени класса фабрики. |
abstract XPath |
newXPath() |
Возвращает новый XPath с использованием базовой модели объектов, определённой при создании экземпляра XPathFactory. |
abstract void |
setFeature |
Задаёт функцию для этого XPathFactory. |
void |
setProperty |
Задаёт свойство для этого XPathFactory. |
abstract void |
setXPathFunctionResolver |
Задаёт разрешитель функций по умолчанию. |
abstract void |
setXPathVariableResolver |
Задаёт разрешитель переменных по умолчанию. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Указывает, является ли другой объект «равным» этому объекту. |
protected void |
finalize() |
Устарел, планируется удаление: этот элемент API планируется удалить в будущей версии. Финализация устарела и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Переводит текущий поток в состояние ожидания до пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Переводит текущий поток в состояние ожидания до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного интервала реального времени. |
final void |
wait |
Переводит текущий поток в состояние ожидания до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного интервала реального времени. |
Подробное описание полей
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).
Подробное описание методов
newDefaultInstance
public static XPathFactory newDefaultInstance()
XPathFactory.- Требования к реализации:
- Встроенная системная реализация
XPathFactoryдолжна поддерживать толькоdefault object model— W3C DOM, — но может поддерживать и дополнительные модели объектов. - Возвращает:
- Новый экземпляр встроенной системной реализации
XPathFactory. - С версии:
- 9
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 с использованием указанной модели объектов. Этот метод использует механизм поиска JAXP для определения и загрузки реализации XPathFactory, поддерживающей указанную модель объектов. Совет по устранению неполадок:
Точное описание разбора файла свойств см. в разделе Properties.load(java.io.InputStream). В частности, в файле свойств двоеточия «:» необходимо экранировать, поэтому убедитесь, что URI в нём экранированы правильно. Например:
http\://java.sun.com/jaxp/xpath/dom=org.acme.DomXPathFactory
- Параметры:
-
uri— определяет базовую модель объектов. Спецификация задаёт только URIDEFAULT_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— определяет базовую модель объектов. Спецификация задаёт только URIDEFAULT_OBJECT_MODEL_URI,http://java.sun.com/jaxp/xpath/domдля W3C DOM, пакета org.w3c.dom; реализации могут вводить другие URI для иных моделей объектов. -
factoryClassName— полное имя класса фабрики, предоставляющего реализациюjavax.xml.xpath.XPathFactory. -
classLoader—ClassLoader, используемый для загрузки класса фабрики. Еслиnull, для загрузки класса фабрики используется контекстный ClassLoader текущегоThread. - Возвращает:
- Новый экземпляр
XPathFactory - Вызывает:
-
XPathFactoryConfigurationException— еслиfactoryClassNameимеет значениеnull, класс фабрики не удаётся загрузить или создать либо класс фабрики не поддерживает модель объектов, указанную в параметреuri. -
NullPointerException— еслиuriимеет значениеnull. -
IllegalArgumentException— еслиuriимеет значениеnullилиuri.length() == 0. - С версии:
- 1.6
- См. также:
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. Функция применяется к объектам XPath, создаваемым XPathFactory. Она не влияет на уже созданные объекты XPath. Имена функций представляют собой полные URI. Реализации могут определять собственные функции. Если этот XPathFactory или создаваемые им XPath не поддерживают функцию, выбрасывается исключение XPathFactoryConfigurationException. XPathFactory может предоставлять значение функции, но не иметь возможности изменить её состояние.
Все реализации должны поддерживать функцию XMLConstants.FEATURE_SECURE_PROCESSING. Если функция имеет значение true, любая ссылка на внешнюю функцию считается ошибкой. В этих условиях реализация не должна вызывать XPathFunctionResolver и должна выбросить исключение XPathFunctionException.
- Параметры:
-
name— имя функции. -
value— имеет ли функция состояниеtrueилиfalse. - Вызывает:
-
XPathFactoryConfigurationException— если этотXPathFactoryили создаваемые имXPathне поддерживают эту функцию. -
NullPointerException— еслиnameимеет значениеnull.
getFeature
public abstract boolean getFeature(String name) throws XPathFactoryConfigurationException
Получает состояние именованной функции.
Имена функций представляют собой полные URI. Реализации могут определять собственные функции. Если этот XPathFactory или создаваемые им XPath не поддерживают функцию, выбрасывается исключение XPathFactoryConfigurationException. XPathFactory может предоставлять значение функции, но не иметь возможности изменить её состояние.
- Параметры:
-
name— имя функции. - Возвращает:
- Состояние именованной функции.
- Вызывает:
-
XPathFactoryConfigurationException— если этотXPathFactoryили создаваемые имXPathне поддерживают эту функцию. -
NullPointerException— еслиnameимеет значениеnull.
setXPathVariableResolver
public abstract void setXPathVariableResolver(XPathVariableResolver resolver)
Задаёт разрешитель переменных по умолчанию.
Все объекты XPath, созданные этой фабрикой, по умолчанию будут использовать указанный разрешитель.
Если resolver имеет значение null, выбрасывается исключение NullPointerException.
- Параметры:
-
resolver— разрешитель переменных. - Вызывает:
-
NullPointerException— еслиresolverимеет значениеnull.
setXPathFunctionResolver
public abstract void setXPathFunctionResolver(XPathFunctionResolver resolver)
Задаёт разрешитель функций по умолчанию.
Все объекты XPath, созданные этой фабрикой, по умолчанию будут использовать указанный разрешитель.
Если resolver имеет значение null, выбрасывается исключение NullPointerException.
- Параметры:
-
resolver— разрешитель функций XPath. - Вызывает:
-
NullPointerException— еслиresolverимеет значениеnull.
newXPath
public abstract XPath newXPath()
Возвращает новый XPath с использованием базовой модели объектов, определённой при создании экземпляра XPathFactory.
- Возвращает:
- Новый экземпляр
XPath.
setProperty
public void setProperty(String name, String value)
XPathFactory. Свойство применяется к объектам XPath, создаваемым XPathFactory. Оно не влияет на уже созданные объекты XPath. Свойство можно определить в этом XPathFactory или в базовой реализации.
- Требования к реализации:
- Реализация по умолчанию выбрасывает
UnsupportedOperationException. - Параметры:
-
name— имя свойства -
value— значение свойства - Вызывает:
-
IllegalArgumentException— если имя свойства не распознано или значение не может быть присвоено -
UnsupportedOperationException— если реализация не поддерживает этот метод -
NullPointerException— еслиnameимеет значениеnull - С версии:
- 18
getProperty
public String getProperty(String name)
- Требования к реализации:
- Реализация по умолчанию выбрасывает
UnsupportedOperationException. - Параметры:
-
name— имя свойства - Возвращает:
- значение свойства.
- Вызывает:
-
IllegalArgumentException— если имя свойства не распознано -
UnsupportedOperationException— если реализация не поддерживает этот метод -
NullPointerException— еслиnameимеет значениеnull - С версии:
- 18
© 1993, 2025, 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.