名前空間 (XML Name space)

XHTMLを学ばれた方がはじめて接する「名前空間」とは、一体何を意味するのでしょう。

そして、XML文書中で定義する名前空間とは、どのような機能を持っているのでしょうか

名前空間とボキャブラリ
XMLでは、自分自身で スキーマの1つである DTD を定義して、要素や属性、実体参照を利用します。しかし、他の規格化されたスキーマを利用する場合に、文書中でそのスキーマを指定して参照することができます。
例えば、ベクター形式で表現する言語の1つである SVG や、数学表現に利用できるマークアップ言語 MathML のような規格化された言語などを、スキーマの1つとして、XML文中で利用することが可能になっています。
XML文書を記述するためには、要素や属性を使用します。要素や属性は、利用目的に応じて、意味のある「まとまり」として規定されます。この意味のあるまとまりを、「ボキャブラリ」と呼び、ある種のスキーマを指します。
名前空間と接頭辞
名前空間を利用してそのボキャブラリと、自身が作成した DTD と同じ要素名が出現した場合、それはどのようにして区別するのか、といった問題が提起されます。
それを解決するために、名前空間に接頭辞を付与して、要素型の区別を明確にします。
例えば、以下の XMLデータを見てみましょう。
<document> 
  <title>初心者のためのホームページ作り</title>
  <title>ばんばん</title>
</document> 
両者とも title要素で囲まれていますが、前者はサイトのタイトルであり、後者は作者の意味を持っています。これを明確に区別するため、名前空間の接頭辞によって解決します。
以下の XMLインスタンスでは、名前空間によって両者の区別を明確に区別しているのが理解できるでしょう。
<document xmlns:book="http://banban/book" 
        xmlns:authoe="http://banban/author" > 
  <book:title>初心者のためのホームページ作り</title>
  <author:title>ばんばん</title>
</document> 
このようにして、それぞれの title要素に接頭辞をつけることによって、その要素型を参照し区別することができます。
前項XSLにおける要素名では、接頭辞 xmlns:xsl が付与されているのは、こうした意味を持っており、作者の名付けた要素名と衝突することを避けるために明確化します。


Valid XHTML 1.1! Valid CSS! 初版更新日 2003年10月12日   最新更新日 2004年3月31日
Copyright(C) 2002〜2004 banban@scollabo.com