-
- 所有已知实现类:
-
HandlerBase
,ParserAdapter
已过时。该接口已被SAX2ContentHandler
接口所替代,其中包括命名空间支持。
@Deprecated(since="1.5") 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应用。此界面中的事件顺序非常重要,并且反映了文档本身中信息的顺序。 例如,所有元素的内容(字符数据,处理指令和/或子元素)将按顺序显示在startElement事件和相应的endElement事件之间。
不想实现整个接口的应用程序编写者可以从实现默认功能的HandlerBase派生一个类; 解析器编写者可以实例化HandlerBase来获取默认处理程序。 应用程序可以使用通过setDocumentLocator方法由Parser提供的Locator接口找到任何文档事件的位置。
- 从以下版本开始:
- 1.4,SAX 1.0
- 另请参见:
-
Parser.setDocumentHandler(org.xml.sax.DocumentHandler)
,Locator
,HandlerBase
-
-
方法摘要
所有方法 接口方法 抽象方法 弃用的方法 Modifier and Type 方法 描述 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)
已过时。接收元素开头的通知。
-
-
-
方法详细信息
-
setDocumentLocator
void setDocumentLocator(Locator locator)
已过时。接收一个查找SAX文档事件的起源的对象。强烈地鼓励SAX解析器(虽然不是绝对必需的)提供定位器:如果这样做,它必须通过在调用DocumentHandler接口中的任何其他方法之前调用此方法来将定位器提供给应用程序。
定位器允许应用程序确定任何文档相关事件的结束位置,即使解析器没有报告错误。 通常,应用程序将使用此信息来报告其自身的错误(例如与应用程序业务规则不匹配的字符内容)。 定位器返回的信息可能不足以与搜索引擎一起使用。
请注意,定位器将仅在调用此界面中的事件时返回正确的信息。 应用程序不应在任何其他时间尝试使用它。
- 参数
-
locator
- 可以返回任何SAX文档事件的位置的对象。 - 另请参见:
-
Locator
-
startDocument
void startDocument() throws SAXException
已过时。接收文件开头的通知。在此接口或DTDHandler(除了setDocumentLocator之外)之前的任何其他方法之前,SAX解析器将仅调用此方法一次。
- 异常
-
SAXException
- 任何SAX异常,可能包含另一个异常。
-
endDocument
void endDocument() throws SAXException
已过时。接收文件结束的通知。SAX解析器将仅调用此方法一次,这将是解析过程中调用的最后一个方法。 分析器不得调用此方法,直到它已经放弃解析(因为不可恢复的错误)或到达输入结束。
- 异常
-
SAXException
- 任何SAX异常,可能包括另一个异常。
-
startElement
void startElement(String name, AttributeList atts) throws SAXException
已过时。接收元素开头的通知。解析器将在XML文档中的每个元素的开头调用此方法; 对于每个startElement()事件(即使该元素为空)也将有一个相应的endElement()事件。 所有元素的内容将按照相应的endElement()事件的顺序进行报告。
如果元素名称具有命名空间前缀,则仍将附加前缀。 请注意,提供的属性列表将仅包含具有显式值(指定或默认值)的属性:#IMPLIED属性将被省略。
- 参数
-
name
- 元素类型名称。 -
atts
- 附加到元素的属性(如果有的话)。 - 异常
-
SAXException
- 任何SAX异常,可能包装另一个异常。 - 另请参见:
-
endElement(java.lang.String)
,AttributeList
-
endElement
void endElement(String name) throws SAXException
已过时。接收元素结尾的通知。SAX解析器将在XML文档中的每个元素的末尾调用此方法; 对于每个endElement()事件(即使该元素为空)也将有一个相应的startElement()事件。
如果元素名称具有命名空间前缀,则前缀仍将附加到名称。
- 参数
-
name
- 元素类型名称 - 异常
-
SAXException
- 任何SAX异常,可能包括另一个异常。
-
characters
void characters(char[] ch, int start, int length) throws SAXException
已过时。接收字符数据通知。Parser将调用此方法来报告每个字符数据块。 SAX解析器可以在单个块中返回所有连续的字符数据,或者它们可以将其分割成多个块; 但是,任何单个事件中的所有字符都必须来自相同的外部实体,以便定位器提供有用的信息。
应用程序不得尝试从指定范围之外的数组读取。
请注意,某些解析器将使用ignorableWhitespace()方法(而不是此验证解析器)来报告空格。
- 参数
-
ch
- XML文档中的字符。 -
start
- 数组中的起始位置。 -
length
- 从数组中读取的字符数。 - 异常
-
SAXException
- 任何SAX异常,可能包括另一个异常。 - 另请参见:
-
ignorableWhitespace(char[], int, int)
,Locator
-
ignorableWhitespace
void ignorableWhitespace(char[] ch, int start, int length) throws SAXException
已过时。在元素内容中接收到可忽略的空白的通知。验证解析器必须使用此方法来报告每个可忽略的空白块(参见W3C XML 1.0推荐,第2.10节):非验证解析器也可以使用此方法,如果它们能够解析和使用内容模型。
SAX解析器可以在单个块中返回所有连续的空格,或者它们可以将其分割成多个块; 但是,任何单个事件中的所有字符都必须来自相同的外部实体,以便定位器提供有用的信息。
应用程序不得尝试从指定范围之外的数组读取。
- 参数
-
ch
- XML文档中的字符。 -
start
- 数组中的起始位置。 -
length
- 从数组中读取的字符数。 - 异常
-
SAXException
- 任何SAX异常,可能包含另一个异常。 - 另请参见:
-
characters(char[], int, int)
-
processingInstruction
void processingInstruction(String target, String data) throws SAXException
已过时。接收处理指令的通知。解析器将为发现的每个处理指令调用此方法一次:请注意,处理指令可能发生在主文档元素之前或之后。
SAX解析器不应使用此方法报告XML声明(XML 1.0,第2.8节)或文本声明(XML 1.0,第4.3.1节)。
- 参数
-
target
- 处理指令目标。 -
data
- 处理指令数据,如果没有提供,则为null。 - 异常
-
SAXException
- Any SAX exception, possibly wrapping another exception.
-
-