XML 名前空間は、要素の名前の競合を回避する方法を提供します。
名前の競合
XML では、2 つの異なるドキュメントが同じ要素名を使用すると、要素名が開発者によって定義されます。
この XML には、HTML テーブルの情報が含まれています:
<table>
<tr>
<td>リンゴ</td>
<td>バナナ</td>
</tr>
</table>
この XML ドキュメントには、テーブル (家具) に関する情報が含まれています:
<table>
<name>アフリカン コーヒー テーブル</name>
<幅>80幅>
<length>120</length>
</table>
これら 2 つの XML ドキュメントを一緒に使用すると、両方のドキュメントに異なる内容と定義を持つ <table> 要素が含まれるため、この問題が発生します。
XML パーサーは、そのような競合を処理する方法を決定できません。
名前の競合を避けるために接頭辞を使用する
XML での名前の競合は、名前接頭辞を使用することで簡単に回避できます。
この XML には、HTML テーブルと家具に関する情報が含まれています:
<h:table>
<h:tr>
<h:td>リンゴ</h:td>
<h:td>バナナ</h:td>
</h:tr>
</h:table>
<f:table>
<f:name>アフリカン コーヒー テーブル</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
上記の例では、2 つの
要素の名前が異なるため、競合は発生しません。
XML 名前空間 - xmlns 属性
XML で接頭辞を使用する場合、接頭辞のいわゆる 名前空間 を定義する必要があります。
名前空間は、要素の開始タグの xmlns 属性で定義されます。
名前空間宣言の構文は以下の通りです。 xmlns:接頭語="URI"。
<root>
<h:table xmlns:h="http://www.w3.org/TR/html4/">
<h:tr>
<h:td>リンゴ</h:td>
<h:td>バナナ</h:td>
</h:tr>
</h:テーブル>
<f:table xmlns:f="http://www.w3cschool.cc/furniture">
<f:name>アフリカのコーヒーテーブル</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
</root>
上記の例では、<table> タグの xmlns 属性は、h: および f: プレフィックスの修飾された名前空間を定義します。
要素の開始タグで名前空間が定義されている場合、同じプレフィックスを持つすべての子要素は同じ名前空間に関連付けられます。
名前空間は、それが使用される要素内、または XML ルート要素内で宣言できます:
<root xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="http://www.w3cschool.cc/furniture">
<h:テーブル>
<h:tr>
<h:td>リンゴ</h:td>
<h:td>バナナ</h:td>
</h:tr>
</h:テーブル>
<f:テーブル>
<f:name>アフリカのコーヒーテーブル</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
</root>
注: 名前空間 URI は、パーサーが情報を検索するために使用されません。
目的は、名前空間に一意の名前を付けることです。ただし、多くの企業は、ネームスペースに関する情報を含む実際の既存の Web ページへのポインターとしてネームスペースを使用することがよくあります。
http://www.w3.org/TR/html4/ にアクセスしてください。
Uniform Resource Identifier (URI、正式名:Uniform Resource Identifier)
Uniform Resource Identifier (URI) は、インターネットリソースを識別できる文字列です。
最も一般的に使用される URI は、インターネット ドメイン アドレスを識別するために使用される Uniform Resource Locator (URL) です。あまり一般的には使用されないもう 1 つの URI は、Uniform Resource Naming (URN) です。
この例では、URL を使用しているだけです。
デフォルトの名前空間
要素のデフォルトの名前空間を定義すると、すべての子要素で接頭辞を使用する手間が省けます。その構文は次のとおりです:
この XML には HTML テーブルの情報が含まれます:
<table xmlns="http://www.w3.org/TR/ html4/" >
<tr>
<td>リンゴ</td>
<td>バナナ</td>
</tr>
</table>
この XML には、家具に関する情報が含まれています:
<table xmlns="http://www.w3schools.com/furniture">
<name>アフリカン コーヒー テーブル</name>
<幅>80幅>
<length>120</length>
</table>
使用中の名前空間
XSLT は、XML ドキュメントを HTML などの他の形式に変換するために使用される XML 言語です。
以下の XSLT ドキュメントでは、ほとんどのタグが HTML タグであることがわかります。
非 HTML タグには xsl というプレフィックスが付けられ、次の名前空間によって識別されます: xmlns:xsl="http://www.w3.org/1999/XSL/Transform":
<?xml version=" 1.0"エンコーディング = "ISO-8859-1"?>
<xsl:スタイルシート バージョン="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<本体>
<h2>私の CD コレクション</h2>
<テーブルボーダー="1">
<tr>
<th align="left">アーティスト</th>
</tr>
<xsl:for-each select="カタログ/CD">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:for-each>
</表>
</body>
</html>
</xsl:テンプレート>
</xsl:stylesheet>
XSLT について学びたい場合は、当社のホームページで XSLT チュートリアルを見つけてください。