天天看點

XML知識點滴(2)

XML知識點滴(2)

(引用文章,版權歸作者,如需删除請聯系我)

XML與HTML的比較

n         XML将資料與顯示分開

<html>

     <head>

     </head>

     <body>

         <center>

              <h2><font color="red">靜夜思</font></h2>

              <b>作者:李白</b>

              <hr color="blue">

              <p><b><i><font size=3 color="green">

                窗前明月光,疑是地上霜。<br>

                舉頭望明月,低頭思故鄉。</font></i></b>

         </center>

     </body>

</html>

<?xml version="1.0" encoding="gb2312"?>

<poem>

     <title>靜夜思</title>

     <author>李白</author>

     <content>

         <line>窗前明月光</line>

         <line>疑是地上霜</line>

         <line>舉頭望明月</line>

         <line>低頭思故鄉</line>

     </content>

</poem>

n         XML對文檔的格式要求更加嚴格

由于HTML文檔格式非常松散,導緻了HTML文檔解析的複雜性,也造成了浏覽器相容的問題,是以XML從一開始,就對文檔的格式制定了非常嚴格的标準,凡是符合這一标準的XML文檔就是格式良好的XML文檔(Well-Formed XML Documents)。

1)        開始标簽必須要有一個結束标簽

在HTML文檔中,可以直接使用<p>、<tr>、<td>等标簽,而不加結束标簽,在XML中,開始标簽和結束标簽必須配套,也就是必須寫成<p>…</p>、<tr>…</tr>、<td>…</td>

2)        空元素标簽必須被關閉

在HTML文檔中,可以使用<br>、<hr>、<img src=”logo.gif” width=”197” height=”81”>等标簽,而在XML中,空元素标簽必須被關閉。空元素标簽用斜杠(/)來關閉,例如:<br/>、<hr/>、<img src=”logo.gif” width=”197” height=”81”/>

3)        所有的标簽都區分大小寫

在HTML文檔中,标簽是不區分大小寫的,<tr>和</TR>是tr元素的開始标簽和結束标簽,但是在XML中,<tr>和<TR>是兩個不同的标簽,開始标簽和結束标簽的大小寫形式必須一緻。

4)        所有的标簽必須合理嵌套

在HTML文檔中,<b><i>…</b></i>是允許的,但是在XML中,這是錯誤的。在XML中,所有的标簽都要成對出現,合理嵌套,正确的形式是:<b><i>…</i></b>。

5)        所有标簽的屬性值必須用雙引号(“”)或單引号(‘’)括起來

在HTML文檔中,屬性值可以加引号,也可以不加,例如:<hr color=”blue”>和<hr color=blue>都是合法的。在XML文檔中,即使是數字字元,也必須加雙引号或單引号,例如:<student name=”zhangsan” age=’18’ />。

6)        XML有且隻能有一個根元素

在HTML中,可以有多個根元素,如下:

<table>…</table>

<table>…</table>

但在XML中,有且隻能有一個根元素,如下:

<?xml version=”1.0” encoding=”gb2312”?>

<table>

       …

</table>

XML的編輯工具

n         Notepad

n         UltraEdit

n         XMLSpy

XML文檔

n         每一個XML文檔都有一個邏輯和一個實體結構。

n         實體上而言,文檔由稱為實體(entities)的存儲單元組成,實體都具有内容并且都通過實體的名字進行辨別(文檔實體和外部DTD子集除外)。實體可以是一段文本、一個檔案、一個資料庫記錄或其他包含資料的項目。一個實體可以引用其他的實體,進而将它們包含在文檔中。文檔開始于“根(root)”或文檔實體(document entitiy)。

n         格式良好的XML文檔形成了一種層次樹結構,而這個樹的書根就是文檔實體,與其他實體不同,文檔實體沒有名字,隻有用于表示文檔樹的根。XML文檔的根元素被稱為文檔元素(document element),它和在其他外部出現的處理指令、注釋等作為文檔實體的子結點,而根元素本身和其内部的子元素也是一顆樹。

n         實體可以包含已分析(parsed)的或未分析的(unparsed)資料。已分析的資料由字元組成,其中一些字元組成字元資料,另一些字元組成标記。已分析的實體(parsed entity)内容被稱為它的替換文本,這個文本被看成是文檔整體的一部分。在XML處理器分析XML文檔時,凡是文檔中出現引用已分析實體的地方,都将被該實體的内容所替換。

n         未分析的實體(unparsed entity)是一種資源,它的内容可以是也可以不是文本,并且,如果是文本的話,可以不是XML文本。每一個未分析的實體有一個相關聯的用名字辨別的記号(notation)。除了要求XML處理器能向應用程式提供可用的實體和記号的辨別之外,XML對未分析的實體内容不作任何限制。

n         已分析的實體以實體引用的方式通過名稱來調用;未分析的實體通過ENTITY或ENTITIES屬性中給出的名字來調用。

n         邏輯上而言,文檔由聲明、元素、注釋、字元引用和處理指令組成,在文檔中,所有這些都是通過顯式的标記(markup)來指明的。

n         XML标記(markup)包括開始标簽(tag)、結束标簽、空元素标簽、實體引用、字元引用、注釋、CDATA段定界符、文檔類型聲明、處理指令、XML聲明、文本聲明以及任何在文檔實體頂層的空白(即,在文檔元素之外,且不在任何其他的标記内部)。其他所有非标記的文本組成文檔的字元資料。

n         XML文檔在邏輯上主要由以下五個部分組成

1)        XML聲明

2)        文檔類型聲明

3)        元素

4)        注釋

5)        處理指令