倭マン's BLOG

くだらない日々の日記書いてます。 たまにプログラミング関連の記事書いてます。 書いてます。

org.dom4j.Element に定義されている名前空間関連のメソッド (3)

今回扱うメソッドは以下の3つです(一覧):

  • getNamespaceForPrefix(String) : Namespace
  • getNamespaceForURI(String) : Namespace
  • getNamespacesForURI(String) : List

getNamespaceForPrefix(String) : Namespace


このメソッドは、引数の文字列を接頭辞とする名前空間を返します。 このメソッドの振る舞いは以下のようになります:

  1. 対象要素に対応する名前空間が宣言されていれば、それを返す
  2. 対象要素に対応する名前空間が宣言されていなければ祖先要素へ遡って名前空間を探す
  3. 祖先要素にも対応する名前空間がなければ null を返す

以下の XML 文書

<parent xmlns:a="ns-a">
  <child xmlns:b="ns-b"/>
</parent>

の <child> 要素に対してこのメソッドを呼び出すと、以下のような Namespace オブジェクトが返されます:

  • getNamespaceForPrefix("b") → 名前空間 "ns-b"
  • getNamespaceForPrefix("a") → 名前空間 "ns-a"
  • getNamespaceForPrefix("c") → null
  • getNamespaceForPrefix("") → NULL 名前空間 ""

getNamespaceForURI(String) : Namespace


このメソッドは、引数の文字列を名前空間 URI とする名前空間を返します。 このメソッドの振る舞いは以下のようになります:

  1. 対象要素に対応する名前空間が宣言されていれば、それを返す(複数宣言されていれば、いずれか1つが返される)
  2. 対象要素に対応する名前空間が宣言されていなければ祖先要素へ遡って名前空間を探す(複数宣言されていれば、いずれか1つが返される)
  3. 祖先要素にも対応する名前空間がなければ null を返す

以下の XML 文書

<parent xmlns:a="ns-a">
  <child xmlns:b="ns-b"/>
</parent>

の <child> 要素に対してこのメソッドを呼び出すと、以下のような Namespace オブジェクトが返されます:

  • getNamespaceForURI("ns-b") → 名前空間 "ns-b"
  • getNamespaceForURI("ns-a") → 名前空間 "ns-a"
  • getNamespaceForURI("ns-c") → null
  • getNamespaceForURI("") → NULL 名前空間 ""

getNamespacesForURI(String) : List


このメソッドは、引数の文字列を名前空間 URI とする名前空間のリストを返します。 このメソッドは、対象要素に対応する名前空間が宣言されていなくても祖先要素へ遡って名前空間探しません。 対応する名前空間がなければ 空リストを返します。 

以下の XML 文書

<parent xmlns:a="ns">
  <child xmlns:b="ns" xmlns:c="ns"/>
</parent>

の <child> 要素に対してこのメソッドを呼び出すと、以下のような Namespace オブジェクトのリストが返されます:

  • getNamespaceForURI("ns") → [(接頭辞 "b" の "ns" 名前空間), (接頭辞 "c" の "ns" 名前空間)]
  • getNamespaceForURI("ns-a") → 空リスト
  • getNamespaceForURI("") → 空リスト