|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.xml.validation
类 Validator
java.lang.Object javax.xml.validation.Validator
-
public abstract class Validator
- extends Object
根据 Schema
检查 XML 文档的处理器。
验证器是线程不安全的、非重入的对象。换句话说,应用程序负责确保在任意给定时刻不能有多个线程使用 Validator
对象,且当调用 validate 方法时,应用程序不能以递归方式调用 validate 方法。
注意,当 validate(javax.xml.transform.Source)
和 validate(javax.xml.transform.Source, javax.xml.transform.Result)
方法带有 Source
实例时,Source
实例必须为 SAXSource
或 DOMSource
。
- 从以下版本开始:
- 1.5
构造方法摘要 | |
---|---|
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 |
构造方法详细信息 |
---|
Validator
protected Validator()
-
派生类的构造方法。
构造方法不执行动作。
派生类必须创建具有 null
ErrorHandler
和 nullLSResourceResolver
的Validator
对象。
方法详细信息 |
---|
reset
public abstract void reset()
-
将此
Validator
重置为其初始配置。Validator
被重置为通过Schema.newValidator()
创建它时的状态。reset()
在设计上旨在允许重用现有的Validator
,从而节省与创建新的Validator
相关的资源。不保证重置的
Validator
具有相同的LSResourceResolver
或ErrorHandler
Object
,例如Object.equals(Object obj)
。但保证具有功能相等的LSResourceResolver
和ErrorHandler
。 -
validate
public void validate(Source source) throws SAXException, IOException
-
验证指定的输入。
这只是以下方法的一种便捷方法:
validate(source,null);
validate
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)
setErrorHandler
public abstract void setErrorHandler(ErrorHandler errorHandler)
-
设置
ErrorHandler
以接收在validate
方法调用期间遇到的错误。错误处理程序可用于自定义验证期间的错误处理过程。当设置
ErrorHandler
时,验证期间发现的错误将首先被发送到ErrorHandler
。错误处理程序通过抛出来自处理程序的
SAXException
可以立即中止进一步的验证。例如,它可以将错误打印到屏幕上,并尝试通过从ErrorHandler
正常返回来继续该验证。如果从
ErrorHandler
抛出任何Throwable
,则validate
方法的调用方将接收相同的Throwable
对象。Validator
未首先向ErrorHandler
报告之前,不能抛出SAXException
。当
ErrorHandler
为 null 时,实现的行为就好像设置了以下ErrorHandler
一样。class DraconianErrorHandler implements
ErrorHandler
{ public void fatalError(SAXParseException
e ) throwsSAXException
{ throw e; } public void error(SAXParseException
e ) throwsSAXException
{ throw e; } public void warning(SAXParseException
e ) throwsSAXException
{ // noop } }当创建新
Validator
对象时,此字段在初始化时被设置为 null。 -
- 参数:
errorHandler
- 要设置的新错误处理程序。此参数可以为 null。
getErrorHandler
public abstract ErrorHandler getErrorHandler()
-
获取设置为此
Validator
的当前ErrorHandler
。 -
- 返回:
-
此方法返回通过
setErrorHandler(ErrorHandler)
方法设置的最后一个对象,如果自从创建此Validator
以来一直未调用该方法,则返回 null。 - 另请参见:
setErrorHandler(ErrorHandler)
setResourceResolver
public abstract void setResourceResolver(LSResourceResolver resourceResolver)
-
设置
LSResourceResolver
以自定义验证期间的资源解析。在验证期间,
Validator
在需要查找外部资源时使用LSResourceResolver
,虽然“查找外部资源”的准确含义取决于每种模式语言。当
LSResourceResolver
为 null 时,实现的行为就好像设置了以下LSResourceResolver
一样。class DumbLSResourceResolver implements
LSResourceResolver
{ publicLSInput
resolveResource( String publicId, String systemId, String baseURI) { return null; // always return null } }如果
LSResourceResolver
抛出RuntimeException
(或其派生类的实例),则Validator
将中止分析,且validate
方法的调用方将接收相同的RuntimeException
。当创建新
Validator
对象时,此字段在初始化时被设置为 null。 -
- 参数:
resourceResolver
- 要设置的新资源解析器。此参数可以为 null。
getResourceResolver
public abstract LSResourceResolver getResourceResolver()
-
获取设置为此
Validator
的当前LSResourceResolver
。 -
- 返回:
-
此方法返回通过
setResourceResolver(LSResourceResolver)
方法设置的最后一个对象,如果自从创建此Validator
以来一直未调用该方法,则返回 null。 - 另请参见:
setErrorHandler(ErrorHandler)