選單
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

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 Schema XML 伺服器 XML 示例 XML 測驗 XML 證書

XML AJAX

AJAX Introduction AJAX XMLHttp AJAX Request AJAX Response AJAX XML File AJAX PHP AJAX ASP AJAX Database AJAX Applications AJAX Examples

XML DOM

DOM Introduction DOM Nodes DOM Accessing DOM Node Info DOM Node List DOM Traversing DOM Navigating DOM Get Values DOM Change Nodes DOM Remove Nodes DOM Replace Nodes DOM Create Nodes DOM Add Nodes DOM Clone Nodes DOM Examples

XPath 教程

XPath Introduction XPath Nodes XPath Syntax XPath Axes XPath Operators XPath Examples

XSLT 教程

XSLT Introduction XSL Languages XSLT Transform XSLT <template> XSLT <value-of> XSLT <for-each> XSLT <sort> XSLT <if> XSLT <choose> XSLT Apply XSLT on the Client XSLT on the Server XSLT Edit XML XSLT Examples

XQuery 教程

XQuery Introduction XQuery Example XQuery FLWOR XQuery HTML XQuery Terms XQuery Syntax XQuery Add XQuery Select XQuery Functions

XML DTD

DTD Introduction DTD Building Blocks DTD Elements DTD Attributes DTD Elements vs Attr DTD Entities DTD Examples

XSD Schema

XSD 簡介 XSD 操作指南 XSD <schema> XSD 元素 XSD 屬性 XSD 約束 XSD 複雜元素 XSD 空元素 XSD 僅元素 XSD 僅文字 XSD 混合內容 XSD 指示符 XSD <any> XSD <anyAttribute> XSD 替換 XSD 示例

XSD Data Types

XSD String XSD Date/Time XSD Numeric XSD Misc XSD Reference

Web Services

XML Services XML WSDL XML SOAP XML RDF XML RSS

參考手冊

DOM 節點型別 DOM 節點 DOM NodeList DOM NamedNodeMap DOM Document DOM Element DOM Attribute DOM Text DOM CDATA DOM Comment DOM XMLHttpRequest DOM Parser XSLT 元素 XSLT/XPath 函式

XML 名稱空間


XML 名稱空間提供了一種避免元素名稱衝突的方法。


名稱衝突

在 XML 中,元素名稱由開發者定義。當嘗試混合來自不同 XML 應用程式的 XML 文件時,這經常會導致衝突。

此 XML 包含 HTML 表格資訊

<table>
  <tr>
    <td>蘋果</td>
    <td>香蕉</td>
  </tr>
</table>

此 XML 包含有關桌子(一件傢俱)的資訊

<table>
  <name>非洲咖啡桌</name>
  <width>80</width>
  <length>120</length>
</table>

如果將這些 XML 片段合併在一起,就會發生名稱衝突。兩者都包含一個 <table> 元素,但這些元素具有不同的內容和含義。

使用者或 XML 應用程式將不知道如何處理這些差異。


使用字首解決名稱衝突

透過使用名稱字首,可以輕鬆避免 XML 中的名稱衝突。

此 XML 包含有關 HTML 表格和一件傢俱的資訊

<h:table>
  <h:tr>
    <h:td>蘋果</h:td>
    <h:td>香蕉</h:td>
  </h:tr>
</h:table>

<f:table>
  <f:name>非洲咖啡桌</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>

在上面的示例中,不會發生衝突,因為兩個 <table> 元素具有不同的名稱。



XML 名稱空間 - xmlns 屬性

在使用 XML 中的字首時,必須為該字首定義一個名稱空間

名稱空間可以透過元素開始標籤中的 xmlns 屬性來定義。

名稱空間宣告具有以下語法:xmlns:prefix="URI"。

<root>

<h:table xmlns:h="http://www.w3.org/TR/html4/">
  <h:tr>
    <h:td>蘋果</h:td>
    <h:td>香蕉</h:td>
  </h:tr>
</h:table>

<f:table xmlns:f="https://w3schools.tw/furniture">
  <f:name>非洲咖啡桌</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>

</root>

在上面的例子中

第一個 <table> 元素中的 xmlns 屬性為 h: 字首分配了一個限定名稱空間。

第二個 <table> 元素中的 xmlns 屬性為 f: 字首分配了一個限定名稱空間。

為元素定義名稱空間後,具有相同字首的所有子元素都與同一名稱空間關聯。

名稱空間也可以在 XML 根元素中宣告

<root xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="https://w3schools.tw/furniture">

<h:table>
  <h:tr>
    <h:td>蘋果</h:td>
    <h:td>香蕉</h:td>
  </h:tr>
</h:table>

<f:table>
  <f:name>非洲咖啡桌</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>

</root>

注意:解析器不會使用名稱空間 URI 來查詢資訊。

使用 URI 的目的是為名稱空間提供一個唯一的名稱。

然而,公司經常使用名稱空間作為指向包含名稱空間資訊的網頁的指標。


統一資源識別符號 (URI)

統一資源識別符號 (URI) 是一個標識網際網路資源的字元字串。

最常見的 URI 是統一資源定位符 (URL),它標識網際網路域名地址。另一種不太常見的 URI 型別是統一資源名稱 (URN)。


預設名稱空間

為元素定義預設名稱空間可以避免我們在所有子元素中使用字首。其語法如下:

xmlns="namespaceURI"

此 XML 包含 HTML 表格資訊

<table xmlns="http://www.w3.org/TR/html4/">
  <tr>
    <td>蘋果</td>
    <td>香蕉</td>
  </tr>
</table>

此 XML 包含一件傢俱的資訊

<table xmlns="https://w3schools.tw/furniture">
  <name>非洲咖啡桌</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>我的 CD 收藏</h2>
  <table border="1">
    <tr>
      <th style="text-align:left">標題</th>
      <th style="text-align:left">藝術家</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 教程


×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援