Expat

Expatは、C言語（C99）で記述されたストリーム指向のXML 1.0パーサライブラリである。最初期に登場したオープンソースのXMLパーサの1つとして、Expatは多くのオープンソースプロジェクトにおいて採用されてきた。こうしたプロジェクトには、Apache HTTP Server、Mozilla、Perl、Python、PHPなどが含まれる。また、他の多くの言語にもバインディングされている。

 名称 
創始者によれば、Expatという名称は、当時自分がエクスパットであったことに由来する。「ex」と「pa」は、それぞれXMLとパースを意味している。

 年表 
ソフトウェア開発者ジェームズ・クラークは、World Wide Web ConsortiumにおいてXMLワーキンググループの技術リードを務めていた1998年に、バージョン1.0をリリースした。クラークはその後、バージョン1.1および1.2をリリースした後、2000年にクラーク・クーパーおよびフレッド・ドレイクを中心とするグループにプロジェクトを引き継いだ。この新たなグループは2000年9月にバージョン1.95.0をリリースし、現在もバグ修正や機能拡張を取り入れた新バージョンの公開を続けている。

 入手 
ExpatプロジェクトはGitHub上にホストされている。主要なオペレーティングシステム向けのバージョンが存在する。

 デプロイ 
Expatライブラリを使用するには、プログラムが最初にExpatに対してハンドラ関数を登録する必要がある。ExpatがXML文書を解析する際、入力ストリーム中のトークンを検出すると、それに応じて登録されたハンドラを呼び出す。これらのトークンと関連するハンドラの呼び出しは「イベント」と呼ばれる。一般に、プログラムはXML要素の開始・終了イベントや文字イベントに対してハンドラ関数を登録する。Expatは、XML名前空間の宣言、処理命令、DTDイベントといった、より高度なイベント処理にも対応している。

Expatの解析イベントは、Simple API for XML（SAX）で定義されたイベントに類似しているが、ExpatはSAX準拠のパーサではない。Expatライブラリを組み込んだプロジェクトでは、SAXや場合によってはDOMパーサをExpatの上に構築することが多い。Expatは主にストリームベース（プッシュ型）のパーサであるが、任意の時点で解析を停止・再開できるため、「プル」型パーサの実装も比較的容易である。

脚注

外部リンク

 Using Expat, Clark Cooper, 1999

Category:XML
Category:MITライセンスを利用するソフトウェア