赤紫蘇2

XMLによるC++のためのオブジェクト永続化ライブラリ

akaxiso2.0-beta3



赤紫蘇2とは.....

ダウンロードとビルド
(Getting Started)

リファレンス

リリースノート

過去の記録

赤紫蘇を育てる人たち

リンク

SourceForge.jp


赤紫蘇2は、C++オブジェクトをXML文書へとシリアライズ、デシリアライズするためのオープンソースライブラリです。
XML文書とC++オブジェクトを相互に変換し、C++オブジェクトの永続化を実現します。
データモデルは、XMLスキーマに準じており、XMLスキーマコンパイラ、忍坂2によるC++ソースの自動生成も可能とします。

・近況 + 進捗

半年ちょっとの間、時間がとれず、作業が止まっています。すみません。
その間に、1000ダウンロードに達しました。ご興味を持ってくださった皆さん、ありがとうございます。
現行のソースは、正式リリースとなる予定です。
開発としては、小休止状態ですが、ご興味をお持ちの方、是非、お試しください。
beta3の内容に基づき、ホームページを、アップデートしました。 2005/12/25
(一部、作成中のページが残っています。)
また、beta2のWebページについては、http://akaxiso.sourceforge.jp/beta2以下へと移動しました。
beta3のスナップショットをリリースしました。(ダウンロードページへ)  2005/12/25
次回の正式なbeta3のリリースの内容との差分は、ごくわずかとなります。

beta3では、主要なAPIのコンパイル時の互換性を保ちつつ、機能の追加、詳細化を行っています。

以下、beta3における主要な変更・改善点です。

・赤紫蘇2内部の文字コードをUTF-8に統一しました。

  • もちろん、プログラムを書く環境は、UTF-8に限定されるわけではなく、Shift_JIS、euc-JPなど、それぞれのOSの環境にあわせて書くことができます。
    内部エンコーディングをUTF-8とすることで、単純型の値検証コードの実装が、プラットフォーム固有の文字コードに依存しなくなりました。

・XMLパーサの文字コード変換エンジンが不必要になりました。

  • これまでの赤紫蘇2の実装では、XMLパーサ内部にたくしこまれた文字コード変換エンジンを使用していました。たとえば、文字コード変換エンジンであるICUは、XMLパーサであるXerces-C++内部からよびだされていました。このため、Xerces-C++を自前でリビルドする必要がありました。
    beta3では、XMLパーサと、文字コード変換エンジンが、分離されます。XMLパーサは、文字コード変換の責任を負わず、Unicodeのみを処理します。また、その前段に独立に配置される文字コード変換エンジンとして、UNIX環境では、iconv、ICUを、Windows環境では、Win32 API、MLang、ICUを、それぞれ選択可能としました。

・高速なC言語ベースのXMLパーサ、expatを標準としました。

  • これまで、赤紫蘇は、Xerces-C++、yggdrasilなど、C++言語ベースのパーサを使用していました。ただし、赤紫蘇2自体は、純粋なSAXパーサのみを使用します。そこで、軽量、高速なC言語によるXMLパーサの決定版、expatを標準としました。
XML Schema Test Suite によるテストを導入しました。
  • ここ数ヶ月の間に、W3Cより、XML Schema Test Suiteが、更新されています。
    赤紫蘇2は、スキーマコンパイラ、忍坂2を実装しています。この新しいテストを用いるテストプログラムを書き起こし、忍坂2が、より安定な実装となるよう、テストを行っています。
    現在、異常なXMLスキーマ文書の処理時に、コアダンプしないこと、無限ループに陥らず、エラーを生成することの検証が、随時行えるようになっています。
    また、正常なXML Schema文書に対して、(非サポート範囲を除き、)最後まで、ソースが生成されることの検証もあわせて行いました。

・実行速度に対するチェックを行い、高速化しました。

  • プログラムの実行速度をプロファイラにてチェックし、高速化しました。
    デシリアライザは、XML文書からC++クラスへの、テキスト値->バイナリ値変換を行うため、必然的に、ある程度ではありますが、妥当性検証機能を持つことになります。これと対比されるXerces-C++の妥当性検証を伴ったDOM/SAX2のパースを行った場合と同等のスピードで、動作するようになりました。

・前回のリリースであるbeta2については、こちらをご参照ください。

ご意見、ご要望については、森野(smorino@users.sourceforge.jp)まで。
もしくは、赤紫蘇ユーザ用メーリングリストに(登録投稿)どうぞ。


赤紫蘇2トップへ sourceforgeプロジェクトページへ