今回は,DOM とは異なるタイプの XML のための API である SAX (Simple API for XML) の利用方法を学ぶ.
SAXは,XML-DEV メーリングリスト上における XML 開発者同士の議論から誕生した XML のための API であり,国際的な標準化団体による仕様ではないにも関わらず,事実上の標準として,多くの XML 処理系で用いられている.
SAX はイベント駆動型 API と呼ばれる.具体的には,SAX プロセッサは XML データを解析しながら,文書の開始,終了,要素の開始,終了などのイベントを生成し,イベントハンドラと呼ばれるコールバック関数を次々と呼び出す.これは,XML を木構造として扱う DOM とは対照的である.このため,木構造を辿るような複雑な処理や,データの変更は難しいが,処理に必要な主記憶量,実行速度の点で DOM より優れており,大規模な XML データを扱いたい場合や,データを逐次処理したい場合によく用いられる
/home/lab/Denjo/amagasa/jikken/09 にサンプルファイルがあるので,各自自分のホームディレクトリにコピーした上で使用する.
実験では,Xerces に含まれる SAX2 パーサを用いるので,CLASSPATH の設定は前回同様で問題ない.
SAX を用いて,以下のプログラムのどちらかを作成すること.時間のある人は,両方ともチャレンジして欲しい.
例: % java SimpleSearch auction.xml //mail <output> <mail> <from>Dominic Takano mailto:Takano@yahoo.com</from> <to>Mechthild Renear mailto:Renear@acm.org</to> <date>10/12/1999</date> <text> asses scruple learned crowns preventions half whisper logotype weapons doors fac tious already pestilent sacks dram atwain girdles deserts flood park lest graves ...テキスト値だけでなく,部分要素も表示できるように工夫すること.
提出期限は 2/1(木).メールの作成には以下のテンプレートを利用すると良い.