XMLチュートリアル

XMLホーム XMLの紹介 XML使用方法 XMLツリー XML構文 XML要素 XML属性 XML名前空間 XML表示 XML HttpRequest XMLパーサー XML DOM XML XPath XML XSLT XML XQuery XML XLink XMLバリデーター XML DTD XMLスキーマ XMLサーバー XMLの例 XMLクイズ XML証明書

XML AJAX

AJAXの紹介 AJAX XMLHttp AJAXリクエスト AJAX応答 AJAXXMLファイル AJAX PHP AJAX ASP AJAXデータベース AJAXアプリケーション AJAXの例

XML DOM

DOMの紹介 DOMノード DOMアクセス DOMノード情報 DOMノードリスト DOMトラバース DOMナビゲーション DOMは値を取得します DOM変更ノード DOM削除ノード DOM置換ノード DOM作成ノード DOM追加ノード DOMクローンノード DOMの例

XPathチュートリアル

XPathの概要 XPathノード XPath構文 XPath軸 XPath演算子 XPathの例

XSLTチュートリアル

XSLTの紹介 XSL言語 XSLT変換 XSLT <テンプレート> XSLT <値> XSLT <for-each> XSLT <ソート> XSLT <if> XSLT <選択> XSLT適用 クライアント上のXSLT サーバー上のXSLT XSLT Edit XML XSLTの例

XQueryチュートリアル

XQueryの紹介 XQueryの例 XQuery FLWOR XQuery HTML XQueryの用語 XQuery構文 XQuery追加 XQuery Select XQuery関数

XML DTD

DTDの紹介 DTDビルディングブロック DTD要素 DTD属性 DTD要素と属性 DTDエンティティ DTDの例

XSDスキーマ

XSDの概要 XSDハウツー XSD <スキーマ> XSD要素 XSD属性 XSDの制限

XSDコンプレックス

XSD要素 XSDが空です XSD要素のみ XSDテキストのみ XSD混合 XSDインジケーター XSD <任意> XSD <anyAttribute> XSD置換 XSDの例

XSDデータ

XSD文字列 XSD日付 XSD数値 XSDその他 XSDリファレンス

Webサービス

XMLサービス XML WSDL XML SOAP XML RDF XML RSS

参考文献

DOMノードタイプ DOMノード DOM NodeList DOM NamedNodeMap DOMドキュメント DOM要素 DOM属性 DOMテキスト DOM CDATA DOMコメント DOM XMLHttpRequest DOMパーサー XSLT要素 XSLT / XPath関数

XML名前空間


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


名前の競合

XMLでは、要素名は開発者によって定義されます。これにより、異なるXMLアプリケーションからのXMLドキュメントを混在させようとすると、競合が発生することがよくあります。

このXMLは、HTMLテーブル情報を伝達します。

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

このXMLは、テーブル(家具)に関する情報を伝達します。

<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でプレフィックスを使用する場合は、プレフィックスの名前空間を定義する必要があります。

名前空間は、要素の開始タグの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="https://www.w3schools.com/furniture">
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>

</root>

上記の例では:

最初の<table>要素のxmlns属性は、h:プレフィックスに修飾された名前空間を与えます。

2番目の<table>要素のxmlns属性は、f:プレフィックスに修飾された名前空間を与えます。

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

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

<root xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="https://www.w3schools.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を使用する目的は、名前空間に一意の名前を付けることです。

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


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

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

最も一般的なURIは、インターネットドメインアドレスを識別するUniform Resource Locator(URL)です。もう1つの、それほど一般的ではないタイプの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.w3schools.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チュートリアルをお読みください。