javax.xml.namespace.NamespaceContext インターフェース
NamespaceContenxt は、簡単に言えば、接頭辞と名前空間 URI のマップです。 接頭辞をキーにして名前空間 URI を取得したり、その逆をしたりできます。
ただし、1つの名前空間 URI に複数の接頭辞が関連づけられていることがあるので注意が必要です。 全ての接頭辞を取得したい場合は getPrefixes() メソッド*1を、任意の1つの接頭辞を取得したい場合は getPrefix() メソッドを用います。
もう少し具体的に各メソッドで返される文字列を見ていきましょう。
getNamespeceURI(String) メソッド
引数(接頭辞) | 返り値(名前空間 URI) |
---|---|
定義されている接頭辞 | 対応する名前空間 URI |
定義されていない接頭辞 | "" |
"" | デフォルト名前空間 URI*2 ただし、定義されていない場合は "" |
"xml" | "http://www.w3.org/XML/1998/namespace" |
"xmlns" | "http://www.w3.org/2000/xmlns/" |
null | IllegalArgumentException が投げられる |
getPrefixes(String) メソッド
引数(名前空間 URI) | 返り値(接頭辞の Iterator) |
---|---|
定義されている名前空間 URI (デフォルト名前空間 URI を含む) | 対応する接頭辞全てを含む Iterator |
定義されていない名前空間 URI | 要素を持たない Iterator |
"http://www.w3.org/XML/1998/namespace" | "xml" のみを含む Iterator |
"http://www.w3.org/2000/xmlns/" | "xmlns" のみを含む Iterator |
null | IllegalArgumentException が投げられる |
Iterator で返される接頭辞の順番は実装に依存します。
getPrefix(String) メソッド
引数(名前空間 URI) | 返り値(接頭辞) |
---|---|
デフォルト名前空間 URI | "" |
定義されている名前空間 URI | 対応する接頭辞(複数ある場合は適当に選出される) |
定義されていない名前空間 URI | null |
"http://www.w3.org/XML/1998/namespace" | "xml" |
"http://www.w3.org/2000/xmlns/" | "xmlns" |
null | IllegalArgumentException が投げられる |