|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjavax.xml.validation.Validator
public abstract class Validator
根据 Schema 检查 XML 文档的处理器。
验证器是线程不安全的、非重入的对象。换句话说,应用程序负责确保在任意给定时刻不能有多个线程使用 Validator 对象,且当调用 validate 方法时,应用程序不能以递归方式调用 validate 方法。
注意,当 validate(javax.xml.transform.Source) 和 validate(javax.xml.transform.Source, javax.xml.transform.Result) 方法带有 Source 实例时,Source 实例必须为 SAXSource 或 DOMSource。
| 构造方法摘要 | |
|---|---|
protected |
Validator()
派生类的构造方法。 |
| 方法摘要 | |
|---|---|
abstract ErrorHandler |
getErrorHandler()
获取设置为此 Validator 的当前 ErrorHandler。 |
boolean |
getFeature(String name)
查找功能标志的值。 |
Object |
getProperty(String name)
查找属性值。 |
abstract LSResourceResolver |
getResourceResolver()
获取设置为此 Validator 的当前 LSResourceResolver。 |
abstract void |
reset()
将此 Validator 重置为其初始配置。 |
abstract void |
setErrorHandler(ErrorHandler errorHandler)
设置 ErrorHandler 以接收在 validate 方法调用期间遇到的错误。 |
void |
setFeature(String name,
boolean value)
设置功能标志的值。 |
void |
setProperty(String name,
Object object)
设置属性值。 |
abstract void |
setResourceResolver(LSResourceResolver resourceResolver)
设置 LSResourceResolver 以自定义验证期间的资源解析。 |
void |
validate(Source source)
验证指定的输入。 |
abstract void |
validate(Source source,
Result result)
验证指定输入并将扩充的验证结果发送到指定输出。 |
| 从类 java.lang.Object 继承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 构造方法详细信息 |
|---|
protected Validator()
构造方法不执行动作。
派生类必须创建具有 null ErrorHandler 和 null LSResourceResolver 的 Validator 对象。
| 方法详细信息 |
|---|
public abstract void reset()
将此 Validator 重置为其初始配置。
Validator 被重置为通过 Schema.newValidator() 创建它时的状态。reset() 在设计上旨在允许重用现有的 Validator,从而节省与创建新的 Validator 相关的资源。
不保证重置的 Validator 具有相同的 LSResourceResolver 或 ErrorHandler Object,例如 Object.equals(Object obj)。但保证具有功能相等的 LSResourceResolver 和 ErrorHandler。
public void validate(Source source) throws SAXException, IOException
这只是以下方法的一种便捷方法:
validate(source,null);
public abstract void validate(Source source, Result result) throws SAXException, IOException
此方法对所接受的 Source/Result 的类型设置了以下限制。
Source/Result:SAXSource |
DOMSource |
|
| null | OK | OK |
SAXResult |
OK | Err |
DOMResult |
Err | OK |
注意,不允许使用 StreamSource 实例。 要处理 StreamSource,或验证要处理为另一种类型的 Result 的 Source,请使用恒等转换器(参见 TransformerFactory.newTransformer())。
将验证中发现的错误发送到指定的 ErrorHandler。
如果文档有效,或文档包含某些错误但无致命错误且 ErrorHandler 不抛出任何异常,则该方法正常返回。
source - 要验证的 XML。不能为 null。result - 接收(可能是扩充的)XML 的 Result 对象。如果调用方不需要它,则此参数可以为 null。
注意,当使用 DOMResult 时,验证器可以只是将来自 DOMSource 的相同 DOM 节点传递到 DOMResult(在这种情况下 source.getNode()==result.getNode()),它可能复制整个 DOM 树,或者更改源所给定的节点。
IllegalArgumentException - 如果 Result 类型与 Source 类型不匹配,或者指定的源既不是 SAXSource,也不是 DOMSource。
SAXException - 如果 ErrorHandler 抛出 SAXException,或者发现致命错误且 ErrorHandler 正常返回。
IOException - 如果验证器正在处理 SAXSource 且基础 XMLReader 抛出了 IOException。
NullPointerException - 如果 source 参数为 null。validate(Source)public abstract void setErrorHandler(ErrorHandler errorHandler)
ErrorHandler 以接收在 validate 方法调用期间遇到的错误。
错误处理程序可用于自定义验证期间的错误处理过程。当设置 ErrorHandler 时,验证期间发现的错误将首先被发送到 ErrorHandler。
错误处理程序通过抛出来自处理程序的 SAXException 可以立即中止进一步的验证。例如,它可以将错误打印到屏幕上,并尝试通过从 ErrorHandler 正常返回来继续该验证。
如果从 ErrorHandler 抛出任何 Throwable,则 validate 方法的调用方将接收相同的 Throwable 对象。
Validator 未首先向 ErrorHandler 报告之前,不能抛出 SAXException。
当 ErrorHandler 为 null 时,实现的行为就好像设置了以下 ErrorHandler 一样。
class DraconianErrorHandler implementsErrorHandler{ public void fatalError(SAXParseExceptione ) throwsSAXException{ throw e; } public void error(SAXParseExceptione ) throwsSAXException{ throw e; } public void warning(SAXParseExceptione ) throwsSAXException{ // noop } }
当创建新 Validator 对象时,此字段在初始化时被设置为 null。
errorHandler - 要设置的新错误处理程序。此参数可以为 null。public abstract ErrorHandler getErrorHandler()
Validator 的当前 ErrorHandler。
setErrorHandler(ErrorHandler) 方法设置的最后一个对象,如果自从创建此 Validator 以来一直未调用该方法,则返回 null。setErrorHandler(ErrorHandler)public abstract void setResourceResolver(LSResourceResolver resourceResolver)
LSResourceResolver 以自定义验证期间的资源解析。
在验证期间,Validator 在需要查找外部资源时使用 LSResourceResolver,虽然“查找外部资源”的准确含义取决于每种模式语言。
当 LSResourceResolver 为 null 时,实现的行为就好像设置了以下 LSResourceResolver 一样。
class DumbLSResourceResolver implementsLSResourceResolver{ publicLSInputresolveResource( String publicId, String systemId, String baseURI) { return null; // always return null } }
如果 LSResourceResolver 抛出 RuntimeException(或其派生类的实例),则 Validator 将中止分析,且 validate 方法的调用方将接收相同的 RuntimeException。
当创建新 Validator 对象时,此字段在初始化时被设置为 null。
resourceResolver - 要设置的新资源解析器。此参数可以为 null。public abstract LSResourceResolver getResourceResolver()
Validator 的当前 LSResourceResolver。
setResourceResolver(LSResourceResolver) 方法设置的最后一个对象,如果自从创建此 Validator 以来一直未调用该方法,则返回 null。setErrorHandler(ErrorHandler)public boolean getFeature(String name) throws SAXNotRecognizedException, SAXNotSupportedException
功能名称是任何完全限定的 URI。Validator 有可能识别功能名称,但暂时不能返回其值。某些功能值可能只有在特定上下文中才能使用,例如在验证前、验证中或验证之后。
实现者可随意选择(鼓励)创建自己的功能,方法是使用在它们自己的 URI 上构建的名称。
name - 功能名称,它是非 null 的完全限定 URI。
SAXNotRecognizedException - 如果不能分配或检索功能值。
SAXNotSupportedException - 当 Validator 可以识别功能名称但不能确定其此时的值时。
NullPointerException - 当名称参数为 null 时。setFeature(String, boolean)public void setFeature(String name, boolean value) throws SAXNotRecognizedException, SAXNotSupportedException
功能可用于控制 Validator 分析模式的方法,虽然 Validator 无需识别任何指定的属性名称。
功能名称是任何完全限定的 URI。Validator 有可能公开功能值,但不能更改当前值。某些功能值可能只有在特定上下文中才是不可变的或可变的,例如在验证前、验证中或验证之后。
name - 功能名称,它是非 null 的完全限定 URI。value - 所请求的功能值(true 或 false)。
SAXNotRecognizedException - 如果不能分配或检索功能值。
SAXNotSupportedException - 当 Validator 可以识别功能名称,但不能设置请求的值时。
NullPointerException - 当名称参数为 null 时。getFeature(String)public void setProperty(String name, Object object) throws SAXNotRecognizedException, SAXNotSupportedException
属性名称是任何完全限定的 URI。Validator 有可能识别属性名称,但不能更改当前值。某些属性值可能只有在特定上下文中才是不可变的或可变的,例如在验证前、验证中或验证之后。
Validator 无需识别设置任何指定的属性名称。
name - 属性名称,它是非 null 的完全限定 URI。object - 所请求的属性值。
SAXNotRecognizedException - 如果不能分配或检索属性值。
SAXNotSupportedException - 当 Validator 可以识别属性名称,但不能设置请求的值时。
NullPointerException - 当名称参数为 null 时。public Object getProperty(String name) throws SAXNotRecognizedException, SAXNotSupportedException
属性名称是任何完全限定的 URI。Validator 有可能识别属性名称,但暂时不能返回其值。某些属性值可能只有在特定上下文中才能使用,例如在验证前、验证中或验证之后。
Validator 无需识别任何指定的属性名称。
实现者可随意选择(鼓励)创建自己的属性,方法是使用在它们自己的 URI 上构建的名称。
name - 属性名称,它是非 null 的完全限定 URI。
SAXNotRecognizedException - 如果不能分配或检索属性值。
SAXNotSupportedException - 当 XMLReader 可以识别属性名称,但不能确定其此时的值时。
NullPointerException - 当名称参数为 null 时。setProperty(String, Object)
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。