JavaTM 2 Platform
Standard Ed. 5.0

javax.xml.xpath
类 XPathFactory

java.lang.Object
  继承者 javax.xml.xpath.XPathFactory

public abstract class XPathFactory
extends Object

XPathFactory 实例可用于创建 XPath 对象。

有关查找机制,请参阅 newInstance(String uri)

从以下版本开始:
1.5

字段摘要
static String DEFAULT_OBJECT_MODEL_URI
          默认 Object Model URI。
static String DEFAULT_PROPERTY_NAME
          遵守 JAXP 规范的默认属性名称。
 
构造方法摘要
protected XPathFactory()
          应使用像 newInstance()newInstance(String uri) 这样的受保护的构造方法创建 XPathFactory 的新实例。
 
方法摘要
abstract  boolean getFeature(String name)
          获取指定功能的状态。
abstract  boolean isObjectModelSupported(String objectModel)
          此 XPathFactory 是否支持指定的对象模型
static XPathFactory newInstance()
          获取使用默认对象模型 DEFAULT_OBJECT_MODEL_URI(即 W3C DOM)的新 XPathFactory 实例。
static XPathFactory newInstance(String uri)
          获取使用指定对象模型的新 XPathFactory 实例。
abstract  XPath newXPath()
          返回实例化 XPathFactory 时所确定的使用基础对象模型的新 XPath
abstract  void setFeature(String name, boolean value)
          设置此工厂所创建的此 XPathFactoryXPath 的功能。
abstract  void setXPathFunctionResolver(XPathFunctionResolver resolver)
          建立默认函数解析器。
abstract  void setXPathVariableResolver(XPathVariableResolver resolver)
          建立默认变量解析器。
 
从类 java.lang.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

默认 Object Model URI。

另请参见:
常量字段值
构造方法详细信息

XPathFactory

protected XPathFactory()

应使用像 newInstance()newInstance(String uri) 这样的受保护的构造方法创建 XPathFactory 的新实例。

方法详细信息

newInstance

public static final XPathFactory newInstance()

获取使用默认对象模型 DEFAULT_OBJECT_MODEL_URI(即 W3C DOM)的新 XPathFactory 实例。

此方法的功能等效于:

   newInstance(DEFAULT_OBJECT_MODEL_URI)
 

因为 W3C DOM 的实现总是可用的,因此此方法永远不会失败。

返回:
XPathFactory 的实例。

newInstance

public static final XPathFactory newInstance(String uri)
                                      throws XPathFactoryConfigurationException

获取使用指定对象模型的新 XPathFactory 实例。

为了查找 XPathFactory 对象,此方法按以下顺序查找以下位置,其中“类加载器”指上下文类加载器:

  1. 如果存在系统属性 DEFAULT_PROPERTY_NAME + ":uri"(其中 uri 是此方法的参数),则其值作为类名称读取。该方法将试图通过使用类加载器创建此类的新实例,如果创建成功,则返回它。
  2. 读取 ${java.home}/lib/jaxp.properties,并查找与作为系统属性的键关联的值。如果存在,则按上面的方式处理该值。
  3. 类加载器要求服务提供程序的提供程序配置文件与资源目录 META-INF/services 中的 javax.xml.xpath.XPathFactory 匹配。参见文件格式和解析规则的 JAR File Specification。每个可能的服务提供程序均要实现该方法:
           isObjectModelSupported(String objectModel)
         
    返回支持指定对象模型的类加载器顺序中的首个服务提供程序。
  4. 以特定于平台的方式来定位平台默认的 XPathFactory。必须存在 W3C DOM 的平台默认 的 XPathFactory,即 DEFAULT_OBJECT_MODEL_URI

如果这些都失败,则抛出 XPathFactoryConfigurationException

疑难解答提示:

有关如何精确解析属性文件的信息,请参阅 Properties.load(java.io.InputStream)。尤其是,冒号 ':'在属性文件中需要转义,因此要确保 URI 在其中进行正确转义。例如:

   http\://java.sun.com/jaxp/xpath/dom=org.acme.DomXPathFactory
 

参数:
uri - 标识基础对象模型。规范只定义了 URI DEFAULT_OBJECT_MODEL_URI,有关 W3C DOM 和 org.w3c.dom 包,请参阅 http://java.sun.com/jaxp/xpath/dom,实现可随意引入其他对象模型的其他 URI。
返回:
XPathFactory 的实例。
抛出:
XPathFactoryConfigurationException - 如果指定的对象模型不可用。
NullPointerException - 如果 urinull
IllegalArgumentException - 如果 uri.length() == 0

isObjectModelSupported

public abstract boolean isObjectModelSupported(String objectModel)

XPathFactory 是否支持指定的对象模型

参数:
objectModel - 指定返回的 XPathFactory 理解的对象模型。
返回:
如果 XPathFactory 支持 objectModel,则返回 true,否则返回 false
抛出:
NullPointerException - 如果 objectModelnull
IllegalArgumentException - 如果 objectModel.length() == 0

setFeature

public abstract void setFeature(String name,
                                boolean value)
                         throws XPathFactoryConfigurationException

设置此工厂所创建的此 XPathFactoryXPath 的功能。

功能名称是完全限定的 URI。实现可以定义它们自己的功能。如果此 XPath 或其创建的 XPathFactory 不支持该功能,则抛出 XPathFactoryConfigurationExceptionXPathFactory 可以公开功能值,但不能更改其状态。

所有实现必须支持 XMLConstants.FEATURE_SECURE_PROCESSING 功能。当功能为 true 时,任何对外部函数的引用均是错误的。在这些条件下,实现不能调用 XPathFunctionResolver 且必须抛出 XPathFunctionException

参数:
name - 功能名称。
value - 功能状态为 truefalse
抛出:
XPathFactoryConfigurationException - 如果其创建的此 XPathFactoryXPath 不支持此功能。
NullPointerException - 如果 namenull

getFeature

public abstract boolean getFeature(String name)
                            throws XPathFactoryConfigurationException

获取指定功能的状态。

功能名称是完全限定的 URI。实现可以定义它们自己的功能。如果此 XPath 或其创建的 XPathFactory 不支持该功能,则抛出 XPathFactoryConfigurationExceptionXPathFactory 可以公开功能值,但不能更改其状态。

参数:
name - 功能名称。
返回:
指定功能的状态。
抛出:
XPathFactoryConfigurationException - 如果其创建的此 XPathFactoryXPath 不支持此功能。
NullPointerException - 如果 namenull

setXPathVariableResolver

public abstract void setXPathVariableResolver(XPathVariableResolver resolver)

建立默认变量解析器。

从此工厂构造的任何 XPath 对象将默认使用指定的解析器。

如果 resolvernull,则抛出 NullPointerException

参数:
resolver - Variable 解析器。
抛出:
NullPointerException - 如果 resolvernull

setXPathFunctionResolver

public abstract void setXPathFunctionResolver(XPathFunctionResolver resolver)

建立默认函数解析器。

从此工厂构造的任何 XPath 对象将默认使用指定的解析器。

如果 resolvernull,则抛出 NullPointerException

参数:
resolver - XPath 函数解析器。
抛出:
NullPointerException - 如果 resolvernull

newXPath

public abstract XPath newXPath()

返回实例化 XPathFactory 时所确定的使用基础对象模型的新 XPath

返回:
XPath 的新实例。

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策