XML語(yǔ)法

XML聲明

XML文檔聲明是XML文檔的第一句,格式如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes/no" ?>
  • XML聲明由“<?”開始,以“?>”結(jié)束。“<?”表示該行是一個(gè)命令;
  • 在“<?”后面跟“xml”。表示這是一個(gè)XML文件("xml"必須小寫),這是處理指令的名稱,用于聲明XML的版本和采用的字符集;
  • 在“<”和”?“之間、“?”和“>”之間以及第一個(gè)“?”和xml之間不能有空格。
  • version屬性表示XML的版本。version必須小寫,版本號(hào)用引號(hào)引起。必須指定version的屬性值。
  • standalone屬性(可以是yes或no)定義了是否可以在不讀取其他任何文件的情況下處理該文檔。standalone默認(rèn)屬性為no。
  • encoding屬性表示該文檔所使用的字符集。如果XML沒有設(shè)置encoding,則以Unicode編碼看待。常見的編碼有以下幾種:簡(jiǎn)體中文碼(GB2312);
    繁體中文碼(BIG5);西歐字符(UTF-8)。
    注意:如果同時(shí)設(shè)置了encoding和standalone屬性,則standalone屬性藥位于encoding屬性之后。

XML文檔內(nèi)容

XML文檔除了XML聲明外,還包括XML文檔內(nèi)容,它表示XML文檔中包含的信息,是XML文檔的主要組成部分。

XML元素

元素是XMl文檔的基本組成部分??梢园渌?、字符數(shù)據(jù)、字符引用、實(shí)體引用、PI、注釋以及CDATA部分,這些合起來(lái)被稱為元素的內(nèi)容。所有的XML數(shù)據(jù)(除了注釋、PI和空白)都必須包含在元素中。

  1. XML元素的命名規(guī)范
  • 元素的名字可以包含字母、數(shù)字和其他字符。
  • 元素的名字不能以數(shù)字或者標(biāo)點(diǎn)符號(hào)開頭。
  • 元素的名字不能以XML、xml、Xml、xMl···開頭。
  • 元素的名字不能包含空格。
  • 盡量避免使用“-”、“.”,因?yàn)檫@些符號(hào)有可能引起混亂。
  • 元素的命名一個(gè)遵循簡(jiǎn)單易讀的原則。
  • XML 文檔往往都對(duì)應(yīng)著數(shù)據(jù)表,應(yīng)該盡量讓數(shù)據(jù)庫(kù)中字段的命名和相應(yīng)的 XML 文檔中的元素的命名保持一致,這樣可以方便數(shù)據(jù)更換。
  • 非英文/字符/字符串也可以作為XML元素的名字。
  • 在 XML 元素的命名中不要使用”:“,因?yàn)?XML 的命名空間需要用到這個(gè)特殊字符。
  1. 起始標(biāo)識(shí)

一個(gè)表示元素開始的分隔符被稱為起始標(biāo)記。起始標(biāo)記是一個(gè)包含在尖括號(hào)的元素類型名。

  1. 結(jié)束標(biāo)記

代表元素結(jié)束的分割符被稱為結(jié)束標(biāo)記。結(jié)束標(biāo)記由一個(gè)反斜杠和元素類型名組成并被圍在一對(duì)尖括號(hào)中。每一個(gè)結(jié)束標(biāo)記都必須與其對(duì)應(yīng)的起始標(biāo)記相匹配。帶有完整的起始、結(jié)束標(biāo)記的元素應(yīng)該有如下形式:

    <元素>內(nèi)容</元素>
  1. XML元素的類型

XML文檔中一共有四類元素:空元素、僅含文本的元素、僅含子元素的元素、含子元素及文本或混合的元素。

  • 空元素
    元素不包括任何文本,就是空元素。
    <book></book>
    <book/>
  • 僅含文本的元素
    元素僅含文本。
    <book>西游記</book>
  • 含其他元素的元素
    一個(gè)元素可以包含其他的元素。容器元素稱為父元素,被包含的元素稱為子元素。
    <book ID="001">
    <name>西游記</name>
    <author>吳承恩</author>
    </book>
  • 混合元素
    混合元素既含有文本也含有子元素。
    <book ID="001">四大名著
    <name>西游記</name>
    <author>吳承恩</author>
    </book>
    在XML文檔中使用元素時(shí)應(yīng)該注意以下幾點(diǎn)
  • 元素必須含有開始標(biāo)簽和結(jié)束標(biāo)簽。
  • 在沒有內(nèi)容的情況下,才可以使用省略寫法。
  • 標(biāo)簽名必須符合XML命名規(guī)則。
  • 元素必須正確嵌套。

