赤紫蘇 2.

忍坂2(α)


忍坂2は、XML-Schemaドキュメントから、シリアライザブルなクラスを生成するためのスキーマコンパイラです。

コマンドライン

osixaka2 [-p] [-d] [-o ディレクトリ名] <XML Schemaファイル>

オプション

オプション文字 意味

-p

スキーマファイルをパースするのみで終了する。
-d パースされたスキーマドキュメントを、シリアライズする。
-o <ディレクトリ名> 出力ディレクトリの指定。無指定の場合カレントディレクトリ

例として、忍坂2による、XML Schemaのためのスキーマ文書生成について説明します。

XMLSchemaは、以下の二つのスキーマ文書により定義されています。

名前空間URI ファイル名 オリジナルスキーマのURL
http://www.w3.org/2001/XMLSchema XMLSchema.xsd http://www.w3.org/2001/XMLSchema.xsd
http://www.w3.org/XML/1998/namespace xml.xsd http://www.w3.org/2001/xml.xsd

これらのファイルは、オリジナルのスキーマです。
忍坂2でのスキーマ生成では、以下の前処理を施す必要があります。

前処理を施したファイルは、akaxiso2/osixaka2以下にあります。このファイルを使用して、以下のコマンドを実行してください。

Windowsの場合(akaxiso2\binディレクトリにて)

akaxiso2\bin> osixaka2 ..\osixaka2\XMLSchema.xsd

Linuxの場合(akaxiso2/osixaka2ディレクトリにて)

$ ./osixaka2 XMLSchema.xsd

この操作により、element.h/xiso.h/xiso.cppの三つのファイルが生成されます。それぞれの内容を以下に示します。

ファイル名
内容
element.h シリアライザブルなクラスの宣言
シリアライズ関数の宣言
xiso.h leaf<>クラスの宣言
xiso.cpp leaf<>クラスの実装
シリアライズ関数の実装

以上のファイルをコンパイルし、赤紫蘇ライブラリとリンクすることで、XML Schemaドキュメントのシリアライズ、デシリアライズが可能となります。デシリアライズ、シリアライズするためのサンプルコードは、osixaka2/test_main.cpp(HTML版)をご参照ください。
(Linuxであれば、osixaka2ディレクトリで、make parserを行うことで、ビルドできます。)

仕様、制限、未実装部など


ホームに戻る 赤紫蘇2プロジェクトページへ SourceForge.jp