XML名前空間
- 前のページ XML属性
- 次のページ XML ディスプレイ
XMLナーミングスペースは、要素名の衝突を避ける方法を提供します。
名前の衝突
XMLでは、要素名は開発者が定義します。異なるドキュメントが同じ要素名を使用すると、名前の衝突が発生します。
この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ドキュメントが同時に使用された場合、2つのドキュメントが異なる内容と定義を持つ <table> 要素を含んでいるため、名前の衝突が発生します。
ユーザーやXMLアプリケーションは、このような衝突をどのように処理するかを決定できません。
名前の衝突を解決するためにプレフィックスを使用します
名前のプレフィックスを使用することで、XMLでの名前の衝突を簡単に避けることができます。
このXMLにはHTMLテーブルおよび家具に関する情報が含まれています:
xmlns:f="https://www.codew3c.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>
現在、名前の衝突が存在しなくなりました。これは、2つのドキュメントがそれぞれの <table> 要素に異なる名前を使用しているためです(xmlns:f="https://www.codew3c.com/furniture">
および </h:table>
)。
プレフィックスを使用して、2種類の異なる <table> 要素を生成しました。
XML ナーミングスペース - xmlns 属性
XMLでプレフィックスを使用する場合、プレフィックスのネームスペースを通じて定義されます。
(ネームスペース) 第2つの<table>要素では
ネームスペースは、要素の開始タグの中の
属性で定義されます。(Uniform Resource Identifier,ネームスペースの宣言はこの文法を使用します:xmlns:プレフィックス="
"。 <root> <h:table> <h:tr> <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr> <h:table xmlns:h="http://www.w3.org/TR/html4/"> <f:table> <f:name>African Coffee Table</f:name> <f:width>80</f:width> <f:length>120</f:length> </f:table>
<f:table xmlns:f="https://www.codew3c.com/furniture">
上の例では: 第2つの<table>要素では
xmlns 第1つの<table>要素では
f:
h: 第2つの<table>要素では
xmlns 属性は
f:
プレフィックスは限定されたネームスペースを提供します。
要素にネームスペースが定義されている場合、同じプレフィックスを持つすべての子要素は同じネームスペースに関連付けられます。
ネームスペースは、XMLのルート要素の中で宣言することもできます: <root xmlns:h="http://www.w3.org/TR/html4/" xmlns:f="https://www.codew3c.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>注意:
パーサーは、ネームスペースURIを使用して情報を検索しません。
URIを使用する目的は、ネームスペースにユニークな名前を提供することだけです。
ただし、多くの企業は、実際のウェブページを指すポインタとしてネームスペースを使用することがよくあります。このウェブページには、ネームスペースに関する情報が含まれています。
統一リソース識別子 (URI) 統一リソース識別子(Uniform Resource Identifier,URI
)は、インターネットリソースを示す文字列です。統一リソース定位子 (Uniform Resource Locator,URL)、インターネットのドメイン名を示す。
URIの種類としてはあまり一般的でないのは、統一リソース名 (Uniform 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="https://www.codew3c.com/furniture"> <name>African Coffee Table</name> <width>80</width> <length>120</length> </table>
名前空間の実際の使用法
XSLTはXML文書を他の形式に変換するために使用できる言語です。
以下のXML文書はXMLをHTMLに変換するために使用されます。
以下のXSL文書を詳しく観察すると、ほとんどのタグがHTMLタグであることがわかります。
HTMLでないタグはすべて xsl という接頭辞を持っており、この名前空間で示されます:"http://www.w3.org/1999/XSL/Transform":
名前空間 "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 ツアー。
- 前のページ XML属性
- 次のページ XML ディスプレイ