public interface DocumentHandler
org.xml.sax.DocumentHandler |
Known Indirect Subclasses |
该接口在API级别1中已被弃用。
该接口已被SAX2 ContentHandler
接口取代,该接口包含命名空间支持。
接收一般文件事件的通知。
This module, both source code and documentation, is in the Public Domain, and comes with NO WARRANTY. See http://www.saxproject.org for further information.
这是SAX1的主要事件处理接口; 在SAX2中,它已被ContentHandler
所取代,它提供名称空间支持和报告跳过的实体。 该接口仅包含在SAX2中以支持传统的SAX1应用程序。
该界面中的事件顺序非常重要,并反映文档本身的信息顺序。 例如,所有元素的内容(字符数据,处理指令和/或子元素)将按照startElement事件和相应的endElement事件之间的顺序出现。
不想实现整个接口的应用程序编写者可以从HandlerBase派生一个类,该类实现了默认功能; 解析器编写者可以实例化HandlerBase以获取默认处理程序。 应用程序可以使用Parser通过setDocumentLocator方法提供的Locator接口来查找任何文档事件的位置。
Public methods |
|
---|---|
abstract void |
characters(char[] ch, int start, int length) 接收字符数据的通知。 |
abstract void |
endDocument() 接收文档结束的通知。 |
abstract void |
endElement(String name) 接收元素结束的通知。 |
abstract void |
ignorableWhitespace(char[] ch, int start, int length) 接收元素内容中可忽略空白的通知。 |
abstract void |
processingInstruction(String target, String data) 接收处理指令的通知。 |
abstract void |
setDocumentLocator(Locator locator) 接收一个对象以查找SAX文档事件的来源。 |
abstract void |
startDocument() 接收文档开始的通知。 |
abstract void |
startElement(String name, AttributeList atts) 接收元素开始的通知。 |
void characters (char[] ch, int start, int length)
接收字符数据的通知。
解析器将调用此方法来报告每个字符数据块。 SAX解析器可能会将所有连续的字符数据返回到单个块中,或者它们可能会将其分割为多个块; 但是,任何单个事件中的所有字符必须来自相同的外部实体,以便定位器提供有用的信息。
应用程序不能尝试从指定范围之外的数组读取数据。
请注意,一些解析器将使用ignorableWhitespace()方法报告空白,而不是这一个(验证解析器必须这样做)。
Parameters | |
---|---|
ch |
char : The characters from the XML document. |
start |
int : The start position in the array. |
length |
int : The number of characters to read from the array. |
Throws | |
---|---|
SAXException |
Any SAX exception, possibly wrapping another exception. |
void endDocument ()
接收文档结束的通知。
SAX解析器只会调用一次该方法,它将是解析过程中调用的最后一个方法。 解析器不应该调用此方法,直到它放弃解析(由于错误不可恢复)或到达输入的结尾。
Throws | |
---|---|
SAXException |
Any SAX exception, possibly wrapping another exception. |
void endElement (String name)
接收元素结束的通知。
SAX解析器将在XML文档中的每个元素的末尾调用此方法; 每个endElement()事件都会有相应的startElement()事件(即使元素为空)。
如果元素名称具有名称空间前缀,则前缀仍将附加到该名称。
Parameters | |
---|---|
name |
String : The element type name |
Throws | |
---|---|
SAXException |
Any SAX exception, possibly wrapping another exception. |
void ignorableWhitespace (char[] ch, int start, int length)
接收元素内容中可忽略空白的通知。
验证解析器必须使用此方法来报告忽略的空白的每个数据块(见W3C XML 1.0建议中的2.10节):非验证解析器也可以使用这个方法,如果他们能够解析和使用内容模型。
SAX解析器可能会将单个块中的所有连续空白值返回,或者可能会将其分割为多个块; 但是,任何单个事件中的所有字符必须来自相同的外部实体,以便定位器提供有用的信息。
应用程序不能尝试从指定范围之外的数组读取数据。
Parameters | |
---|---|
ch |
char : The characters from the XML document. |
start |
int : The start position in the array. |
length |
int : The number of characters to read from the array. |
Throws | |
---|---|
SAXException |
Any SAX exception, possibly wrapping another exception. |
也可以看看:
void processingInstruction (String target, String data)
接收处理指令的通知。
解析器将为找到的每个处理指令调用一次该方法:请注意,处理指令可能发生在主文档元素之前或之后。
SAX解析器不应使用此方法报告XML声明(XML 1.0,第2.8节)或文本声明(XML 1.0,第4.3.1节)。
Parameters | |
---|---|
target |
String : The processing instruction target. |
data |
String : The processing instruction data, or null if none was supplied. |
Throws | |
---|---|
SAXException |
Any SAX exception, possibly wrapping another exception. |
void setDocumentLocator (Locator locator)
接收一个对象以查找SAX文档事件的来源。
强烈建议SAX解析器(尽管不是绝对必要)提供定位器:如果这样做,它必须在调用DocumentHandler接口中的任何其他方法之前通过调用此方法将定位器提供给应用程序。
定位器允许应用程序确定任何文档相关事件的结束位置,即使解析器未报告错误。 通常情况下,应用程序将使用此信息报告自己的错误(例如与应用程序业务规则不匹配的字符内容)。 由定位器返回的信息可能不足以用于搜索引擎。
请注意,只有在调用此界面中的事件时,定位器才会返回正确的信息。 应用程序不应该尝试在任何其他时间使用它。
Parameters | |
---|---|
locator |
Locator : An object that can return the location of any SAX document event. |
也可以看看:
void startDocument ()
接收文档开始的通知。
SAX解析器只会在此接口或DTDHandler中的任何其他方法(除setDocumentLocator之外)之前调用此方法一次。
Throws | |
---|---|
SAXException |
Any SAX exception, possibly wrapping another exception. |
void startElement (String name, AttributeList atts)
接收元素开始的通知。
解析器将在XML文档的每个元素的开始处调用此方法; 每个startElement()事件都会有相应的endElement()事件(即使元素为空)。 所有元素的内容将依次在相应的endElement()事件之前报告。
如果元素名称具有名称空间前缀,则前缀仍将被附加。 请注意,提供的属性列表将仅包含具有显式值(指定或默认值)的属性:#IMPLIED属性将被省略。
Parameters | |
---|---|
name |
String : The element type name. |
atts |
AttributeList : The attributes attached to the element, if any. |
Throws | |
---|---|
SAXException |
Any SAX exception, possibly wrapping another exception. |
也可以看看: