Класс 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 |
Защищенный конструктор; для создания нового экземпляра XPathFactory необходимо использовать newInstance(), newInstance(String uri) или newInstance(String uri, String factoryClassName, ClassLoader classLoader). |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract boolean |
getFeature |
Получение состояния указанного параметра. |
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 и экземпляров XPath созданных этой фабрикой. |
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для загрузки класса фабрики. Если используется текущий контекстный класс-загрузчик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 созданных этой фабрикой.
Имена свойств — полностью квалифицированные URI. Реализации могут определять свои собственные свойства. 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
Получает состояние указанного свойства.
Имена свойств — полностью квалифицированные URI. Реализации могут определять свои собственные свойства. 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.
© 1993, 2021, 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/17/docs/api/java.xml/javax/xml/xpath/XPathFactory.html