|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjavax.xml.xpath.XPathFactory
public abstract class XPathFactory
XPathFactory 实例可用于创建 XPath 对象。
有关查找机制,请参阅 newInstance(String uri)。
XPathFactory 类不是线程安全的。换句话说,应用程序负责确保任意给定时刻最多只有一个线程使用 XPathFactory 对象。建议实现将方法标记为 synchronized 以保护客户端不至于崩溃。
XPathFactory 不可重入。当正在调用某个 newInstance 方法时,应用程序不能试图以递归方式调用 newInstance 方法,即使是从相同的线程调用。
| 字段摘要 | |
|---|---|
static String |
DEFAULT_OBJECT_MODEL_URI
默认 Object Model URI。 |
static String |
DEFAULT_PROPERTY_NAME
遵守 JAXP 规范的默认属性名称。 |
| 构造方法摘要 | |
|---|---|
protected |
XPathFactory()
应使用 newInstance()、newInstance(String uri) 或 newInstance(String uri, String factoryClassName, ClassLoader classLoader) 之类的受保护构造方法创建 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 实例。 |
static XPathFactory |
newInstance(String uri,
String factoryClassName,
ClassLoader classLoader)
根据工厂类名称获取一个新 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 |
| 字段详细信息 |
|---|
public static final String DEFAULT_PROPERTY_NAME
遵守 JAXP 规范的默认属性名称。
public static final String DEFAULT_OBJECT_MODEL_URI
默认 Object Model URI。
| 构造方法详细信息 |
|---|
protected XPathFactory()
应使用 newInstance()、newInstance(String uri) 或 newInstance(String uri, String factoryClassName, ClassLoader classLoader) 之类的受保护构造方法创建 XPathFactory 的新实例。
| 方法详细信息 |
|---|
public static final XPathFactory newInstance()
获取使用默认对象模型 DEFAULT_OBJECT_MODEL_URI(即 W3C DOM)的新 XPathFactory 实例。
此方法的功能等效于:
newInstance(DEFAULT_OBJECT_MODEL_URI)
因为 W3C DOM 的实现总是可用的,因此此方法永远不会失败。
XPathFactory 的实例。
RuntimeException - 创建默认对象模型的 XPathFactory 遇到故障时。
public static final XPathFactory newInstance(String uri)
throws XPathFactoryConfigurationException
获取使用指定对象模型的新 XPathFactory 实例。
为了查找 XPathFactory 对象,此方法按以下顺序查找以下位置,其中“类加载器”指上下文类加载器:
DEFAULT_PROPERTY_NAME + ":uri"(其中 uri 是此方法的参数),则其值作为类名称读取。该方法将试图通过使用类加载器创建此类的新实例,如果创建成功,则返回它。
javax.xml.xpath.XPathFactory 匹配。有关文件格式和解析规则,请参阅 JAR File Specification。每个可能的服务提供者均要实现该方法:
isObjectModelSupported(String objectModel)
返回支持指定对象模型的类加载器顺序中的第一个服务提供者。
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 的 http://java.sun.com/jaxp/xpath/dom、org.w3c.dom 包。至于其他对象模型,实现可随意引入其他 URI。
XPathFactory 的实例。
XPathFactoryConfigurationException - 如果指定的对象模型不可用。
NullPointerException - 如果 uri 为 null。
IllegalArgumentException - 如果 uri 为 null 或 uri.length() == 0。
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、用于 W3C DOM 的 http://java.sun.com/jaxp/xpath/dom、org.w3c.dom 包。至于其他对象模型,实现可随意引入其他 URI。factoryClassName - 完全限定工厂类名称,提供 javax.xml.xpath.XPathFactory 的实现。classLoader - 用来加载工厂类的 ClassLoader。如果为 null,则使用当前 Thread 的上下文 classLoader 来加载工厂类。
XPathFactory 实例
XPathFactoryConfigurationException - 如果 factoryClassName 为 null、工厂类不能被加载或实例化、工厂类不支持 uri 参数中指定的对象模型。
NullPointerException - 如果 uri 为 null。
IllegalArgumentException - 如果 uri 为 null 或 uri.length() == 0。newInstance(),
newInstance(String uri)public abstract boolean isObjectModelSupported(String objectModel)
此 XPathFactory 是否支持指定的对象模型
objectModel - 指定返回的 XPathFactory 理解的对象模型。
XPathFactory 支持 objectModel,则返回 true,否则返回 false。
NullPointerException - 如果 objectModel 为 null。
IllegalArgumentException - 如果 objectModel.length() == 0。
public abstract void setFeature(String name,
boolean value)
throws XPathFactoryConfigurationException
设置此工厂所创建的此 XPathFactory 和 XPath 的功能。
功能名称是完全限定的 URI。实现可以定义它们自己的功能。如果此 XPathFactory 或其创建的 XPath 不支持该功能,则抛出 XPathFactoryConfigurationException。XPathFactory 可以公开功能值,但不能更改其状态。
所有实现必须支持 XMLConstants.FEATURE_SECURE_PROCESSING 功能。当功能为 true 时,任何对外部函数的引用均是错误的。在这些条件下,实现不能调用 XPathFunctionResolver 且必须抛出 XPathFunctionException。
name - 功能名称。value - 功能状态为 true 或 false。
XPathFactoryConfigurationException - 如果此 XPathFactory 或其创建的 XPath 不支持此功能。
NullPointerException - 如果 name 为 null。
public abstract boolean getFeature(String name)
throws XPathFactoryConfigurationException
获取指定功能的状态。
功能名称是完全限定的 URI。实现可以定义它们自己的功能。如果此 XPath 或其创建的 XPathFactory 不支持该功能,则抛出 XPathFactoryConfigurationException。XPathFactory 可以公开功能值,但不能更改其状态。
name - 功能名称。
XPathFactoryConfigurationException - 如果此 XPathFactory 或其创建的 XPath 不支持此功能。
NullPointerException - 如果 name 为 null。public abstract void setXPathVariableResolver(XPathVariableResolver resolver)
建立默认变量解析器。
从此工厂构造的任何 XPath 对象将默认使用指定的解析器。
如果 resolver 为 null,则抛出 NullPointerException。
resolver - 变量解析器。
NullPointerException - 如果 resolver 为 null。public abstract void setXPathFunctionResolver(XPathFunctionResolver resolver)
建立默认函数解析器。
从此工厂构造的任何 XPath 对象将默认使用指定的解析器。
如果 resolver 为 null,则抛出 NullPointerException。
resolver - XPath 函数解析器。
NullPointerException - 如果 resolver 为 null。public abstract XPath newXPath()
返回使用实例化 XPathFactory 时确定的底层对象模型的新 XPath。
XPath 的新实例。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2008 Sun Microsystems, Inc. 保留所有权利。请遵守GNU General Public License, version 2 only。