![]() |
赤紫蘇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"); |