XML Name space
)XHTML
を学ばれた方がはじめて接する「名前空間」とは、一体何を意味するのでしょう。
そして、XML
文書中で定義する名前空間とは、どのような機能を持っているのでしょうか
XML
では、自分自身で スキーマの1つである DTD
を定義して、要素や属性、実体参照を利用します。しかし、他の規格化されたスキーマを利用する場合に、文書中でそのスキーマを指定して参照することができます。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
が付与されているのは、こうした意味を持っており、作者の名付けた要素名と衝突することを避けるために明確化します。