Expat
![]() |
作者 | ジェームズ・クラーク |
---|---|
開発元 | Clark Cooper, et al. |
初版 | 1998年 |
最新版 | |
リポジトリ | |
プログラミング 言語 | C言語 |
対応OS | ポータブル |
種別 | XMLパーサライブラリ |
ライセンス | MIT License[2] |
公式サイト |
libexpat |
Expatは、C言語(C99)で記述されたストリーム指向のXML 1.0パーサライブラリである[3]。最初期に登場したオープンソースの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は主にストリームベース(プッシュ型)のパーサであるが、任意の時点で解析を停止・再開できるため、「プル」型パーサの実装も比較的容易である。
脚注
[編集]- ^ "Release 2.7.1 · libexpat/libexpat"; 閲覧日: 2025年3月28日; 作品または名前の言語: 英語.
- ^ “COPYING”. Github. 2019年9月16日閲覧。
- ^ Pipping, Sebastian (2024年2月6日). “Expat 2.6.0 released, includes security fixes”. www.xml.com. 2024年9月4日閲覧。