WWW INFOMATION
XML top >>名前空間

名前空間

 名前空間について以下に説明します。
名前空間とは 名前空間の使用方法

 名前空間とは

 XMLはタグの表記が自由にできるため、複数人でXMLを作成した場合など同じタグ名を違う意味で使用してしまうことがあります。例えば、Aさんは映画用のXMLを作成し、Bさんは書籍用のXMLを作成し、最後に2つのXMLを合わせるとします。このとき、<title>というタグをAさんもBさんも作成していましたが、Aさんは映画のタイトルを意味するつもりで使用していますし、Bさんは書籍のタイトルを表すつもりで使用しています。名前空間を使用するとこのようなケースを解決できます。

 名前空間は、一つのXML文書内で同じタグを別のタグとして認識させる方法です。

 上記の例のXMLのサンプルを書いてみます。

<?xml version="1.0" ?>
<media>

  <!-- Aさんが書いた映画用のXML  -->
  <title>THE Last Samurai</title>
 <review>◎</review>

  <!-- Bさんが書いた書籍用のXML  -->
  <title>赤と黒</title>
 <review>名作</review>

</media>

 これに名前空間を使用すると以下のようになります。

<?xml version="1.0" ?>
<media>

  <!-- Aさんが書いた映画用のXML  -->
  <A:title xmlns:A="URLA" >THE Last Samurai</A:title>
 <A:review>◎</A:review>

  <!-- Bさんが書いた書籍用のXML  -->
  <B:title xmlns:B="URLB" >赤と黒</B:title>
 <B:review>名作</B:review>

</media>

 名前空間は、比較的新しい仕様であるため、古い仕様では対応していないことがありあます。(DTDは名前空間に対応していません。)

 名前空間が最も効果的に役立つのは、既存の優れた仕様と自己流の仕様を混在させる場合です。例えば、グラフィックデータを表現するSVGというXMLの仕様があります。自分のXMLの中にSVGグラフィックデータを部分的に挿入する場合、SVGで使用しているタグ名と自分のタグ名が重ならないように名前空間を使用します。

名前空間の使用方法

 名前空間は要素に対して指定します。指定する位置は、名前空間を使用する要素か、それより上位の要素になります。

 以下名前空間を使用し始める際の指定の方法です。

< 要素名 XMLNS : プリフィックス = "名前空間URI" >

 プリフィックスは、使用している名前空間を識別するための文字列です。名前空間URIは、URIとしていますが、世界で一意の文字列であれば何でも構いません。URIは世界で一意となるので、ほとんどの場合、URIが指定されます。

 どの要素がどの名前空間に属するかということは、要素の前にプリフィックスと":"(コロン)を付けることにより判別します。

 また、プリフィックスを使用しない方法もあります。

< 要素名 XMLNS = "名前空間URI" >

 上記の指定をした場合、プリフィックスの付いていない(普通の)要素は全て、上記の名前空間に属することになります。

 以下、サンプルです。(A要素の中で、複数名前空間を指定しています。)

<?xml version="1.0" ?>
<A xmlns="http://www.aaa.co.jp"
    xmlns:NM1="http://www.aaa.co.jp/name1.txt">

  <B>面白くない世界を</B>
 <NM1:C>面白くしようよ。</NM1:C>

</A>

 要素A、Bは、プリフィックスがないのでデフォルトの名前空間 [http://www.aaa.co.jp]に属します。要素Cは、プリフィックスNM1が要素名に付いているので、名前空間[http://www.aaa.co.jp/name1.txt]に属します。

戻る   進む