ホームページ  >  記事  >  バックエンド開発  >  XML の名前空間のコード例の詳細な紹介

XML の名前空間のコード例の詳細な紹介

黄舟
黄舟オリジナル
2017-03-29 15:55:581507ブラウズ

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

------ --- ---------------------------------------------- --- -----------------------

名前の競合
XML 文書で使用される要素が固定されていないため、2 つの異なる XML 文書が同じものを使用する可能性があります。さまざまな種類の要素を説明するために名前を使用すると、名前の競合が発生することがよくあります。次の 2 つの例を参照してください。

この XML ドキュメントはテーブル要素にフルーツ情報を伝えます:

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

この XML ドキュメントはテーブル情報 (家具) を伝えます。 、食用ではありません) テーブル要素内:

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

上記の 2 つの XML ドキュメントのフラグメントが一緒に使用されると、両方のフラグメントに f5d188ed2c074f8b944552db028f98a1 の定義と内容が含まれるため、名前の競合が発生します。 2 つのテーブル要素が異なります

---------------------- ------------------------ --------

接頭辞を使用して名前の競合を解決します
以下XML ドキュメントにはテーブル要素の情報が含まれています:

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

次の XML ドキュメントには家具テーブルに関する情報が含まれています:

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

現在要素はありません 2 つのドキュメントがそれぞれのテーブル要素に異なるプレフィックスを使用しているため、名前の競合の問題が発生します。 2 つのドキュメントのテーブル要素は (fae077d51b591786197c1ce2523c9adb と 20e0d2c31ebbe4ee5491ba472c0918be) です

接頭辞を使用して、2 つの異なるテーブル要素を作成します

----------- ------------------------ ---------------------------- --------------------

名前空間を使用する
次の XML ドキュメントには、テーブル要素の情報が含まれています:

<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>

次の XML ドキュメントには、家具テーブルに関する情報が含まれています。

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

上記の 2 つの例ではプレフィックスを使用することに加えて、両方のテーブル要素で xmlns を使用します 属性 要素を異なる名前空間に関連付けます

--------------------- ------------ -------------------------------------- ------------

名前空間属性
名前空間属性は通常、要素の開始タグに配置されます。その使用構文は次のとおりです。

xmlns:namespace-prefix="namespace"

上記の例では、名前空間はインターネットアドレス:

xmlns:f="http://www.w3schools.com/furniture"

W3C 命名規則は名前空間を宣言します。それ自体がUniform Resource Identifier、Uniform Resource Identifier (URI)です。

要素の開始タグで名前空間を使用すると、その要素のすべての子要素は接頭辞を通じて同じ名前空間に関連付けられます。

注: ネームスペースの識別に使用されるネットワーク アドレスは、XML パーサーによって呼び出されません。XML パーサーは、このネットワーク アドレスから情報を検索する必要はありません。ネットワーク アドレスの機能は、ネームスペースに一意の名前を付けることだけです。ネットワーク アドレスは仮想アドレスにすることもできますが、多くの企業ではネットワーク アドレス値を実際の Web ページと同様に扱うことが多く、このアドレスには現在の名前空間に関するより詳細な情報が含まれています。

Uniform Resource Identifier
Uniform Resource Identifier (URI) は、ネットワーク リソースを識別する文字列です。最も一般的な URI は、Uniform Resource Locator (URL) です。 URL は、ネットワーク ホストのアドレスを識別するために使用されます。一方、あまり一般的には使用されないもう 1 つの URI は、ユニバーサル リソース ネーム (URN) です。この場合、通常は URL が使用されます。

前の例では URL アドレスを使用して名前空間を識別したため、この名前空間は一意であることがわかります。

------------------------------------------------ --------------------------------

デフォルトの名前空間
デフォルトの XML 名前空間を定義して、プレフィックスを付けないようにします要素の開始タグで必要です。彼の構文は次のとおりです:

<element xmlns="namespace">

次の XML ドキュメントにはテーブル要素の果物に関する情報が含まれています:

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

次の XML ドキュメントには家具テーブルに関する情報が含まれています:

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

-------- --- ---------------------------------------------- --- --------------------

名前空間を使用する
XSL を使い始めると、名前空間が非常に頻繁に使用されることに気づくでしょう。 XSL スタイル シートは主に、XML ドキュメントを HTML ファイルと同様の形式に変換するために使用されます。

以下の XSL ドキュメントを見ると、多くのタグが HTML タグであることがわかります。これらのタグは HTML タグではなく、プレフィックス付き XSL です。この XSL プレフィックスは、名前空間「http://www.w3.org/TR/xsl」:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl=" 
<xsl:template match="/">
<html>
<body>
<table border="2" bgcolor="yellow">
<tr>
<th>Title</th>
<th>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>
によって識別されます。

以上がXML の名前空間のコード例の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。