xml學習筆記20200406

XML 文檔實例

實例中的根元素是 <bookstore>。文檔中的所有 <book> 元素都被包含在 <bookstore> 中。

<book> 元素有 4 個子元素:<title>、<author>、<year>、<price>。

 

語法

XML 文檔必須有根元素

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

 

XML 聲明

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

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

 

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

 

 

XML 標籤對大小寫敏感

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

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

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

 

在 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>

 

實體引用

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

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

這樣會產生 XML 錯誤:

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

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

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

 

 

XML 中的註釋

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

<!-- This is a comment -->

 

 

XML 元素是可擴展的

XML 元素是可擴展,以攜帶更多的信息。

請看下面的 XML 實例:

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

讓我們設想一下,我們創建了一個應用程序,可將 <to>、<from> 以及 <body> 元素從 XML 文檔中提取出來,併產生以下的輸出:

MESSAGE

To: Tove
From: Jani

Don't forget me this weekend!

想象一下,XML 文檔的作者添加的一些額外信息:

<note> <date>2008-01-10</date> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>

那麼這個應用程序會中斷或崩潰嗎?

不會。這個應用程序仍然可以找到 XML 文檔中的 <to>、<from> 以及 <body> 元素,併產生同樣的輸出。

XML 的優勢之一,就是可以在不中斷應用程序的情況下進行擴展。

 

XML 屬性必須加引號

屬性值必須被引號包圍,不過單引號和雙引號均可使用。比如一個人的性別,person 元素可以這樣寫:

<person sex="female">

或者這樣也可以:

<person sex='female'>

如果屬性值本身包含雙引號,您可以使用單引號,就像這個實例:

<gangster name='George "Shotgun" Ziegler'>

或者您可以使用字符實體:

<gangster name="George &quot;Shotgun&quot; Ziegler">

 

針對元數據的 XML 屬性

有時候會向元素分配 ID 引用。這些 ID 索引可用於標識 XML 元素,它起作用的方式與 HTML 中 id 屬性是一樣的。這個實例向我們演示了這種情況:

<messages>
<note id="501">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
<note id="502">
<to>Jani</to>
<from>Tove</from>
<heading>Re: Reminder</heading>
<body>I will not</body>
</note>
</messages>

上面的 id 屬性僅僅是一個標識符,用於標識不同的便籤。它並不是便籤數據的組成部分。

在此我們極力向您傳遞的理念是:元數據(有關數據的數據)應當存儲爲屬性,而數據本身應當存儲爲元素。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章