|  |  | 赤紫蘇２．リファレンス
|  | aka:sequence 複雑型メンバ
| akaxiso2.0-beta1 |
| 目次 はじめに 1. 概要 2. ライブラリAPI 3.単純型 4. 組み込み型 5. 配列 6. ポインタ 7. データモデル 8. aka:sequence 8.1 メンバ定義(単純型) 8.2 メンバ定義(複雑型) 8.3 出現頻度定義 9. aka:all 10 aka:choice 10.1 要素の定義 10.2 固定値の定義 10.3 mocクラス 10.4 itemの扱い 11 aka:simplecontent 12 属性 13 XML Schema機能対応表 |  | 前節では、単純型のメンバに関する定義について、説明をしました。 本節では、複雑型、特殊なクラス型のメンバに関する定義、また、グループ参照について、説明を加えます。 複雑型をメンバとして持つ場合 クラスをメンバとして持つ場合にも、単純型と同様の定義を使用します。ただし、グループ参照、aka::any、aka::any_array(xs:anyType)の使用などの特別な用法がいくつかあります。 グループの参照 タグ名の頭に'&'を使用することで、そのタグは(デ)シリアライズ時に無視され、<xs:group>を用いたグループ参照と等価な機能を実現できます。たとえば、すでに定義されたleafクラスを用いて、新規のクラスを定義することができます。 ワイルドカード要素 定義済みクラスとしてaka::any、aka::any_arrayを用いることができ、ワイルドカード要素の処理を可能とします。 aka::any型を使用する場合には、any()を用いて、メンバの宣言を行います。
    template<class P>
    void any(const std::string &tagname, aka::any P::* m);
aka::any型の配列であるaka::any_arrayを使用する場合、出現頻度指定つきのanyを使用します。
    template<class P>
    any(const std::string &tagname, aka::any_array P::* m, int minOccurs, int maxOccurs)
タグ名として、頭に'&'をつけた名前を与えた場合、<xs:any>のように、タグ名にかかわらず、aka::any、aka::any_arrayにデシリアライズされた内容が書き込まれます。 また、頭に'&'をつけない場合、型として、xs:anyTypeを定義したことと同等となり、要素の内容モデルがワイルドカードとなります。

リファレンストップに戻る 赤紫蘇ホームページへ sourceforgeプロジェクトページへ