最新のWeb開発のチュートリアル
 

XML名前空間


XML名前空間は、要素名の競合を回避するための方法を提供します。


名前の競合

XMLでは、要素名は、開発者によって定義されます。 異なるXMLアプリケーションからXML文書をミックスしようとすると、これは、しばしば対立が生じます。

このXMLは、HTMLテーブルの情報を運びます。

<table>
  <tr>
    <td>Apples</td>
    <td>Bananas</td>
  </tr>
</table>

このXMLは、テーブルに関する情報運ぶ(a piece of furniture)

<table>
  <name>African Coffee Table</name>
  <width>80</width>
  <length>120</length>
</table>

これらのXMLフラグメントを一緒に追加された場合は、名前の競合が存在するであろう。 両方が含まれている<table>要素を、しかし要素は異なる内容と意味を持っています。

ユーザーまたはXMLアプリケーションは、これらの違いを処理する方法を知ることができません。


プレフィックスを使用して名前の競合を解決します

XMLでの名前の競合は簡単に名前の接頭辞を使用して回避することができます。

このXMLは、HTMLテーブル、および家具のピースの情報を運びます:

<h:table>
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>

<f:table>
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>

2ので、上記の例では、競合は存在しません<table>要素が異なる名前を持っています。


XML名前空間- xmlns属性

XMLでの接頭辞を使用する場合は、 namespace接頭辞を定義する必要があります。

名前空間は以下のように定義することができるxmlns要素の開始タグの属性。

名前空間宣言の構文は次のとおりです。 xmlns: prefix =" URI "

<root>

<h:table xmlns:h="http://www.w3.org/TR/html4/">
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>

<f:table xmlns:f="http://www.w3ii.com/furniture">
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>

</root>

上記の例では:

xmlns最初に属性<table>要素は、hを与える:名前空間で修飾を付けます。

xmlns第二属性に<table>要素がfを与える:名前空間で修飾を付けます。

名前空間が要素のために定義されている場合、同じプレフィックスを持つすべての子要素が同じ名前空間に関連付けられています。

名前空間は、XMLルート要素で宣言する事ができます。

<root
xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="http://www.w3ii.com/furniture">

<h:table>
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>

<f:table>
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>

</root>

Note:名前空間URIは、情報を検索するためにパーサーによって使用されていません。

URIを使用する目的は、名前空間に固有の名前を与えることです。

しかし、企業は多くの場合、名前空間の情報を含むウェブページへのポインタとして名前空間を使用します。


ユニフォームリソース識別子(URI)

Uniform Resource Identifier (URI) 、インターネットのリソースを識別する文字列です。

最も一般的なURIはUniform Resource Locator (URL)インターネットドメインのアドレスを識別します。 もう一つ、URIのではないので、一般的なタイプは、 Universal Resource Name (URN)


デフォルトの名前空間

要素のデフォルト名前空間を定義すると、すべての子要素に接頭辞を使用してから私たちを保存します。 構文は次のとおりです。

xmlns="namespaceURI"

このXMLは、HTMLテーブルの情報を運びます。

<table xmlns="http://www.w3.org/TR/html4/">
  <tr>
    <td>Apples</td>
    <td>Bananas</td>
  </tr>
</table>

このXMLは、家具のピースの情報を運びます:

<table xmlns="http://www.w3ii.com/furniture">
  <name>African Coffee Table</name>
  <width>80</width>
  <length>120</length>
</table>

実使用での名前空間

XSLTは、他の形式にXML文書を変換するために用いることができる言語です。

以下のXML文書は、XMLをHTMLに変換するために使用文書です。

名前空間"http://www.w3.org/1999/XSL/Transform" HTMLドキュメントの内部でXSLT要素を識別します。

<?xml version="1.0" encoding="UTF-8 " ?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<html>
<body>
  <h2>My CD Collection</h2>
  <table border="1">
    <tr>
      <th style="text-align:left">Title</th>
      <th style="text-align:left">Artist</th>
    </tr>
    <xsl:for-each select="catalog/cd">
    <tr>
      <td><xsl:value-of select="title"/></td>
      <td><xsl:value-of select="artist"/></td>
    </tr>
    </xsl:for-each>
  </table>
</body>
</html>
</xsl:template>

</xsl:stylesheet>

あなたはXSLTについて詳しく知りたい場合は、私たちのお読みくださいXSLTチュートリアル