赤紫蘇2.リファレンス

名前空間とQName

akaxiso2.0-beta2


赤紫蘇は、名前空間と、名前空間により修飾される名前(Qualified Name、以降、QName)をサポートします。

XMLにおいては、名前空間はURIにより識別されます(以降、名前空間URIと呼ぶ)。
また、QNameは、名前空間URIに対して対応付けられたプレフィックスと、ローカル名前を ':' (コロン)で繋いだものです。

赤紫蘇2は、内部に名前空間URIと名前空間プレフィックスを対応付けます(aka::xmln()を使用)。また、赤紫蘇2で用いられるQNameは、XMLのQNameと同様、対応付けられた名前空間プレフィックスとローカルな名前を ':' (コロン)で繋ぎ合わせることで作成されます。

XML文書形式を定義する際に、名前空間を用いるためには、まず、aka::xmlns()を用いて、名前空間プレフィックスと名前空間URIを対応付ける必要があります。

QNameを表現する赤紫蘇2のクラスは、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");


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