Класс 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 |
Защищённый конструктор, так как 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) для точного понимания того, как парсится файл свойств. В частности, двоеточия ':' должны быть экранированы в файле свойств, поэтому убедитесь, что 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- Класс загрузчика, используемый для загрузки класса фабрики. Если используется текущий контекст загрузчик классовnull. - Возвращает:
- Новый экземпляр
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.
- Параметры:
-
resolver- Решатель переменных. - Выбрасывает:
-
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, 2023, 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/21/docs/api/java.xml/javax/xml/xpath/XPathFactory.html