public abstract class ValidatorHandler extends Object implements ContentHandler
一个ValidatorHandler
对象不是线程安全的,不可重入的。换句话说,它是应用程序的责任,确保一个ValidatorHandler
对象不是用来从多个线程在任何给定的时间。
ValidatorHandler
检查SAX事件按照相关Schema
描述约束集,并且它可以修改SAX事件(比如添加默认值,等)
ValidatorHandler
从ContentHandler
,但它使潜在的ContentHandler
以下面的方式:
uri
,localName
,和qname
,尽管SAX允许有些是空的。同样,用户指定的ContentHandler
将所有三个参数接收非空字符串。ValidatorHandler
的ContentHandler.startPrefixMapping(String,String)
和ContentHandler.endPrefixMapping(String)
调用适当的。同样,用户指定的ContentHandler
将收到startprefixmapping / endprefixmapping事件。如果ValidatorHandler
引入额外的命名空间绑定,用户指定的ContentHandler
将获得额外的startprefixmapping / endprefixmapping事件。ContentHandler.startElement(String,String,String,Attributes)
方法Attributes
可能或可能不包括属性xmlns *。一个ValidatorHandler
自动复位每次StartDocument方法被调用。
本规范定义了以下的功能,必须由所有ValidatorHandler
实现认可。
http://xml.org/sax/features/namespace-prefixes
此功能控件如何ValidatorHandler
命名空间绑定了原来没有的SAX事件流。当此功能被设置为true,它必须确保用户的ContentHandler
将看到的ContentHandler.startElement(String,String,String,Attributes)
回调Attributes
对象相应的xmlns*
属性。否则,xmlns*
属性不能被添加到Attributes
,传递到用户指定的ContentHandler
。
(请注意,无论这个开关,命名空间绑定总是通知应用程序通过用户。指定的ContentHandler
ContentHandler.startPrefixMapping(String,String)
和ContentHandler.endPrefixMapping(String)
方法)
请注意,此功能不影响ValidatorHandler
接收SAX事件的方式。它只是改变了它巩固了SAX事件。
这个功能是默认设置为false
。
Modifier | Constructor and Description |
---|---|
protected |
ValidatorHandler()
派生类的构造函数。
|
Modifier and Type | Method and Description |
---|---|
abstract ContentHandler |
getContentHandler()
获取接收增强验证结果
ContentHandler 。
|
abstract ErrorHandler |
getErrorHandler()
被设置为这
ValidatorHandler 当前
ErrorHandler 。
|
boolean |
getFeature(String name)
查找功能标志的值。
|
Object |
getProperty(String name)
查找属性的值。
|
abstract LSResourceResolver |
getResourceResolver()
被设置为这
ValidatorHandler 当前
LSResourceResolver 。
|
abstract TypeInfoProvider |
getTypeInfoProvider()
获得该
ValidatorHandler 的
TypeInfoProvider 实施。
|
abstract void |
setContentHandler(ContentHandler receiver)
设置接收增强验证结果
ContentHandler 。
|
abstract void |
setErrorHandler(ErrorHandler errorHandler)
设置接收验证时遇到错误的
ErrorHandler 。
|
void |
setFeature(String name, boolean value)
设置这一
ValidatorHandler 特征。
|
void |
setProperty(String name, Object object)
设置属性的值。
|
abstract void |
setResourceResolver(LSResourceResolver resourceResolver)
设置自定义资源解决在验证集
LSResourceResolver 。
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
characters, endDocument, endElement, endPrefixMapping, ignorableWhitespace, processingInstruction, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping
public abstract void setContentHandler(ContentHandler receiver)
ContentHandler
。
当一个ContentHandler
是指定的,一个ValidatorHandler
将作为滤波器基本上复制到指定的ContentHandler
传入的事件。
这样做,一ValidatorHandler
可以修改事件,比如添加默认属性。
一个ValidatorHandler
可以缓冲的事件在一定程度上,而是要让ValidatorHandler
被解析器使用,以下条件必须满足。
ContentHandler.startElement(String, String, String, Attributes)
,ContentHandler.endElement(String, String, String)
,ContentHandler.startDocument()
,或ContentHandler.endDocument()
在ValidatorHandler
调用,在用户指定的ContentHandler
方法必须调用相同事件的回调函数返回之前。ValidatorHandler
可能不会引入新的元素不存在于输入。ValidatorHandler
可能不会删除属性,在输入中出现。当一个回调方法在指定的ContentHandler
抛出异常,该异常对象必须从ValidatorHandler
抛出,ErrorHandler
不应该被告知这些例外。
即使在验证过程中,这种方法也可以被调用。
receiver
-
ContentHandler
或空值。
public abstract ContentHandler getContentHandler()
ContentHandler
。
getContentHandler()
方法,或null如果方法从来没有所谓的因为这
ValidatorHandler
创造了。
setContentHandler(ContentHandler)
public abstract void setErrorHandler(ErrorHandler errorHandler)
ErrorHandler
。
错误处理程序可以用于在验证过程中自定义错误处理过程。当一个ErrorHandler
设置,发现错误验证时会首先发送到ErrorHandler
。
错误处理程序可以中止进一步验证立即从处理扔SAXException
。或例如可以打印一个错误的屏幕,试图通过正常的ErrorHandler
返回继续验证
如果任何Throwable
从ErrorHandler
抛出,同样的Throwable
对象将被抛向调用堆栈的根。
ValidatorHandler
不允许扔SAXException
不先报告给ErrorHandler
。
当ErrorHandler
是null,实施将有如以下ErrorHandler
设置:
类draconianerrorhandler实现ErrorHandler
{公共无效的致命错误(SAXParseException
E)抛出SAXException
{把E;}公共无效错误(SAXParseException
E)抛出SAXException
{把E;}公共无效报警(SAXParseException
E)抛出SAXException
{/ /空}}
当一个新的ValidatorHandler
对象被创建,最初该字段设置为null。
errorHandler
-一个新的错误处理程序将。此参数可以为空。
public abstract ErrorHandler getErrorHandler()
ValidatorHandler
当前
ErrorHandler
。
setErrorHandler(ErrorHandler)
方法,或null如果方法从来没有所谓的因为这
ValidatorHandler
创造了。
setErrorHandler(ErrorHandler)
public abstract void setResourceResolver(LSResourceResolver resourceResolver)
LSResourceResolver
。
ValidatorHandler
使用LSResourceResolver
当需要定位的外部资源,而验证,但到底什么是“定位外部资源”是由每个模式语言。
当LSResourceResolver
是null,实施将有如以下LSResourceResolver
设置:
类dumblsresourceresolver实现LSResourceResolver
{公共LSInput
resolveresource(publicid字符串,字符串的字符串systemid,baseuri){返回空;/ /始终返回空值}}
如果一个LSResourceResolver
抛出一个RuntimeException
(或其派生类的实例),然后ValidatorHandler
将中止的解析和validate
方法调用者会得到相同的RuntimeException
。
当一个新的ValidatorHandler
对象被创建,最初该字段设置为null。
resourceResolver
-新资源解析器将。此参数可以为空。
public abstract LSResourceResolver getResourceResolver()
ValidatorHandler
当前
LSResourceResolver
。
setResourceResolver(LSResourceResolver)
方法,或null如果方法从来没有所谓的因为这
ValidatorHandler
创造了。
setErrorHandler(ErrorHandler)
public abstract TypeInfoProvider getTypeInfoProvider()
ValidatorHandler
的
TypeInfoProvider
实施。
得到的TypeInfoProvider
可以查询在解析期间访问的验证确定的类型信息。
一些模式语言不定义类型的概念,对于那些语言,这种方法可能不被支持。然而,应符合本规范要求,对W3C XML Schema 1实现必须支持此操作。
TypeInfo
概念。另有一个非空的有效
TypeInfoProvider
。
public boolean getFeature(String name) throws SAXNotRecognizedException, SAXNotSupportedException
功能名称是完全合格的URI。一ValidatorHandler
识别特征的名字,但暂时无法返回它的值是可能的。一些特征值可能只在特定的上下文中,例如在验证之前、期间或之后可用。
实施者是自由的(鼓励)来创造自己的特色,以建立自己的URI的名字。
name
特点的名字,这是一个非空的完全合格的URI。
SAXNotRecognizedException
-如果特征值不能被分配或检索。
SAXNotSupportedException
-当
ValidatorHandler
识别特征名称,但不能确定它的价值在这个时候。
NullPointerException
当
name
是
null
。
setFeature(String, boolean)
public void setFeature(String name, boolean value) throws SAXNotRecognizedException, SAXNotSupportedException
设置这一ValidatorHandler
特征。
特征可以用来控制方式ValidatorHandler
解析模式。功能名称是完全合格的URI。一SchemaFactory
暴露特征值,但无法改变目前的价值是可能的。一些特征值可以不变或可变的只有在特定的语境中,如前,中,后的验证。
所有的实现都必须支持的XMLConstants.FEATURE_SECURE_PROCESSING
特征。当功能是:
true
:实施将限制XML处理符合实施限制。例子包括该扩展范围和XML Schema结构,会消耗大量的资源。如果XML处理有限,出于安全原因,它将报告通过电话注册ErrorHandler.fatalError(SAXParseException exception)
。看到setErrorHandler(ErrorHandler errorHandler)
。false
:实施将根据XML规范不考虑可能实施限制XML处理。name
特点的名字,这是一个非空的完全合格的URI。
value
特征的请求的值(true或false)。
SAXNotRecognizedException
-如果特征值不能被分配或检索。
SAXNotSupportedException
-当
ValidatorHandler
识别特征的名字,但不能设置请求的值。
NullPointerException
当
name
是
null
。
getFeature(String)
public void setProperty(String name, Object object) throws SAXNotRecognizedException, SAXNotSupportedException
属性名称是完全合格的URI。一ValidatorHandler
识别属性名称,但无法改变当前值,它是可能的。有些属性值可能不变或可变的只有在特定的语境中,如前,中,后的验证。
ValidatorHandler
s不需要识别设置任何特定的属性名称。
name
-属性的名字,这是一个非空的完全合格的URI。
object
-请求的性能值。
SAXNotRecognizedException
-如果属性值不能被分配或检索。
SAXNotSupportedException
-当
ValidatorHandler
识别属性名称,但不能设置请求的值。
NullPointerException
当
name
是
null
。
public Object getProperty(String name) throws SAXNotRecognizedException, SAXNotSupportedException
属性名称是完全合格的URI。一ValidatorHandler
识别属性名称,但暂时无法返回它的值是可能的。一些属性值可能只在特定的上下文中可用,例如在验证之前、期间或之后的属性值。
ValidatorHandler
s不需要承认任何特定的属性名称。
实施者是自由的(鼓励)来创造他们自己的特性,以建立自己的URI的名字。
name
-属性的名字,这是一个非空的完全合格的URI。
SAXNotRecognizedException
-如果属性值不能被分配或检索。
SAXNotSupportedException
当XmlReader识别属性名称,但不能确定它的价值在这个时候。
NullPointerException
当
name
是
null
。
setProperty(String, Object)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.