- java.lang.Object
-
- javax.xml.validation.Validator
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protectedValidator()派生类的构造方法
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 abstract ErrorHandlergetErrorHandler()获取当前的ErrorHandler设置为Validator。booleangetFeature(String name)查找特征标记的值。ObjectgetProperty(String name)查找属性的值。abstract LSResourceResolvergetResourceResolver()获取当前的LSResourceResolver设置为Validator。abstract voidreset()将此Validator重置为原始配置。abstract voidsetErrorHandler(ErrorHandler errorHandler)设置ErrorHandler以接收在validate方法调用期间遇到的错误。voidsetFeature(String name, boolean value)设置特征标志的值。voidsetProperty(String name, Object object)设置属性的值。abstract voidsetResourceResolver(LSResourceResolver resourceResolver)设置LSResourceResolver以在验证集中定制资源分辨率。voidvalidate(Source source)验证指定的输入。abstract voidvalidate(Source source, Result result)验证指定的输入并将增强的验证结果发送到指定的输出。
-
-
-
方法详细信息
-
reset
public abstract void reset()
将此Validator重置为原始配置。Validator被复位到与使用Schema.newValidator()创建的状态相同的状态。reset()旨在允许现有的Validators的重用,从而节省与创建新的Validator相关的资源。复位
Validator不能保证具有相同LSResourceResolver个或者ErrorHandlerObjectS,如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/ResultAcceptedStreamSourceSAXSourceDOMSourceStAXSourcenullOK OK OK OKStreamResultOKIllegalArgumentExceptionIllegalArgumentExceptionIllegalArgumentExceptionSAXResultIllegalArgumentExceptionOKIllegalArgumentExceptionIllegalArgumentExceptionDOMResultIllegalArgumentExceptionIllegalArgumentExceptionOKIllegalArgumentExceptionStAXResultIllegalArgumentExceptionIllegalArgumentExceptionIllegalArgumentExceptionOK要将一个
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 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。
-
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 implementsLSResourceResolver{ publicLSInputresolveResource( 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解析模式的方式,尽管Validators不需要识别任何特定的功能名称。功能名称是任何完全限定的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)
-
-