Класс XPathFactory
public abstract class XPathFactory extends Object
Экземпляр класса XPathFactory может использоваться для создания объектов XPath.
См. newInstance(String uri) для механизма поиска.
Класс XPathFactory не потокобезопасен. Другими словами, приложение отвечает за обеспечение того, чтобы не более одного потока использовал объект XPathFactory в любой момент времени. Реализации рекомендуют помечать методы как synchronized, чтобы защитить себя от проблемных клиентов.
XPathFactory не является рекурсивным. В то время как один из методов newInstance вызывается, приложения не должны пытаться рекурсивно вызвать метод newInstance, даже из того же потока.
- Since:
- 1.5
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final String |
DEFAULT_OBJECT_MODEL_URI |
URI модели объектов по умолчанию. |
static final String |
DEFAULT_PROPERTY_NAME |
Имя свойства по умолчанию в соответствии со спецификацией JAXP. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Защищенный конструктор, так как следует использовать newInstance() или newInstance(String uri) или newInstance(String uri, String factoryClassName, ClassLoader classLoader) для создания нового экземпляра XPathFactory. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
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), чтобы узнать, как именно парсится файл свойств. В частности, двоеточия ':' необходимо экранировать в файле свойств, поэтому убедитесь, что URIs в нём правильно экранированы. Например:
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контекста текущего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, которые уже созданы. Имена свойств — полностью квалифицированные URIs. Реализации могут определять свои собственные свойства. Бросается исключение XPathFactoryConfigurationException, если этот XPathFactory или созданные им XPath не могут поддерживать данное свойство. Возможна ситуация, когда 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
Возвращает состояние заданного свойства.
Имена свойств — полностью квалифицированные URIs. Реализации могут определять свои собственные свойства. Бросается исключение XPathFactoryConfigurationException, если этот XPathFactory или созданные им XPath не могут поддерживать данное свойство. Возможна ситуация, когда XPathFactory раскрывает значение свойства, но не может изменить его состояние.
- Параметры:
-
name- Имя свойства. - Возвращает:
- Состояние заданного свойства.
- Исключения:
-
XPathFactoryConfigurationException- если этотXPathFactoryили созданные имXPathне могут поддерживать данное свойство. -
NullPointerException- еслиnameявляетсяnull.
setXPathVariableResolver
public abstract void setXPathVariableResolver(XPathVariableResolver resolver)
Установить обработчик переменных по умолчанию.
Любые XPath объекты, созданные из этого фабричного класса, по умолчанию будут использовать указанный обработчик.
Исключение NullPointerException будет брошено, если resolver является null.
- Parameters:
-
resolver- Обработчик переменных. - Throws:
-
NullPointerException- Еслиresolverявляетсяnull.
setXPathFunctionResolver
public abstract void setXPathFunctionResolver(XPathFunctionResolver resolver)
Установить обработчик функций по умолчанию.
Любые XPath объекты, созданные из этого фабричного класса, по умолчанию будут использовать указанный обработчик.
Исключение NullPointerException будет брошено, если resolver является null.
- Parameters:
-
resolver- Обработчик функций XPath. - Throws:
-
NullPointerException- Еслиresolverявляетсяnull.
newXPath
public abstract XPath newXPath()
Возвращает новый XPath, использующий базовую модель объектов, определённую при создании XPathFactory.
- Returns:
- Новый экземпляр
XPath.
setProperty
public void setProperty(String name, String value)
XPathFactory. Свойство применяется к XPath объектам, создаваемым XPathFactory. Оно не влияет на уже созданные XPath объекты. Свойство может быть определено в этом XPathFactory или в базовой реализации.
- Implementation Requirements:
- Базовая реализация выбрасывает
UnsupportedOperationException. - Parameters:
-
name- имя свойства -
value- значение свойства - Throws:
-
IllegalArgumentException- если имя свойства не распознано или значение не может быть назначено -
UnsupportedOperationException- если реализация не поддерживает метод -
NullPointerException- еслиnameявляетсяnull - Since:
- 18
getProperty
public String getProperty(String name)
- Implementation Requirements:
- Базовая реализация выбрасывает
UnsupportedOperationException. - Parameters:
-
name- имя свойства - Returns:
- значение свойства.
- Throws:
-
IllegalArgumentException- если имя свойства не распознано -
UnsupportedOperationException- если реализация не поддерживает метод -
NullPointerException- еслиnameявляетсяnull - Since:
- 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://download.java.net/java/early_access/jdk24/docs/api/java.xml/javax/xml/xpath/XPathFactory.html