ポイント#9 XML文書を操作するAPI
XML文書を処理するアプリケーションは、直接XML文書を操作するのではなく、XMLパーサを経由して目的の操作を行うのが一般的だ。XMLパーサは、XML文書がスキーマに適合しているかをチェックしたり、スタイルシートを適合させてフォーマットを変換したり、XML文書の内容を更新したり追加したりといった、XML文書を操作するためのさまざまな機能を備えた専用のプログラムだといえるだろう。現在のところ、マイクロソフトのMSXMLや、IBMのXML4JなどいくつかのXMLパーサが提供されている。
アプリケーションプログラムからXMLパーサのさまざまな機能を利用するために、幾つかの標準的なAPIが用意されている。その最も一般的なAPIのセットがDOMとSAXの2つだ。これらのAPIはプログラミング言語やプラットフォームに依存しない。XMLを扱うアプリケーションはJavaで記述されることが多いようだが、もちろんPerlでもVisual BasicでもC/C++でも可能である。開発者はDOMやSAXのAPIを利用して、Webページの表示やXML文書の操作などあらゆる場面に応じたプログラムを自在に記述することができる。
DOMとSAXは、それぞれ異なる特徴を備えている。DOMは、XML文書をDOMツリーと呼ばれるツリー構造に分解したものをメモリ上に展開し、そのツリー構造に対してさまざまな操作を行う。そのため、メモリ使用量が大きくなる。一方のSAXは、XML文書を順番に解析していき、タグや内容ごとにイベントを発生、イベントごとに処理をしていくというシンプルな構造のため、大規模なXML文書でも比較的高速で少ないメモリ量で処理可能だ。
DOMはW3Cから提案され、レベル1と2の一部を除き大半が勧告となっている。また、新たにレベル3で拡張が進んでいる。一方のSAXはW3Cとは関係なく、多くの技術者がコミュニティの中で協力し合って作成したものだ。その特徴を生かして使い分けることで、よりよいXMLアプリケーションの実現が可能になる。
Copyright © ITmedia, Inc. All Rights Reserved.