前回説明した SAXParser#parse() メソッドによって XML 文書を解析すると、文書中の要素やテキストに応じて SAX イベント*1が発生します。 予め処理を実装した「ハンドラ」オブジェクトを SAXParser に設定することで、SAX イベントの種類に応じた処理を実行することができます(記事一覧)。
処理を実装するクラスが実装すべき「ハンドラ」インターフェースは7つありますが、実際に使うのは2〜3個でしょう。 また、それらの実装を助けるサポート・クラスもあります。
パッケージ | ハンドラ・インターフェース | サポート・クラス |
---|---|---|
org.xml.sax パッケージ | ContentHandler, ErrorHandler, EntityResolver, DTDHandler | org.xml.sax.helpers.DefaultHandler |
org.xml.sax.ext パッケージ | LexicalHandler, EntityResolver2, DeclHandler | org.xml.sax.ext.DefaultHandler2 |
これらを図にまとめると、下図のようになります:
DefaultHandler2 クラスは、全てのハンドラを実装しています。
*1:実際にはこういったクラスやオブジェクトはありませんが。