1. 程式人生 > >xml---基礎了解

xml---基礎了解

空格 其他 可選 let 法規 小寫 strong 屬性 per

XML 被設計用來傳輸和存儲數據。

HTML 被設計用來顯示數據。

什麽是 XML?

  • XML 指可擴展標記語言(EXtensible Markup Language)。
  • XML 是一種很像HTML的標記語言。
  • XML 的設計宗旨是傳輸數據,而不是顯示數據。
  • XML 標簽沒有被預定義。您需要自行定義標簽。
  • XML 被設計為具有自我描述性。
  • XML 是 W3C 的推薦標準。

    XML 和 HTML 之間的差異

    XML 不是 HTML 的替代。

    XML 和 HTML 為不同的目的而設計:

    • XML 被設計用來傳輸和存儲數據,其焦點是數據的內容。
    • HTML 被設計用來顯示數據,其焦點是數據的外觀。

    HTML 旨在顯示信息,而 XML 旨在傳輸信息。


    XML 不會做任何事情

    也許這有點難以理解,但是 XML 不會做任何事情。XML 被設計用來結構化、存儲以及傳輸信息。

    下面實例是 Jani 寫給 Tove 的便簽,存儲為 XML:

    <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don‘t forget me this weekend!</body> </note>

    上面的這條便簽具有自我描述性。它包含了發送者和接受者的信息,同時擁有標題以及消息主體。

    但是,這個 XML 文檔仍然沒有做任何事情。它僅僅是包裝在 XML 標簽中的純粹的信息。我們需要編寫軟件或者程序,才能傳送、接收和顯示出這個文檔。

XML 語法規則


XML 的語法規則很簡單,且很有邏輯。這些規則很容易學習,也很容易使用。


XML 文檔必須有根元素

XML 必須包含根元素,它是所有其他元素的父元素,比如以下實例中 root 就是根元素:

<root> <child> <subchild>.....</subchild> </child> </root>

以下實例中 note 是根元素:

<?xml version="1.0" encoding="UTF-8"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don‘t forget me this weekend!</body> </note>

XML 聲明

XML 聲明文件的可選部分,如果存在需要放在文檔的第一行,如下所示:

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

以上實例包含 XML 版本(<version="1.0"),甚至包含字符編碼(encoding="utf-8")。< p="">

UTF-8 也是 HTML5, CSS, JavaScript, PHP, 和 SQL 的默認編碼。


所有的 XML 元素都必須有一個關閉標簽

在 HTML 中,某些元素不必有一個關閉標簽:

<p>This is a paragraph.
<br>

在 XML 中,省略關閉標簽是非法的。所有元素都必須有關閉標簽:

<p>This is a paragraph.</p>
<br />

註釋:從上面的實例中,您也許已經註意到 XML 聲明沒有關閉標簽。這不是錯誤。聲明不是 XML 文檔本身的一部分,它沒有關閉標簽。


XML 標簽對大小寫敏感

XML 標簽對大小寫敏感。標簽 <Letter> 與標簽 <letter> 是不同的。

必須使用相同的大小寫來編寫打開標簽和關閉標簽:

<Message>這是錯誤的</message>
<message>這是正確的</message>

註釋:打開標簽和關閉標簽通常被稱為開始標簽和結束標簽。不論您喜歡哪種術語,它們的概念都是相同的。


XML 必須正確嵌套

在 HTML 中,常會看到沒有正確嵌套的元素:

<b><i>This text is bold and italic</b></i>

在 XML 中,所有元素都必須彼此正確地嵌套:

<b><i>This text is bold and italic</i></b>

在上面的實例中,正確嵌套的意思是:由於 <i> 元素是在 <b> 元素內打開的,那麽它必須在 <b> 元素內關閉。



XML 屬性值必須加引號

與 HTML 類似,XML 元素也可擁有屬性(名稱/值的對)。

在 XML 中,XML 的屬性值必須加引號。

請研究下面的兩個 XML 文檔。 第一個是錯誤的,第二個是正確的:

<note date=12/11/2007>
<to>Tove</to>
<from>Jani</from>
</note>
<note date="12/11/2007">
<to>Tove</to>
<from>Jani</from>
</note>

在第一個文檔中的錯誤是,note 元素中的 date 屬性沒有加引號。


實體引用

在 XML 中,一些字符擁有特殊的意義。

如果您把字符 "<" 放在 XML 元素中,會發生錯誤,這是因為解析器會把它當作新元素的開始。

這樣會產生 XML 錯誤:

<message>if salary < 1000 then</message>

為了避免這個錯誤,請用實體引用來代替 "<" 字符:

<message>if salary &lt; 1000 then</message>

在 XML 中,有 5 個預定義的實體引用:

&lt; < less than
&gt; > greater than
&amp; & ampersand
&apos; apostrophe
&quot; " quotation mark

註釋:在 XML 中,只有字符 "<" 和 "&" 確實是非法的。大於號是合法的,但是用實體引用來代替它是一個好習慣。


XML 中的註釋

在 XML 中編寫註釋的語法與 HTML 的語法很相似。

<!-- This is a comment -->

在 XML 中,空格會被保留

HTML 會把多個連續的空格字符裁減(合並)為一個:

HTML: Hello Tove
Output: Hello Tove

在 XML 中,文檔中的空格不會被刪減。


XML 以 LF 存儲換行

在 Windows 應用程序中,換行通常以一對字符來存儲:回車符(CR)和換行符(LF)。

在 Unix 和 Mac OSX 中,使用 LF 來存儲新行。

在舊的 Mac 系統中,使用 CR 來存儲新行。

XML 以 LF 存儲換行。

xml---基礎了解