赤紫蘇2 リファレンス

aka:choice 単純型の子要素

akaxiso2.0-beta3


赤紫蘇2リファレンス

1.概要
1.1 赤紫蘇2の構成
1.2 プログラムの
開始から終了まで
1.3 文字コードと
文字コード変換エンジン
1.4 名前空間とQName
1.5 マルチスレッディング

2. 赤紫蘇2データモデル
2.1 チュートリアル
2.2 パーティクル
2.3 aka:sequence
2.3.1 単純型の子要素
2.3.2 複合型の子要素
2.3.1 配列型
2.4 aka::all
2.5 aka:choice
2.5.1 複雑型の子要素
2.5.2 単純型の子要素
2.5.3 バインダクラス
2.5.4 子要素オブジェクト
(aka::item)の扱い
2.5.5 子要素の出現頻度
2.6 属性
2.7 aka:simpleContent
2.8 単純型(aka:simleType)
2.8.1

組み込み型

2.9

配列とポインタ

2.,10 ワイルドカード

3 XMLによる永続化
3.1 シリアライズ
3.2 デシリアライズ

付表
A ライブラリ主要API
B XML Schemaとの
機能対応表
C リリースノート

aka:choiceの単純型の子要素については、固定値(@fixed)を指定することができます。

template<class IL>
void fixed_item(const std::string &tagname, const std::string &fixed_value, const IL&) 
template<class IL>
void fixed_array(const std::string &tagname, const std::string &tagname fixed_value, const IL&,
                 int minOccurs, int maxOccurs, bool emptiable = false);

固定値を指定された子要素オブジェクトは、デシリアライズ時に、XMLドキュメント内の値が固定値と等しいか、チェックされます。異なる場合、パースエラーとなります。
また、デシリアライズされた子要素は、コンテナ内に挿入されます。

また、aka:choiceのヘルパオブジェクトである、binderクラスを使用すれば、コンテナ挿入時に、固定値を指定された子要素オブジェクトに、固定値を指定することができます。

固定値は、単純型のみに指定することができます。

注:
aka:sequenceの場合には、固定値メンバは、クラスに定義する必要がありませんでした。これは、aka:sequenceの要素の出現順番が、あらかじめ決まっており、固定値メンバが現れる位置も決まっているからです。
しかし、aka:choiceの場合には、要素の出現位置が決まっていないため、明示的にインスタンスを作成し、コンテナの要素として扱います。


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