- java.lang.Object
-
- javax.xml.validation.Validator
-
-
构造方法摘要
构造方法 变量 构造器 描述 protected
Validator()
派生类的构造函数。
-
方法摘要
所有方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 abstract ErrorHandler
getErrorHandler()
获取当前ErrorHandler
设置为这个Validator
。boolean
getFeature(String name)
查找功能标志的值。Object
getProperty(String name)
查找属性的值。abstract LSResourceResolver
getResourceResolver()
获取当前LSResourceResolver
设置为此Validator
。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)
验证指定的输入并将增强的验证结果发送到指定的输出。
-
-
-
方法详细信息
-
reset
public abstract void reset()
将此Validator
重置为其原始配置。Validator
重置为与使用Schema.newValidator()
创建时相同的状态。reset()
旨在允许重用现有的Validator
从而节省与创建新Validator
相关的资源。重置
Validator
不保证具有相同的LSResourceResolver
或ErrorHandler
Object
s,例如Object.equals(Object obj)
。 它保证功能相同LSResourceResolver
和ErrorHandler
。
-
validate
public void validate(Source source) throws SAXException, IOException
验证指定的输入。这只是
validate(Source source, Result result)
的便利方法,result
的null
。- 参数
-
source
- 要验证的XML。 必须是XML文档或XML元素,且不得为null。 为了向后兼容,尝试验证除文档或元素之外的任何内容的结果都是依赖于实现的。 实现必须识别并处理输入或抛出IllegalArgumentException。 - 异常
-
IllegalArgumentException
- 如果Source
是实现无法验证的XML工件(例如,处理指令)。 -
SAXException
- 如果ErrorHandler
抛出SAXException
或者发现致命错误并且ErrorHandler
正常返回。 -
IOException
- 如果验证器正在处理SAXSource
,而底层XMLReader
则抛出IOException
。 -
NullPointerException
- 如果source
是null
。 - 另请参见:
-
validate(Source source, Result result)
-
validate
public abstract void validate(Source source, Result result) throws SAXException, IOException
验证指定的输入并将增强的验证结果发送到指定的输出。这个方法放在该类型的下列限制五一四四三二九�鼍啪帕�一一 / 五万一千四百四十三亿二千九百一十万七千零一接受。
Source
/Result
AcceptedStreamSource
SAXSource
DOMSource
StAXSource
null
OK OK OK OKStreamResult
OKIllegalArgumentException
IllegalArgumentException
IllegalArgumentException
SAXResult
IllegalArgumentException
OKIllegalArgumentException
IllegalArgumentException
DOMResult
IllegalArgumentException
IllegalArgumentException
OKIllegalArgumentException
StAXResult
IllegalArgumentException
IllegalArgumentException
IllegalArgumentException
OK要将一个
Source
验证为另一种Result
,请使用标识转换器(请参阅TransformerFactory.newTransformer()
)。验证期间发现的错误将发送到指定的
ErrorHandler
。如果文档有效,或者文档包含一些错误但没有一个是致命的并且
ErrorHandler
没有抛出任何异常,则该方法正常返回。- 参数
-
source
- 要验证的XML。 必须是XML文档或XML元素,且不得为null。 为了向后兼容,尝试验证除文档或元素之外的任何内容的结果都是依赖于实现的。 实现必须识别并处理输入或抛出IllegalArgumentException。 -
result
- 接收(可能已增强)XML的Result
对象。 如果调用者对它不感兴趣,则此参数可以为null。 请注意,当使用DOMResult
时,验证器可能只是将相同的DOM节点从DOMSource
到DOMResult
(在这种情况下为source.getNode()==result.getNode()
),它可能会复制整个DOM树,或者它可能会更改源给出的节点。 - 异常
-
IllegalArgumentException
-如果Result
类型不匹配Source
类型的,如果Source
是一个XML工件,执行无法验证(例如,处理指令)。 -
SAXException
- 如果ErrorHandler
抛出SAXException
或者发现致命错误并且ErrorHandler
正常返回。 -
IOException
- 如果验证器正在处理SAXSource
,而底层XMLReader
则抛出IOException
。 -
NullPointerException
- 如果source
参数是null
。 - 另请参见:
-
validate(Source source)
-
setErrorHandler
public abstract void setErrorHandler(ErrorHandler errorHandler)
设置ErrorHandler
以接收validate
方法调用期间遇到的错误。错误处理程序可用于在验证期间自定义错误处理过程。 设置
ErrorHandler
时,验证期间发现的错误将首先发送到ErrorHandler
。错误处理程序可以通过从处理程序中抛出
SAXException
来立即中止进一步的验证。 或者,例如,它可以向屏幕打印错误,并尝试通过从ErrorHandler
正常返回来继续验证如果任何
Throwable
选自抛出ErrorHandler
,所述的呼叫者validate
方法将被抛出相同Throwable
对象。Validator
不允许先抛出SAXException
而不先将其报告给ErrorHandler
。当
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()
获取当前ErrorHandler
设置为这个Validator
。- 结果
-
此方法返回通过
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()
获取当前LSResourceResolver
设置为这个Validator
。- 结果
-
此方法返回通过
setResourceResolver(LSResourceResolver)
方法最后设置的对象,如果从Validator
创建以来从未调用过该方法,则返回null。 - 另请参见:
-
setErrorHandler(ErrorHandler)
-
getFeature
public boolean getFeature(String name) throws SAXNotRecognizedException, SAXNotSupportedException
查找功能标志的值。功能名称是任何完全限定的URI。
Validator
可以识别功能名称,但暂时无法返回其值。 某些特征值可能仅在特定上下文中可用,例如在验证之前,期间或之后。实现者可以免费(并鼓励)使用基于自己的URI构建的名称来发明自己的功能。
- 参数
-
name
- 功能名称,它是一个非null的完全限定URI。 - 结果
- 功能的当前值(true或false)。
- 异常
-
SAXNotRecognizedException
- 如果无法分配或检索特征值。 -
SAXNotSupportedException
- 当Validator
识别出功能名称但此时无法确定其值。 -
NullPointerException
- name参数为null时。 - 另请参见:
-
setFeature(String, boolean)
-
setFeature
public void setFeature(String name, boolean value) throws SAXNotRecognizedException, SAXNotSupportedException
设置功能标志的值。功能可用于控制
Validator
解析模式的方式,但不需要Validator
来识别任何特定的功能名称。功能名称是任何完全限定的URI。
Validator
可以公开特征值但无法更改当前值。 某些特征值可能仅在特定上下文中是不可变的或可变的,例如在验证之前,期间或之后。- 参数
-
name
- 功能名称,它是一个非null的完全限定URI。 -
value
- 要求的要素值(true或false)。 - 异常
-
SAXNotRecognizedException
- 如果无法分配或检索特征值。 -
SAXNotSupportedException
- 当Validator
识别出功能名称但无法设置请求的值时。 -
NullPointerException
- name参数为null时。 - 另请参见:
-
getFeature(String)
-
setProperty
public void setProperty(String name, Object object) throws SAXNotRecognizedException, SAXNotSupportedException
设置属性的值。属性名称是任何完全限定的URI。
Validator
可以识别属性名称但无法更改当前值。 某些属性值可能仅在特定上下文中是不可变的或可变的,例如在验证之前,期间或之后。实现JAXP 1.5或更高版本的所有实现都需要支持
XMLConstants.ACCESS_EXTERNAL_DTD
和XMLConstants.ACCESS_EXTERNAL_SCHEMA
属性。对源或Schema文件中的外部DTD的访问仅限于
XMLConstants.ACCESS_EXTERNAL_DTD
属性指定的协议。 如果访问被验证过程中,由于该物业的限制否认,SAXException
将被抛出validate(Source)
方法。对schemaLocation属性设置的外部引用的访问仅限于
XMLConstants.ACCESS_EXTERNAL_SCHEMA
属性指定的协议。 如果由于此属性的限制而在验证期间拒绝访问,则5144330183082将抛出5144330186482方法。
- 参数
-
name
- 属性名称,它是一个非null的完全限定URI。 -
object
- 属性的请求值。 - 异常
-
SAXNotRecognizedException
- 如果无法分配或检索属性值。 -
SAXNotSupportedException
- 当Validator
识别属性名称但无法设置请求的值时。 -
NullPointerException
- 当name参数为null时。
-
getProperty
public Object getProperty(String name) throws SAXNotRecognizedException, SAXNotSupportedException
查找属性的值。属性名称是任何完全限定的URI。
Validator
可以识别属性名称但暂时无法返回其值。 某些属性值可能仅在特定上下文中可用,例如在验证之前,期间或之后。Validator
s不需要识别任何特定的属性名称。实现者可以免费(并鼓励)使用基于自己的URI构建的名称来创建自己的属性。
- 参数
-
name
- 属性名称,它是一个非null的完全限定URI。 - 结果
- 属性的当前值。
- 异常
-
SAXNotRecognizedException
- 如果无法分配或检索属性值。 -
SAXNotSupportedException
- 当XMLReader识别属性名称但此时无法确定其值时。 -
NullPointerException
- name参数为null时。 - 另请参见:
-
setProperty(String, Object)
-
-