xmlns(xmlns ズムリンクス)とは | 意味や読み方など丁寧でわかりやすい用語解説
xmlns(xmlns ズムリンクス)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
XML名前空間 (エックスエムエルナマエクウカン)
英語表記
XML namespace (エックスエムエル ネームスペース)
用語解説
xmlnsとは、XML名前空間(XML Namespaces)を宣言するための属性のことだ。XML文書内で要素名や属性名が衝突するのを防ぎ、異なる語彙(ボキャブラリ)を混在させて利用できるようにするための仕組みを提供する。簡単に言えば、XML文書における「苗字」のようなもので、同じ名前の要素でも、どのグループ(名前空間)に属するかを区別できるようにする。
XMLは、データの構造を記述するためのマークアップ言語であり、さまざまな分野で利用されている。例えば、Webページの構造を記述するHTMLもXMLの一種だし、企業間でデータを交換するための形式としてもXMLは広く用いられている。しかし、異なる分野でXMLを利用する場合、同じ要素名が異なる意味で使用される可能性がある。この問題を解決するために、XML名前空間が導入された。
xmlns属性は、XML文書のルート要素、または必要となる要素で宣言される。宣言の方法は、xmlns:プレフィックス="URI" という形式で行う。ここで、プレフィックスは名前空間を識別するための短い文字列で、URIは名前空間を識別するためのユニークな識別子だ。URIは必ずしもWeb上のアドレスである必要はなく、単に一意な文字列であればよい。通常は、URIとしてWebアドレスが用いられることが多いが、これはその名前空間を管理する組織や団体のWebサイトであることが一般的だ。
例えば、HTMLの要素とSVGの要素を同じXML文書内で使用したい場合を考えてみよう。HTMLのtable要素とSVGのtable要素は、同じ名前だが意味が異なる。この問題を解決するために、HTMLの名前空間とSVGの名前空間をそれぞれ宣言し、要素名をhtml:table、svg:tableのようにプレフィックスを使って区別する。
具体的な例を挙げると、以下のようになる。
1<root xmlns:html="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg"> 2 <html:table> 3 <tr> 4 <td>データ1</td> 5 <td>データ2</td> 6 </tr> 7 </html:table> 8 <svg:svg width="100" height="100"> 9 <svg:circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" /> 10 </svg:svg> 11</root>
この例では、xmlns:html="http://www.w3.org/1999/xhtml"でHTMLの名前空間を、xmlns:svg="http://www.w3.org/2000/svg"でSVGの名前空間を宣言している。そして、html:tableやsvg:circleのように、要素名の前にプレフィックスを付けることで、どの名前空間に属する要素かを明確にしている。
プレフィックスは、任意に決めることができるが、一般的には、その名前空間を表す略称や、よく知られた名前空間の場合は慣習的に使用されるプレフィックスを用いる。例えば、HTMLの名前空間にはhtml、SVGの名前空間にはsvgがよく使われる。
また、デフォルトの名前空間というものも設定できる。これは、プレフィックスなしで要素名を使用した場合に、どの名前空間に属するとみなすかを指定するものだ。デフォルトの名前空間は、xmlns="URI"という形式で宣言する。
1<root xmlns="http://www.w3.org/1999/xhtml"> 2 <table> 3 <tr> 4 <td>データ1</td> 5 <td>データ2</td> 6 </tr> 7 </table> 8</root>
この例では、xmlns="http://www.w3.org/1999/xhtml"でHTMLの名前空間をデフォルトの名前空間として宣言している。そのため、table要素は、プレフィックスなしで使用されているが、HTMLの名前空間に属するとみなされる。
xmlns属性は、XML文書の整合性を保ち、異なる語彙を組み合わせた複雑なXML文書を扱う上で不可欠な要素だ。システムエンジニアを目指すなら、XMLを扱う機会は非常に多いので、xmlnsの概念と使い方をしっかりと理解しておくことが重要となる。特に、XML SchemaやXSLTなど、XML関連技術を習得する上では、xmlnsの理解が前提となる。異なるシステム間でXMLデータを交換する際には、名前空間を意識した設計を行うことで、データの誤解釈を防ぎ、スムーズな連携を実現することができる。