Spec-Zone.ru › OpenJDK 27

Класс 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
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, является ли другой объект «равным» этому объекту.
protected void finalize()
Устарел, планируется удаление: этот элемент API планируется удалить в будущей версии.
Финализация устарела и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Переводит текущий поток в состояние ожидания до пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Переводит текущий поток в состояние ожидания до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного интервала реального времени.
final void wait(long timeoutMillis, int nanos)
Переводит текущий поток в состояние ожидания до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного интервала реального времени.

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

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, 2026, 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.

Spec-Zone.ru

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