![]() |
赤紫蘇2.リファレンス |
||
|
名前空間とQName |
|||
| akaxiso2.0-beta2 | |||
|
|
|||
赤紫蘇は、名前空間と、名前空間により修飾される名前(Qualified Name、以降、QName)をサポートします。 XMLにおいては、名前空間はURIにより識別されます(以降、名前空間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を書き換えることも可能です。
/* URI "http://akaxiso.sourceforge.jp"と、プレフィックス "aka"を対応付ける。 */
aka::xmlns("aka", "http://akaxiso.sourceforge.jp");
/* akaの代わりに akaaka がプレフィックスとして用いられる。
aka::xmlns("akaaka", "http://akaxiso.sourceforge.jp");
|
|||
