赤紫蘇は以下に示す特徴をもったC++ライブラリです。 1.XMLスキーマで定義されるXML文書のシリアライズ、デシリアライズを行います。
- 現在、XMLスキーマの以下の要素に対応する機能が、使用できます。
- <xs:element>
- <xs:complexType>
- <xs:sequence>
- <xs:choice>
- <xs:all>
- <xs:attribute>
- 以上の要素に加え、それぞれの出現回数(minOccurs、maxOccurs)、名前空間をサポートします。
2.C++用のライブラリです。
- C++で書かれたクラスのシリアライズ、デシリアライズを行います。
- C++クラスのシリアライズ情報は、別個のクラスに定義されます。
- デシリアライザは内容モデル検証機能を持ちます。パースされたXML文書は、C++のクラスにデシリアライズされた時点で、妥当性検証済みとなります。
- 文字列、コンテナ(配列含む)には、STL(Standard Template Library)を使用します。コンテナに関しては、STLのコンテナと同様のインターフェースを持っていれば、使用可能です。
3.ポータブルなライブラリです。
- Linux(g++-2.96、g++-3.2.2)、Windows(VC6)での動作を確認しました。
- XMLパーサには、Yggdrasill(世界樹)を同梱。赤紫蘇ライブラリのみで、シリアライザとしての機能を実現します。
- Apache XML Project のXMLパーサ ’Xerces-C++’を使うこともできます。
- SAXインターフェースが存在するパーサであれば、デシリアライザエンジンとの間のアダプタを書くことで、新規に対応させることができます。
4.スキーマコンパイラ(C++ソースジェネレータ) ’忍坂’を同梱します。
- XML-Schema文書をコンパイルし、シリアライザ、デシリアライザのC++ソースを生成することができます。
5.オープンソース、フリーウエアです。
- 調査してみましたが、赤紫蘇と同類のライブラリで、フリーでオープンソースであるものは、非常に少ないのが現状です。この穴を埋めていきたいと考えています。
|