系统是从
SAXParserFactory 产生 parser 的实例开始的。一个 parser 中包含了一个 SAXReader 对象,当这个 parser 调用 parse 方法的时候,这个 reader 就调用回调方法已实现这个应用;而这些方法呢?是定义在 ContentHandler ErrorHandler DTDHandler EntityResolver 接口中的。

以下是对 SAX API 库的概述:

l        SAXParserFactory
SAXParserFactory
是一个根据系统属性生成 parser 实例的一个对象。

l        SAXParser
SAXParser
是一个定义了不同种类的 parser() 方法的接口。一般而言,你向 parser XML 数据后,使用 DefaultHandler 再来处理,系统就会调用一些合适的方法来处理 XML 文件,这样的一种处理方法是最为简单的。

l        SAXReader
SAXParser
包含了一个 SAXReader ,通常你是不需要关心它的,但是当你要使用 SAXReader getXMLReader() 方法的时候,你就需要配置他。简言之, SAXParser 就是一个与 SAX 事件通讯的处理器,这样,你就可以使用自定义的 handler

l        DefaultHandler
DefaultHandler
实现了 ContentHandler, ErrorHandler, DTDHandler, EntityResolver 接口 ( 当然其中有一些 null 方法 ), 如果你感兴趣的话,你可以在你的程序中重载它。

l        ContentHandler
当读到 XML tag 时,就会调用到这个接口中的 startDocument, endDocument, startElement, endElement 方法。同时,这个接口还定义了 characters processingInstruction, 方法,分别地,当 parser 遇到 XML element 或者 inline processing instruction 的时候调用。

l        ErrorHandler
当遇到不同类型的错误的时候分别调用相应的 " 错误 " 方法,这些方法包括: error fatalError warning

l        DTDHandler
该接口所定义的方法只用在处理 DTD 信息的时候。

l        EntityResolver
给接口中的 resolveEntity 方法只在 parser 遇到 URI 标识数据的时候才调用。