- java.lang.Object
-
- javax.xml.validation.Validator
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protected
Validator()
派生类的构造方法
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 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
s的重用,从而节省与创建新的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)
方法,则返回null,因为这是方法从未被称为Validator
创造。 - 另请参见:
-
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 } }如果一个270856746213488 (或其派生类的实例)抛出270856746213488 ,则
Validator
将中止解析,并且validate
方法的调用者将收到相同的RuntimeException
。当创建一个新的
Validator
对象时,最初该字段设置为null。- 参数
-
resourceResolver
- 要设置的新资源解析器。 此参数可以为null。
-
getResourceResolver
public abstract LSResourceResolver getResourceResolver()
获取当前的LSResourceResolver
设置为Validator
。- 结果
-
此方法返回是通过最后一组对象
setResourceResolver(LSResourceResolver)
方法,则返回null,因为这是方法从未被称为Validator
创造。 - 另请参见:
-
setErrorHandler(ErrorHandler)
-
getFeature
public boolean getFeature(String name) throws SAXNotRecognizedException, SAXNotSupportedException
查找特征标记的值。功能名称是任何完全限定的URI。
Validator
可以识别功能名称,但暂时无法返回其值。 某些特征值可能仅在特定上下文中可用,例如在验证之前,期间或之后。实施者是免费(并被鼓励)发明自己的功能,使用自己的URI建立的名称。
- 参数
-
name
- 功能名称,它是非空的完全限定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
s不需要识别任何特定的功能名称。功能名称是任何完全限定的URI。
Validator
可以公开特征值,但无法更改当前值。 一些特征值可以是不可变的或可变的仅在特定的上下文中,例如验证之前,期间或之后。- 参数
-
name
- 特征名称,它是非空的完全限定的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
属性。访问源或模式文件中的外部DTD仅限于由
XMLConstants.ACCESS_EXTERNAL_DTD
属性指定的协议。 如果由于此属性的限制,在验证期间访问被拒绝,则validate(Source)
将被抛出validate(Source)
方法。由schemaLocation属性访问外部引用集仅限于由
XMLConstants.ACCESS_EXTERNAL_SCHEMA
属性指定的协议。 如果由于此属性的限制而在验证期间访问被拒绝,则270856747417468将被抛出validate(Source)
方法。
- 参数
-
name
- 属性名称,它是非空的完全限定URI。 -
object
- 该属性的请求的值。 - 异常
-
SAXNotRecognizedException
- 如果属性值无法分配或检索。 -
SAXNotSupportedException
-Validator
识别属性名称但无法设置请求的值时。 -
NullPointerException
- name参数为null时。
-
getProperty
public Object getProperty(String name) throws SAXNotRecognizedException, SAXNotSupportedException
查找属性的值。属性名称是任何完全限定的URI。
Validator
可以识别属性名称,但暂时无法返回其值。 某些属性值可能仅在特定上下文中可用,例如验证之前,期间或之后。Validator
不需要识别任何特定的属性名称。实施者是免费的(并被鼓励)发明自己的属性,使用自己的URI建立的名称。
- 参数
-
name
- 属性名称,它是非空的完全限定URI。 - 结果
- 当前的属性值。
- 异常
-
SAXNotRecognizedException
- 如果不能分配或检索属性值。 -
SAXNotSupportedException
- 当XMLReader识别属性名称,但无法确定其在此时的值。 -
NullPointerException
- name参数为null时。 - 另请参见:
-
setProperty(String, Object)
-
-