ContentHandler
SAX2接口所取代,其中包括命名空间的支持。
public interface DocumentHandler
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应用。
在这个接口中的事件的顺序是非常重要的,并反映在文档中的信息的顺序。例如,所有元素的内容(字符数据处理指令和/或子元素)的出现,为不同的事件,以及相应的EndElement事件之间。
应用作家谁不想实现整个界面可以从handlerbase类,它实现了默认功能;解析作家可以实例化handlerbase获得默认处理程序。应用程序可以找到任何文件的事件提供的解析器通过setdocumentlocator定位器界面位置的方法。
Parser.setDocumentHandler(org.xml.sax.DocumentHandler)
,
Locator
,
HandlerBase
Modifier and Type | Method and Description |
---|---|
void |
characters(char[] ch, int start, int length)
过时的。
接收字符数据的通知。
|
void |
endDocument()
过时的。
接收文档结尾的通知。
|
void |
endElement(String name)
过时的。
接收一个元素的结束的通知。
|
void |
ignorableWhitespace(char[] ch, int start, int length)
过时的。
收到可忽略空白元素内容的通知。
|
void |
processingInstruction(String target, String data)
过时的。
接收处理指令的通知。
|
void |
setDocumentLocator(Locator locator)
过时的。
接收对象定位SAX文档事件的起源。
|
void |
startDocument()
过时的。
接收文档开始的通知。
|
void |
startElement(String name, AttributeList atts)
过时的。
接收元素开始的通知。
|
void setDocumentLocator(Locator locator)
SAX解析器是大力鼓励(虽然不是绝对必需的)提供一个定位:如果它这样做,它必须通过调用此方法调用中的任何其他方法documenthandler接口在定位器供应中的应用。
该定位器允许应用程序,以确定任何文档相关的事件的最终位置,即使解析器不报告一个错误。通常情况下,应用程序将使用此信息来报告自己的错误(如不匹配应用程序的业务规则的字符内容)。由定位器返回的信息可能不足以用于搜索引擎。
请注意,定位器将只在该接口的事件调用中返回正确的信息。应用程序不应该尝试在任何其他时间使用它。
locator
-可以返回任何SAX文档事件的位置的对象。
Locator
void startDocument() throws SAXException
SAX解析器将调用这个方法只有一次,在这个接口或DTDHandler其他任何方法之前(除setdocumentlocator)。
SAXException
-萨克斯例外,可能是包装的另一个例外。
void endDocument() throws SAXException
SAX解析器将调用这个方法只有一次,这将是最后的方法,在分析调用。解析器不应调用此方法,直到它已被遗弃的解析(因为一个不可恢复的错误)或达到结束输入。
SAXException
-萨克斯例外,可能是包装的另一个例外。
void startElement(String name, AttributeList atts) throws SAXException
分析器将调用此方法在XML文档中的每一个元素的开始;会有一startelement()事件对应的endelement()事件(即使是空元素)。所有的元素的内容会被报道,为了对应前endelement()事件。
如果元素名称有一个命名空间前缀,则前缀仍然会被连接。注意,设置属性列表只包含明确的价值属性(指定或默认):#隐含属性将被忽略。
name
-元素类型的名称。
atts
的属性附加到元素,如果任何。
SAXException
-萨克斯例外,可能是包装的另一个例外。
endElement(java.lang.String)
,
AttributeList
void endElement(String name) throws SAXException
SAX解析器将调用此方法在XML文档中的每个元素的结束;会有一endelement()事件对应的startelement()事件(即使是空元素)。
如果元素名称有一个命名空间前缀,则前缀仍然会被连接到这个名称上。
name
-元素类型的名称
SAXException
-萨克斯例外,可能是包装的另一个例外。
void characters(char[] ch, int start, int length) throws SAXException
解析器将调用此方法来报告字符数据的每个块。SAX解析器可能会返回在一块连续的字符数据,也可以把它分为几块;但是,在任何一个事件的所有字符必须来自同一个外部实体,使定位器提供有用的信息。
该应用程序必须不试图从指定范围以外的数组读取。
请注意,有些解析器将报告空白使用ignorablewhitespace()方法而不是这一个(验证解析器必须这样做)。
ch
从XML文档的字符。
start
-数组中的起始位置。
length
-字符数从数组中读取。
SAXException
-萨克斯例外,可能是包装的另一个例外。
ignorableWhitespace(char[], int, int)
,
Locator
void ignorableWhitespace(char[] ch, int start, int length) throws SAXException
验证解析器必须使用此方法报告每一块可忽略空白(参见W3C推荐1、2.10节):非验证解析器也可能如果他们能够解析和利用内容模型采用这种方法。
SAX解析器可能会返回在一块连续的空格,或他们可能会分裂成几块;但是,在任何一个事件的所有字符必须来自同一个外部实体,使定位器提供有用的信息。
该应用程序必须不试图从指定范围以外的数组读取。
ch
从XML文档的字符。
start
-数组中的起始位置。
length
-字符数从数组中读取。
SAXException
-萨克斯例外,可能是包装的另一个例外。
characters(char[], int, int)
void processingInstruction(String target, String data) throws SAXException
分析程序将调用此方法一次,每个处理指令发现:请注意,处理指令可能发生在主文档元素之前或之后。
SAX解析器不应该报告XML声明(XML 1、2.8节)或文本声明(XML 1、第4.3.1)使用这种方法。
target
-处理指令的目标。
data
-处理指令数据,如果提供的是无或空。
SAXException
-萨克斯例外,可能是包装的另一个例外。
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.