2005年11月20日(日)更新 |
■SAXってなに?
たけち: DOMって覚えてるよね。 さらら: えっ、えぇ。まあね。(^ ^; たけち: DOMは、XMLドキュメントをアプリケーションで処理しやすいように、XMLパーサ(プロセッサ)が提供してくれるAPI(Application Inteface)だよね。APIは、Application Program Interfaceの略で、アプリケーションが情報を利用(参照・生成など)をするためのインターフェイスのことだね。 さらら: あっ、そう。そうだったわね。 たけち: そのAPIとして、DOMのほかにもうひとつ、SAX(Simple API for XML)っていうのがあるんだ。 |
さらら: SAX? たけち: SAXは、Simple API for XMLの略なんだけど、その名の通り、XMLのための単純な(Simple) APIのことなんだ。 さらら: へぇ〜。それもやっぱり、W3Cで決めたものなの? たけち: DOMはW3Cが中心となって策定したものなんだけど、、SAXはDavid Megginsonという人を中心にXML-DEV Mail Listを通じて作ったAPIなんだ。 さらら: へぇ、すごいわねぇ〜。個人が中心で、しかもメールでやり取りして決めるなんて。 たけち: それぞれのサイトは次をみるといいよ。SAXについてはSAXプロジェクトのサイトを参考にさせてもらうね。 さらら: あっ、はい。 |
|
■SAXの特徴
さらら: で、そのSAXってDOMとどう違うの? たけち: そうだね。じゃぁ、DOMについても復習してみようね。 |
DOMの特徴
|
たけち: 一方、SAXは、XMLドキュメントを読み込みながら、アプリケーションに読み込んだXMLドキュメントの要素や内容について、知らせてくれるAPIなんだ。 |
SAXの特徴
|
■SAXの概要
さらら: う〜ん。なんとなく違いはわかるけど、そのイベントってどんな風なものなの? たけち: そっか。。。じゃあ、大まかなところだけだけど、SAXがどんなものか、もう少し具体的にみてみようか。 さらら: ええ。 たけち: SAXに対応したXMLパーサは、XMLドキュメントを先頭の行から読み込み、タグや内容となるテキストを見つける都度、イベントとしてアプリケーションに知らせるんだけど、ドキュメントの内容についての主なイベントには次のようなものがあるんだ。 |
|
たけち: 図にSAXインターフェイスを通じてアプリケーションにイベントが知らされる様子を概念的だけど、載せておくね。 |
さらら: XMLデータを読み込んで、要素なんかが見つかるたびに、アプリケーションに教えてくれるってわけね。そっか。。。あっ。でも、DOMとSAXの違いはなんとなく分かったけど、どんな風に使い分けたらいいの? たけち: そうだねぇ〜。絶対こうだ、って言えないけど。。。アプリケーションの目的や扱うXMLデータの大きさにもよると思うけど、だいたいは次のような区別をするといいんじゃないかなぁ。 |
|
さらら: そうかぁ〜。あっちこっちたどりながら処理するのにはDOMがいいのね。で、ひとつずつ順に要素を見てゆけば処理ができちゃうときなんかは、SAXがいいってことなのね。 たけち: そうだね。 さらら: でも、実際にSAXを使うってどうしたらいいの? たけち: うん。これから具体的にSAXを使ってみようと思うんだけど、それにはSAXを扱うためのJava環境の用意をしなくちゃ、ね。 さらら: えっ? それって、SAXを使ったプログラムを作るってこと? たけち: そう。 |
さらら: う〜ん。でも大丈夫かしら。私でもわかるかなぁ〜。 たけち: ひとつひとつ、少しずつやってゆくから心配しないで。じゃ、次からは、SAXを扱うためのJava環境の用意をしようね。 さらら: うっ、うん。頑張る。 → まずは、SAXを使う準備-1です。 (^ ^; |