1. ホーム
  2. Web制作
  3. XML/XSLT

XMLの名前空間について簡単に説明します。

2021-12-31 21:27:04

名前空間とは、一意な名前の集合のことです。名前空間は、どの要素や属性名をグループに割り当てることができるかを決定するメカニズムである。名前空間は、URI(Uniform Resource Identifiers)によって識別されます。

名前空間宣言
名前空間は、予約された属性宣言を使用します。このような属性名は、xmlnsであるか、またはxmlns:で始まらなければならない。以下に示すように

XML/HTMLコード コンテンツをクリップボードにコピーする
  1. < 要素 xmlns:名前 = "URL" >

構文
キーワード xmlns で始まる名前空間。
name は名前空間接頭辞です。
URLは名前空間識別子です。



名前空間は、ドキュメントの限られた領域にのみ影響します。この宣言を含む要素とそのすべての子要素は、名前空間の中にあります。以下は、XML 名前空間の簡単な例である。

XML/HTMLコード コンテンツをクリップボードにコピーする
  1. xml バージョン = "1.0" エンコーディング = "UTF-8" ? >
  2. < コンテンツ:コンタクト xmlns:cont = "www.tutorialspoint.com/profile" >
  3. < cont:名前 > タンメイ・パティル < cont:名前 >
  4. < コンテナ:会社 > チュートリアルポイント < コンテナ:会社 >
  5. < コンテンツ:電話 > (011) 123-4567 < コンテンツ:電話 >
  6. < コンテンツ:コンタクト >

ここでは、名前空間の接頭辞は cont で、識別子(URI)は www.tutorialspoint.com/profile です。つまり、cont という接頭辞を持つ要素名と属性名(contact 要素を含む)は、いずれも www.tutorialspoint.com/profile という名前空間に属するということです。

XMLにおける名前空間の使用には、スコープという概念があります。これは、名前空間の適用範囲であり、どの要素や属性がその名前空間に含まれ、どれが含まれないかを指します。名前空間は、XML文書全体を区切ることも、XML文書の一部分だけに特化することも可能である。
     (1). 名前空間はXML文書全体を修飾する

XML/HTMLコード コンテンツをクリップボードにコピーする
  1. < スパン スタイル = "フォントファミリ:SimSun;フォントサイズ:14px;" > {未定義 xml バージョン = "1.0" ? >
  2. < メンバー詳細 xmlns = "http://www.testns.com/ns.xsd" >
  3. < 名称 > トム < 名称 >
  4. < 年齢 > 12 < 年齢 >
  5. < > 男性 < >
  6. < メンバー詳細 > < スパン >

(2) 名前空間が XML 文書の一部分のみである場合

XML/HTMLコード コンテンツをクリップボードにコピーする
  1. < スパン スタイル = "フォントファミリ:SimSun;フォントサイズ:14px;" > {未定義 xml バージョン = "1.0" ? >
  2. < メンバー詳細 >
  3. < 名称 xmlns = "http://www.testns.com/ns.xsd" > トム < 名称 >
  4. < 年齢 > 12 < 年齢 >
  5. < > 男性 < >
  6. < メンバー詳細 > < スパン >

  (3) ネストした名前空間

XML/HTMLコード コンテンツをクリップボードにコピーする
  1. < スパン スタイル = "フォントファミリ:SimSun;フォントサイズ:14px;" > {未定義 xml バージョン = "1.0" ? >
  2. < メンバー詳細 xmlns = "http://www.testns.com/ns.xsd"     
  3. xmlns:newns = "http://www.testns/newns.xsd" >
  4. < 名称 > トム < 名称 >
  5. < 年齢 > 12 < 年齢 >
  6. < ニューズ:セックス > 男性 < >
  7. < メンバー詳細 >
  8. / < スパン スタイル = "ラインハイト: 26px;" >  この例では、新しい名前空間で定義されている要素 sex を除き、要素はまだ元の名前空間を使用しています。 < は、その スパン > < スパン >