鍍金池/ 教程/ HTML/ XML 語法
XML 屬性
XML 語法
XML 注釋
XML 文檔對象模型
XML 數(shù)據(jù)庫
XML 樹結(jié)構(gòu)
XML 文檔類型定義(DTDs)
XML 之 CDATA 片段
XML 解析器
XML 編輯器
XML 概述
XML 字符實體
XML 編碼
XML 驗證
XML 文檔
XML 聲明
XML 元素
XML 命名空間
XML 閱讀器
XML 處理程序
XML 模式
XML 空白
XML 標(biāo)簽
XML 處理指令

XML 語法

本章會帶你通過簡單的語法規(guī)則編寫一個 XML 文檔。下面是一個完整的 XML 文檔:

<?xml version="1.0"?>
<concat-info>
<name>Tanmay Patil</name>
<company>TutorialsPoint</company>
<phone>(011) 123-4567</phone>
</concat-info>

你可以注意到上面的例子中有兩種類型的信息:

  • 標(biāo)記,比如 <concat-info>。
  • 文本或者字符數(shù)據(jù),比如 _Tutorials Point(011) 123-4567_。

下圖描述了在 XML 文檔中編寫不同類型標(biāo)記和文本的語法規(guī)則:

http://wiki.jikexueyuan.com/project/xml/images/syntaxrules.png" alt="syntax rules" />

我們來詳細(xì)看看上圖中的每個組成部分:

XML 聲明

XML 文檔可以有一個可選的 XML 聲明。它可以寫作如下形式:

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

這里 version 就是 XML 版本,encoding 指定文檔中使用的字符編碼。

XML 聲明的語法規(guī)則

  • XML 聲明區(qū)分大小寫,必須以 "<?xml>" 開頭,其中 "xml" 是小寫的。
  • 如果文檔包含 XML 聲明,那么它必須是 XML 文檔的第一條語句。
  • XML 聲明必須是 XML 文檔的第一條語句。
  • 可以使用一個 HTTP 協(xié)議覆蓋 XML 聲明中指定的 encoding 的值。

標(biāo)簽和元素

一個 XML 文件的結(jié)構(gòu)由幾個 XML 元素組成,也叫做 XML 節(jié)點或 XML 標(biāo)簽。XML 元素的名稱使用尖括號 < > 閉合,如下所示:

<element>

標(biāo)簽和元素的語法規(guī)則

元素語法: 每個 XML 元素都必須閉合或者帶有開始和結(jié)束元素,如下所示:

<element>....</element>

或者簡寫形式,就像這樣:

<element/>

元素嵌套: 一個 XML 元素可以包含多個 XML 元素作為它的子元素,但是子元素不能重疊。比如,一個元素的結(jié)束標(biāo)簽必須與最近匹配的開始標(biāo)簽具有相同的名稱。

下面的例子展示了不正確的嵌套標(biāo)簽:

<?xml version="1.0"?>
<contact-info>
<company>TutorialsPoint
<contact-info>
</company>

下面的例子展示了正確的嵌套標(biāo)簽:

<?xml version="1.0"?>
<contact-info>
<company>TutorialsPoint</company>
<contact-info>

根元素: 一個 XML 文檔只有一個根元素。例如,下面是一個不正確的 XML 文檔,因為 x 和 y 元素出現(xiàn)在頂層而沒有一個根元素:

<x>...</x>
<y>...</y>

下面的例子展示了正確形式的 XML 文檔:

<root>
    <x>...</x>
    <y>...</y>
</root>

區(qū)分大小寫: XML 元素的名稱區(qū)分大小寫。這意味著元素的起始和結(jié)束標(biāo)簽大小寫必須一樣。

例如 <contact-info> 和 __<Contact-Info> 就不同。

屬性

attribute 使用名/值對給元素指定一個屬性(property)。一個 XML 元素可以有一個或多個屬性(attributes)。例如:

<a >Tutorialspoint!</a>

這里 href 就是屬性名稱,而 http://www.tutorialspoint.com/ 就是屬性值。

XML 屬性的語法規(guī)則

  • XML 屬性名區(qū)分大小寫(和 HTML 不一樣)。也就是說 HREFhref 會被認(rèn)為是兩個不同的 XML 屬性。
  • 在語法中相同的屬性不能有兩個。下面的例子展示了不正確的語法,因為屬性 b 被指定了兩次:
<a b="x" c="y" b="z">....</a>
  • 屬性名定義不帶引號標(biāo)記,而屬性值必須顯示在引號標(biāo)記中。下面的例子演示了不正確的 XML 語法:
<a b=x>....</a>

在上面的語法中,屬性值沒有定義在引號標(biāo)記中。

XML 引用

引用 通常允許我們在 XML 文檔中添加或包含附加的文本。引用始終以符號 "&" 開始,這是一個保留字符,以符號 ";" 結(jié)尾。XML 中有兩種類型的引用:

實體引用: 一個實體引用的起始和結(jié)束定界符之間包含一個名稱。比如 &amp;,其中 amp 就是名稱。這個 name 通常指向一個預(yù)定義的文本字符串或標(biāo)記。

字符引用: 這些包含引用比如 &#65; 包含一個 hash 標(biāo)記("#"),后面緊跟一個數(shù)字。這個數(shù)字始終指向一個字符的 Unicode 碼。在這里,65 指向字母 "A"。

XML 文本

  • XML 元素和 XML 屬性的名稱區(qū)分大小寫。這意味著元素的開始和結(jié)束標(biāo)簽大小寫必須一致。
  • 為了避免字符編碼的問題,所有的 XML 文件都應(yīng)該保存為 Unicode UTF-8 或者 UTF-16 文件。
  • 空白字符,比如空格,制表符以及 XML 元素和 XML 屬性之間換行符會被忽略。
  • 有些字符是 XML 語法本身保留的。因此,不能直接使用它們。要使用它們,就要使用一些替代實體。下面列出了一些:
不允許使用的字符 替代實體 字符描述
&lt; 小于號
> &gt; 大于號
& &amp; 和號
' &apos; 撇號
" &quot; 雙引號
上一篇:XML 概述下一篇:XML 空白