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)
          设置此工厂所创建的此 XPathFactory 和 XPath 的功能。
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 - 如果 uri 为 null。
IllegalArgumentException - 如果 uri.length() == 0。

isObjectModelSupported

public abstract boolean isObjectModelSupported(String objectModel)

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

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

setFeature

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

设置此工厂所创建的此 XPathFactory 和 XPath 的功能。

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

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

setXPathVariableResolver

public abstract void setXPathVariableResolver(XPathVariableResolver resolver)

建立默认变量解析器。

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

如果 resolver 为 null,则抛出 NullPointerException。

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

setXPathFunctionResolver

public abstract void setXPathFunctionResolver(XPathFunctionResolver resolver)

建立默认函数解析器。

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

如果 resolver 为 null,则抛出 NullPointerException。

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

newXPath

public abstract XPath newXPath()

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

返回:
XPath 的新实例。

JavaTM 2 Platform
Standard Ed. 5.0

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

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