|  |  | 赤紫蘇２．リファレンス
|  | 名前空間とQName
| akaxiso2.0-beta2 |
| 赤紫蘇２リファレンス はじめに 1. 概要 2. ライブラリAPI 3.名前空間とQName 4.単純型 5. 組み込み型 6. 配列 7. ポインタ 8. データモデル 9. aka:sequence 9.1 メンバ定義(単純型) 9.2 メンバ定義(複雑型) 9.3 出現頻度定義 10. aka:all 11 aka:choice 11.1 要素の定義 11.2 固定値の定義 11.3 binderクラス 11.4 itemの扱い 11.5 出現頻度定義 12 aka:simplecontent 13 属性 14 シリアライズ 15 デシリアライズ 16 XMLスキーマ機能対応表 |  | 赤紫蘇は、名前空間と、名前空間により修飾される名前(Qualified Name、以降、QName)をサポートします。 XMLにおいては、名前空間はURIにより識別されます(以降、名前空間URIと呼ぶ)。 また、QNameは、名前空間URIに対して対応付けられたプレフィックスと、ローカル名前を ':' (コロン)で繋いだものです。 赤紫蘇２は、内部に名前空間URIと名前空間プレフィックスを対応付けます(aka::xmln()を使用)。また、赤紫蘇２で用いられるQNameは、XMLのQNameと同様、対応付けられた名前空間プレフィックスとローカルな名前を ':' (コロン)で繋ぎ合わせることで作成されます。 XML文書形式を定義する際に、名前空間を用いるためには、まず、aka::xmlns()を用いて、名前空間プレフィックスと名前空間URIを対応付ける必要があります。 QNameを表現する赤紫蘇２のクラスは、aka::qnameです。(ユーザプログラム中で、aka::qnameを直接使用する機会は、通常ありません。) 以下、aka::xmlns()とaka::qnameクラスを用いたコードの例を示します。
    /* URI "http://akaxiso.sourceforge.jp"と、プレフィックス "aka"を対応付ける。 */
    /* これ以降、名前空間プレフィックス'aka'が使用可能 */
    aka::xmlns("aka", "http://akaxiso.sourceforge.jp");

    /* "http://akaxiso.sourceforge.jp"に属し、ローカル名として、"name"を持つQNameを作成する。
    aka::qname name("aka:name");

    /* QNameのフルネーム(qualified form)を出力する。 */
    std::cout << name.qualified() << std::endl;
すでに登録されているprefixを書き換えることも可能です。 この場合、再度、aka::xmlns()を呼び出してください。新しい対応付けが使用されます。
    /* URI "http://akaxiso.sourceforge.jp"と、プレフィックス "aka"を対応付ける。 */
    aka::xmlns("aka", "http://akaxiso.sourceforge.jp");

    /* akaの代わりに akaaka がプレフィックスとして用いられる。
    aka::xmlns("akaaka", "http://akaxiso.sourceforge.jp");

リファレンストップへ 赤紫蘇２トップへ sourceforgeプロジェクトページへ