2002年1月27日(日)更新 |
■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ってDOMとどう違うの? たけち: そうだね。じゃぁ、DOMについても復習してみようね。 |
DOMの特徴
|
たけち: 一方、SAXは、XMLドキュメントを読み込みながら、アプリケーションに読み込んだXMLドキュメントの要素や内容について、知らせてくれるAPIなんだ。 |
SAXの特徴
|
■SAXの概要仕様
さらら: う〜ん。なんとなく違いはわかるけど、そのイベントってどんな風なものなの? たけち: そっか。。。じゃあ、大まかなところだけだけど、SAXがどんなものか、もう少し具体的にみてみようか。 さらら: ええ。 たけち: SAXに対応したXMLパーサは、XMLドキュメントを先頭の行から読み込み、タグや内容となるテキストを見つける都度、イベントとしてアプリケーションに知らせるんだけど、ドキュメントの内容についての主なイベントには次のようなものがあるんだ。 |
|
たけち: 図にSAXインターフェイスを通じてアプリケーションにイベントが知らされる様子を概念的だけど、載せておくね。 |
さらら: XMLドキュメントを読み込んで、要素なんかが見つかるたびに、アプリケーションに教えてくれるってわけね。そっか。。。あっ。でも、DOMとSAXの違いはなんとなく分かったけど、どんな風に使い分けたらいいの? たけち: そうだねぇ〜。絶対こうだ、って言えないけど。。。アプリケーションの目的や扱うXMLドキュメントの大きさにもよると思うけど、だいたいは次のような区別をするといいんじゃないかなぁ。 |
|
さらら: そうかぁ〜。あっちこっちたどりながら処理するのにはDOMがいいのね。で、一度ざっと見てゆけば処理ができちゃうときなんかは、SAXがいいのね。 たけち: まぁ、そんなところかな。じゃ、これでSAXの概要についてはいいね。 さらら: ありがと。 |