- java.lang.Object
-
- javax.xml.validation.Validator
-
-
构造方法摘要
构造方法 变量 构造器 描述 protectedValidator()派生类的构造函数。
-
方法摘要
所有方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 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()旨在允许重用现有的Validator从而节省与创建新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)方法最后设置的对象,如果自Validator创建以来从未调用过该方法,则返回null。 - 另请参见:
-
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 } }如果
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可以识别属性名称但暂时无法返回其值。 某些属性值可能仅在特定上下文中可用,例如在验证之前,期间或之后。Validators不需要识别任何特定的属性名称。实现者可以免费(并鼓励)使用基于自己的URI构建的名称来创建自己的属性。
- 参数
-
name- 属性名称,它是一个非null的完全限定URI。 - 结果
- 属性的当前值。
- 异常
-
SAXNotRecognizedException- 如果无法分配或检索属性值。 -
SAXNotSupportedException- 当XMLReader识别属性名称但此时无法确定其值时。 -
NullPointerException- name参数为null时。 - 另请参见:
-
setProperty(String, Object)
-
-