? XML 文檔是一個含XML標記的ASCII文本文件,它的擴展名是.xml, 如: employee.xml在開始編寫XML文檔之前,你應該了解組成XML文檔的各個部分.一個XML文檔的主要成分包括:
?* 元素
?*?內容
?* 屬性
?* 注釋
?元素
?元素是XML文件的基本構造塊,作為主要的標注組件,用來描述文件的內容.每一個元素用一個標簽來表示一段文本信息.大部分標簽是成對出現的,開始標簽在數據的開始處,結束標簽放在數據的末尾.開始標簽和結束標簽之間嵌有信心的元素稱為容器元素.例如:
??? <Title> My Title </Title>
我們知道,上面語句中的Title是HTML里的元素,用來顯示瀏覽器窗口的標題.在XML里,你可以創建自己的元素,如:
?? <empname> John Rambo </empname>
在上面的語句中,empname是由開始標記(<>)和結素標記(</>)定義的元素,嵌在這兩個標簽中的信息就是這個元素的內容.利用元素嵌套,你可以構建一個分層的結構.
也有一些標簽不是成對出現的,被稱作空元素.空元素不能包含的元素或數據,因為它沒有開始和結束標簽.最簡單的空元素例子是用<BR>標簽表示的斷行元素.
在一個XML文件中,可以有一個或多個元素,但只能有一個根元素,根元素下面允許有多個子元素.
內容
在XML中,由元素表示的信息,稱為內容.請看下面的例子:
? <TITLE> LION KING </TITLE>
上面這行語句中,LION KING就是TITLE元素所表示的內容.
屬性
屬性提供元素的補充信息.每個屬性有一個屬性名和屬性值,屬性值可以是數字,單詞,或URL.
在HTML中,我們經常使用字體元素的顏色屬性,如:
<Font color="red">Displayed in red</Font>
其中,color是屬性名,其屬性值是red.
在XML中,屬性值一律要加上引號.例如:
<empname doj="2006">John Rambo</empname>
這里,"2006"是doj屬性(data of joining)的屬性值,用來描述元素empname.
注釋
注釋是用來給XML文檔加上注釋的,瀏覽器和XML處理器都忽略注釋,不加處理.使用注釋的好處是能使所有使用XML文檔的人都對文檔中各種元素的用法一目了然.
要在XML文件中輸入注釋,可以依次輸入一個小于號,一個感嘆號和兩個橫杠,再輸入注釋的文本內容,并確保文本中沒有兩個橫杠.這一點W3C規定的,以保持XML與SGML的兼容.最后輸入兩個橫杠和一個大于號來結束注釋.例如:
<!-- Writing comments in XML Documents-->
這就是注釋.
結構良好的XML文檔
一個結構良好的XML文檔應該遵守以下五個基本規則:
* 標簽不能隱含,必須顯式出現.每一個起始標簽必須有對應的結束標簽;每一個結束標簽也必須有對應的起始標簽,對比一下HTML和XML的不同:
在HTML中,可以用下面的這段代碼創建一個編號列表:
<OL>
<LI> Number list item one
<LI> Number list item two
<LI> Number list item three
</OL>
在上訴代碼中,用<OL>和</OL>來表示這是一個順序列表,用<LI>表示當前列表項的開始,而列表項的結束,則是靠后一列表項的開始來暗示的.如果這段代碼出現在XML文檔中,瀏覽器是不會正確解析這個頁面的,
因為它并不是一個結構良好的文檔.
XML文檔中的標簽必須顯式出現,不能隱含.如果用XML實現上面的例子,必須這樣書寫:
<OL>
<LI> Number list item one</LI>
<LI> Number list item two</LI>
<LI> Number list item three</LI>
</OL>
從上面這個例子中,你能看到,第一個列表必須包含在開始標簽和結束標簽之間,以滿足結構良好的XML文檔的第一個規則.
* 空標簽的結束字符'>'前必須使用'/'字符.
所謂空標簽,是指標簽的所有信息都放在它的分界符里,沒有任何屬于它的文本信息.比如象HTML中的<BR>和<IMG>,都不需要結束標簽,因為標簽里已經包含了所有的信息.
HTML中的標簽全部是預定義的,瀏覽器能夠直接識別.但是必須記住,XML中沒有任何預定義的標簽,用戶為自己的頁面定義自己的語言.正因為這樣,XML并不能知道<BR>,<IMG>是空標簽,你必須在標簽的結束處加上斜杠(/),來指明他們是空標簽.就像這樣:
<BR/>
<IMG SRC="image.gif"/>
* 所有的屬性值必須用雙引號括起來.
在HTML當中,下面的語法是正確的:
<TD WIDTH="25%">
<TD WIDTH=25%>
然而在XML當中,由于屬性值必須用引號括起來,所以只有前面一句和</TD>配合起來才是合法的.
* 標簽不能交疊使用
比如說,下面這行語句就交疊起來了:
<CITY>Chicago<STATE>Michigan</CITY></STATE>
在XML中,必須從里到外地關閉標簽,正確的順序是:
<CITY>Chicago<STATE>Michigan</STATE></CITY>
* 標簽大小寫敏感,每次都必須嚴格匹配
在XML文檔中,必須區分大小寫,如果你寫了如下的語句,將導致一個致命的錯誤(fatal error):
<P> Able was I, ere I saw Elba</p>
標簽<P>不能用來關閉標簽</p>,因為兩者的大小寫是不同的.所有的標簽必須大小寫嚴格匹配.
一個結構良好的XML文檔,就是一個嚴格遵循XML標簽規則,但沒有文檔類型定義(DTD, Document Type Definition)的文檔.