元素的屬性

基本格式如下:

<元素名 屬性名=”屬性值“>

注意:特點(diǎn)的屬性名稱在同一個(gè)元素標(biāo)記只能出現(xiàn)一次;屬性值不能包括<、>、&符號(hào)。
我們可以將屬性改寫為嵌套的子元素:
eg:

<book ID="001">
  <name>西游記</name>
  <author>吳承恩</author>
</book>

我們可以改寫為:

<book>
  <ID>001</ID>
  <name>西游記</name>
  <author>吳承恩</author>
</book>

在 XML 中,我們應(yīng)該盡量避免使用屬性。因?yàn)槭褂脤傩詴?huì)引發(fā)以下一些問(wèn)題。

  • 屬性不能包含多個(gè)值(子元素可以)。
  • 屬性不容易擴(kuò)展。
  • 屬性不能描述結(jié)構(gòu)(子元素可以)。
  • 屬性很難被程序代碼處理。
  • 屬性值很難通過(guò)DTD進(jìn)行測(cè)試。

屬性規(guī)則:

  • 屬性由名稱和數(shù)值。
  • 屬性值必須封裝在單引號(hào)或雙引號(hào)中。
  • 屬性中不能含有XML標(biāo)簽。
  • 屬性名稱必須遵循XML命名規(guī)則。

注釋

語(yǔ)法:

<!--注釋信息-->

注釋遵循規(guī)則:

  • 注釋內(nèi)容不能包含”-->“。
  • 注釋不能包含于標(biāo)簽內(nèi)部。
  • 元素的開始標(biāo)簽或結(jié)束標(biāo)簽不能被注釋掉。

字符引用和實(shí)體引用

  1. 字符引用
    以&#開始并以分號(hào)結(jié)束的引用都是字符引用。中間的數(shù)字是所需字符的Unicode編碼。若編碼寫成十六進(jìn)制,那么數(shù)字前面有一個(gè)x(必須小寫)作為前綴。
    eg:

    <n>&#xA9;</n>
    
  2. 實(shí)體引用
    實(shí)體引用允許在元素內(nèi)容或?qū)傩灾抵胁迦肴魏巫址?,這就為字符引用提供一種助記得替代方式。
    實(shí)體引用方式是在一個(gè)合法的 XML 名字前面加上一個(gè)符號(hào)”&“,后面加上一個(gè)分號(hào)”;“。
    有五個(gè)實(shí)體被定義為 XML 的固有部分,他們通常用作 XML 標(biāo)記分隔符號(hào)的轉(zhuǎn)義序列。如下表 1所示。

表 1 XML中的實(shí)體定義.jpg

除了上述五個(gè)實(shí)體,其他所有的實(shí)體都必須在文檔使用前,在DTD文檔中定義。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,525評(píng)論 19 139
  • 1. XML簡(jiǎn)介 以下內(nèi)容來(lái)自于http://www.w3school.com.cn/xml 基本知識(shí) XML 和...
    WebSSO閱讀 2,091評(píng)論 1 7
  • XML:可擴(kuò)展標(biāo)記語(yǔ)言 XML與 HTML 的主要差異 1.XML 不是HTML 的替代; 2.XML 和HTML...
    6659a0f02826閱讀 272評(píng)論 0 1
  • 今天跟寶寶在家等小舅舅過(guò)來(lái),下午3點(diǎn)多到的,心寶正在午休,過(guò)了大概半個(gè)多小時(shí),小家伙醒了,看見小舅舅,一點(diǎn)兒都不...
    Gaby_Jiang閱讀 376評(píng)論 0 0
  • 大嘎晚上好啊。 作為是一個(gè)有偶像包袱的協(xié)會(huì),我們一直都是非常在意自己的形象的。 事情的起因呢其實(shí)是這樣的 最近擊鼓...
    不系舟Sai閱讀 2,411評(píng)論 0 0

友情鏈接更多精彩內(nèi)容