XML名前空間
Namespace in XML / XML-Names
XMLでは、標準的なマークアップ言語(例:XHTML)に対して、それぞれの業務や分野独自の情報を付け足して扱うことが期待されていた。それを行うと、1つのXML文書内に、異なる言語で記述された情報が混在することになる可能性がある。そのとき、同じ名前の要素や属性が、異なる意味で定義されていると混乱が起きる。こうした混乱を避けるために利用するのがXMLにおける名前空間だ。
以下がその例である。
以下はtitle要素が肩書きを示すXML文書とする。
<title>President</title> |
以下はtitle要素が文書の標題を示すXML文書とする。
<title>Monthly Report</title> |
上記の2つの情報を一つのXML文書に記述すると……
<ComplexDocument> |
このデータを処理するアプリケーションソフトは、2種類のtitle要素を区別できず、うまく扱うことができなくなる。
そこで、それぞれの要素や属性に対して、名前空間と呼ばれるものを定義する。名前空間は、URIで識別される。上の例の前者は、http://hoge/personという名前空間に属するとしよう。そして、後者はhttp://hoge/documentという名前空間に属するとする。すると、この文書は以下のように記述できる。
<ComplexDocument |
このように記述することで、それぞれの要素が具体的に、2つのtitle要素が別のものを示していることが明確に分かる。また、区別が可能になるだけでなく、具体的に何を示しているのかも分かる。
名前空間を示すURIは、全世界でユニークな名前を確保するために使用されているもので、URIの示す先に何かの情報が存在する必要はまったくない。また、何かの情報があることを期待してはいけない。
名前空間の問題は、DTDにおける名前空間のサポートが不十分であるということだ。そのため、このことがDTD以外のスキーマ言語を求めるニーズが生まれる理由の1つとなっている。
名前空間はW3Cの勧告であり、XML 1.0を一部拡張するような形で構成されている。
関連記事
関連用語
リンク
- QAフレームワーク:仕様ガイドラインが勧告に昇格 (2005/10/21)
データベースの急速なXML対応に後押しされてか、9月に入って「XQuery」や「XPath」に関係したドラフトが一気に11本も更新された - XML勧告を記述するXMLspecとは何か (2005/10/12)
「XML 1.0勧告」はXMLspec DTDで記述され、XSLTによって生成されている。これはXMLが本当に役立っている具体的な証である - 文字符号化方式にまつわるジレンマ (2005/9/13)
文字符号化方式(UTF-8、シフトJISなど)を自動検出するには、ニワトリと卵の関係にあるジレンマを解消する仕組みが必要となる - XMLキー管理仕様(XKMS 2.0)が勧告に昇格 (2005/8/16)
セキュリティ関連のXML仕様に進展あり。また、日本発の新しいXMLソフトウェアアーキテクチャ「xfy technology」の詳細も紹介する
|
|