Класс 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 |
Задает обработчик переменных по умолчанию. |
Подробное описание полей
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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.xml/javax/xml/xpath/XPathFactory.html