Spec-Zone.ru › OpenJDK 25

Класс XPathFactory

java.lang.Object
javax.xml.xpath.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.

Краткое описание конструкторов

XPathFactory()
Модификатор Конструктор Описание
protected
Защищенный конструктор, поскольку для создания нового экземпляра XPathFactory следует использовать newInstance(), newInstance(String uri) или newInstance(String uri, String factoryClassName, ClassLoader classLoader).

Краткое описание методов

Модификатор и тип Метод Описание
abstract boolean getFeature(String name)
Получает состояние указанной функции.
String getProperty(String name)
Возвращает значение указанного свойства.
abstract boolean isObjectModelSupported(String objectModel)
Поддерживается ли указанная модель объектов этой XPathFactory?
static XPathFactory newDefaultInstance()
Создает новый экземпляр встроенной реализации XPathFactory, используемой по умолчанию в системе.
static XPathFactory newInstance()
Получает новый экземпляр XPathFactory с использованием модели объектов по умолчанию — DEFAULT_OBJECT_MODEL_URI, W3C DOM.
static XPathFactory newInstance(String uri)
Получает новый экземпляр XPathFactory с использованием указанной модели объектов.
static XPathFactory newInstance(String uri, String factoryClassName, ClassLoader classLoader)
Получает новый экземпляр XPathFactory по имени класса фабрики.
abstract XPath newXPath()
Возвращает новый XPath с использованием базовой модели объектов, определенной при создании экземпляра XPathFactory.
abstract void setFeature(String name, boolean value)
Устанавливает функцию для этой XPathFactory.
void setProperty(String name, String value)
Устанавливает свойство для этой XPathFactory.
abstract void setXPathFunctionResolver(XPathFunctionResolver resolver)
Задает обработчик функций по умолчанию.
abstract void setXPathVariableResolver(XPathVariableResolver resolver)
Задает обработчик переменных по умолчанию.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание полей

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 — определяет базовую модель объектов. Спецификация определяет только URI DEFAULT_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 — определяет базовую модель объектов. Спецификация определяет только URI DEFAULT_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
См. также:
  • newInstance()
  • newInstance(String uri)

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры основных понятий, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее дочерних компаний в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее дочерние компании, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API