赤紫蘇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)まで。
もしくは、赤紫蘇ユーザ用メーリングリストに(登録、投稿)どうぞ。
|