付録C.1 XML Processorの基本機能
XML Processorの基本機能は,XML文書の処理に必要となるXML文書の構文解析を実施します。XML Processorの基本機能が提供する3種類の解析機能(パーサ)と,各パーサの特徴を次に説明します。
(1) DOMパーサ
(a) 概要
DOMパーサは,XML文書に含まれる要素・属性・テキストなどをすべて解析し,その内容をDOMツリーと呼ばれるオブジェクトツリーとしてメモリ上に展開します。DOM APIを使うことで,DOMツリーの中を自由にたどったり,任意のデータを参照・更新・削除したりできます。
(b) 最適な用途
-
XML文書を広範囲にわたって処理する場合
-
XML文書内を複雑な順序で処理する必要がある場合
-
XML文書の内容を編集する場合
(2) SAXパーサ
(a) 概要
SAXパーサは,XML文書を先頭から順次解析して,要素の開始や終了,テキスト,処理命令などの解析イベントが出現するたびに所定の処理(コールバックメソッド)を呼び出す,イベント駆動形のパーサです。
解析が開始されると,解析イベントの種類に応じたコールバックメソッドがそのつど呼び出され,要素名やテキストデータなどの解析データが引数としてコールバックメソッドに渡されます。
コールバックメソッドの処理内容をあらかじめ定義しておくことで,XML文書の内容に応じた処理ができます。
(b) 最適な用途
-
単純な構造のXML文書を処理する場合
-
XML文書の内容を編集する必要がない,読み取り専用の処理の場合
(3) StAXパーサ
(a) 概要
StAXパーサはSAXパーサと同じように,XML文書を先頭から順次解析するイベント駆動形パーサです。
SAXパーサでは解析処理が自動的に進むのに対し,StAXパーサではユーザがパーサに対して解析イベントを要求したタイミングで解析処理が進むため,StAXパーサを使うと任意のタイミングで解析処理を進めたり中断したりすることが容易にできます。また,StAXパーサに解析イベントを要求し,それによって得た解析データの種類や内容に応じて処理を振り分けることで,XML文書の内容に応じた処理を実行できます。
(b) 最適な用途
-
巨大なXML文書の内容を部分的に処理する場合