赤紫蘇 2.

赤紫蘇とは.....


赤紫蘇は以下に示す特徴をもった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.オープンソース、フリーウエアです。

  • 調査してみましたが、赤紫蘇と同類のライブラリで、フリーでオープンソースであるものは、非常に少ないのが現状です。この穴を埋めていきたいと考えています。