赤紫蘇を育てる人たちリンク赤紫蘇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のみを処理します。API、MLang、ICUを、それぞれ選択可能としました。・高速なC言語ベースのXMLパーサ、expatを標準としました。これまで、赤紫蘇は、Xerces-C++、yggdrasilなど、C++言語ベースのパーサを使用していました。赤紫蘇2自体は、純粋なSAXパーサのみを使用します。そこで、軽量、高速なC言語によるXMLパーサの決定版、expatを標準としました。よるテストを導入しました。Suiteが、更新されています。赤紫蘇2は、スキーマコンパイラ、忍坂2を実装しています。この新しいテストを用いるテストプログラムを書き起こし、忍坂2が、より安定な実装となるよう、テストを行っています。現在、異常なXMLスキーマ文書の処理時に、コアダンプしないこと、無限ループに陥らず、エラーを生成することの検証が、随時行えるようになっています。Schema文書に対して、(非サポート範囲を除き、)最後まで、ソースが生成されることの検証もあわせて行いました。・実行速度に対するチェックを行い、高速化しました。プログラムの実行速度をプロファイラにてチェックし、高速化しました。デシリアライザは、XML文書からC++クラスへの、テキスト値->バイナリ値変換を行うため、必然的に、ある程度ではありますが、妥当性検証機能を持つことになります。これと対比されるXerces-C++の妥当性検証を伴ったDOM/SAX2のパースを行った場合と同等のスピードで、動作するようになりました。・前回のリリースであるbeta2については、こちらをご参照ください。ご意見、ご要望については、森野(smorino@users.sourceforge.jp)まで。赤紫蘇ユーザ用メーリングリストに(登録、投稿)どうぞ。sourceforgeプロジェクトページへ。