導言
初學XML最令人頭疼的就是有一大堆新的術語概念要理解由於XML本身也是一個嶄新的技術正在不斷發展和變化各組織和各大網絡公司(微軟IBMSUN等)都在不斷推出自己的見解和標准因此新概念漫天飛就不足為奇了而國內又缺乏權威的機構或組織來對這些術語正式定名你所看見的有關XML的中文教材大部分是靠作者本身的理解翻譯過來的有些是正確的有些是錯誤的更加妨礙了我們對這些概念的理解和學習
你下面將要看到的關於XML術語的解釋也是作者本身的理解和翻譯阿捷是以WC組織發布的XML標准規范和相關的正式說明文檔為根據來講述可以確保這些理解是基本正確的至少不是錯誤的你如果想進一步閱讀和了解我在本文的最後部分列明了相關資源的出處和鏈接你可以直接訪問好我們轉入正題
一XML文檔的有關術語
什麼是XML文檔?知道HTML原代碼文件吧XML文檔就是用XML標識寫的XML原代碼文件XML文檔也是ASCII的純文本文件你可以用Notepad創建和修改XML文檔的後綴名為XML例如myfilexml用IE以上浏覽器也可以直接打開xml文件但你看到的就是XML原代碼而不會顯示頁面內容你可以將下面代碼存為myfilexml試試
<?xml version= encoding=GB?>
<myfile>
<title>XML輕松學習手冊</title>
<author>ajie</author>
<email></email>
<date></date>
</myfile>
XML文檔包含三個部分
一個XML文檔聲明
一個關於文檔類型的定義
用XML標識創建的內容
舉例說明:
<?xml version=?>
<!DOCTYPE filelist SYSTEM filelistdtd>
<filelist>
<myfile>
<title>QUICK START OF XML</title>
<author>ajie</author>
</myfile>
</filelist>
其中第一行<?xml version=
?>就是一個XML文檔的聲明
第二行說明這個文檔是用filelist
dtd來定義文檔類型的
第三行以下就是內容主體部分
我們來了解XML文檔中有關的術語
Element(元素)
元素在HTML我們已經有所了解它是組成HTML文檔的最小單位在XML中也一樣一個元素由一個標識來定義包括開始和結束標識以及其中的內容就象這樣<author>ajie</author>
唯一不同的就是在HTML中標識是固定的而在XML中標識需要你自己創建
Tag(標識)
標識是用來定義元素的在XML中標識必須成對出現將數據包圍在中間標識的名稱和元素的名稱是一樣的例如這樣一個元素
<author>ajie</author>
其中<author>就是標識
Attribute(屬性):
什麼是屬性?看這段HTML代碼:<font color=red>word</font>其中color就是font的屬性之一
屬性是對標識進一步的描述和說明一個標識可以有多個屬性例如font的屬性還有sizeXML中的屬性與HTML中的屬性是一樣的每個屬性都有它自己的名字和數值屬性是標識的一部分舉例
<author sex=female>ajie</author>
XML中屬性也是自己定義的我們建議你盡量不使用屬性而將屬性改成子元素例如上面的代碼可以改成這樣
<author>ajie
<sex>female</sex>
</author>
原因是屬性不易擴充和被程序操作
Declaration(聲明)
在所有XML文檔的第一行都有一個XML聲明這個聲明表示這個文檔是一個XML文檔它遵循的是哪個XML版本的規范一個XML的聲明語句就象這樣
<?xml version=?>
DTD(文件類型定義)
DTD是用來定義XML文檔中元素屬性以及元素之間關系的
通過DTD文件可以檢測XML文檔的結構是否正確但建立XML文檔並不一定需要DTD文件關於DTD文件的詳細說明我們將在下面單獨列項
Wellformed XML(良好格式的XML)
一個遵守XML語法規則並遵守XML規范的文檔稱之為良好格式如果你所有的標識都嚴格遵守XML規范那麼你的XML文檔就不一定需要DTD文件來定義它
良好格式的文檔必須以一個XML聲明開始例如
<?xml version= standalone=yes encoding=UTF?>
其中你必須說明文檔遵守的XML版本目前是其次說明文檔是獨立的它不需要DTD文件來驗證其中的標識是否有效第三要說明文檔所使用的語言編碼默認的是UTF如果使用中文你需要設置為GB
良好格式的XML文檔必須有一個根元素就是緊接著聲明後面建立的第一個元素其它元素都是這個根元素的子元素屬於根元素一組
良好格式的XML文檔的內容書寫時必須遵守XML語法(有關XML語法我們將在下一章仔細講解)
Valid XML(有效的XML)
一個遵守XML語法規則並遵守相應DTD文件規范的XML文檔稱為有效的XML文檔注意我們比較Wellformed XML和Valid
XML它們最大的差別在於一個完全遵守XML規范一個則有自己的文件類型定義(DTD)
將XML文檔和它的DTD文件進行比較分析看是否符合DTD規則的過程叫validation(確認)這樣的過程通常我們是通過一個名為parser的軟件來處理的
有效的XML文檔也必須以一個XML聲明開始例如
<?xml version= standalone=no encode=UTF?>
和上面例子不同的在standalone(獨立)屬性中這裡設置的是no因為它必須和相應的DTD一起使用DTD文件的定義方法如下
<!DOCTYPE typeofdoc SYSTEM/PUBLIC dtdname>
其中
!DOCTYPE是指你要定義一個DOCTYPE;
typeofdoc是文檔類型的名稱由你自己定義通常於DTD文件名相同
SYSTEM/PUBLIC這兩個參數只用其一SYSTEM是指文檔使用的私有DTD文件的網址而PUBLIC則指文檔調用一個公用的DTD文件的網址
dtdname 就是DTD文件的網址和名稱所有DTD文件的後綴名為dtd
我們還是用上面的例子應該寫成這樣
<?xml version= standalone=no encode=UTF?>
<!DOCTYPE filelist SYSTEM filelistdtd>
二DTD的有關術語
什麼是DTD我們上面已經簡略提到DTD是一種保證XML文檔格式正確的有效方法可以比較XML文檔和DTD文件來看文檔是否符合規范元素和標簽使用是否正確一個DTD文檔包含元素的定義規則元素間關系的定義規則元素可使用的屬性可使用的實體或符號規則
DTD文件也是一個ASCII的文本文件後綴名為dtd例如:myfiledtd
為什麼要用DTD文件呢?我的理解是它滿足了網絡共享和數據交互使用DTD最大的好處在於DTD文件的共享(就是上文DTD說明語句中的PUBLIC屬性)比如兩個相同行業不同地區的人使用同一個DTD文件來作為文檔創建規范那麼他們的數據就很容易交換和共享網上有其他人想補充數據也只需要根據公用的DTD規范來建立文檔就立刻可以加入
目前已經有數量眾多的寫好的DTD文件可以利用針對不同的行業和應用這些DTD文件已經建立了通用的元素和標簽規則你不需要自己重新創建只要在他們的基礎上加入你需要的新標識
當然如果願意你可以創建自己的DTD它可能和你的文檔配合的更加完美建立自己的DTD也是很簡單的一件事一般只需要定義個元素就可以了
調用DTD文件的方法有兩種
直接包含在XML文檔內的DTD
你只要在DOCTYPE聲明中插入一些特別的說明就可以了象這樣
我們有一個XML文檔
<?xml version= encoding=GB?>
<myfile>
<title>XML輕松學習手冊</title>
<author>ajie</author>
</myfile>
我們在第一行後面插入下面代碼就可以
<!DOCTYPE myfile [
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ENTITY copyright Copyright Ajie>
]>
調用獨立的DTD文件
將DTD文檔存為dtd的文件然後在DOCTYPE聲明行中調用例如將下面的代碼存為myfiledtd
<!ELEMENT myfile (title author)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)>
然後在XML文檔中調用在第一行後插入
<!DOCTYPE myfile SYSTEM myfiledtd>
可以看到DTD文檔和HTML中js的調用是差不多的關於DTD文檔具體如何寫我們將在下一章和XML文檔的語法一起介紹
下面我們來了解DTD有關的術語
Schema(規劃)
schema是數據規則的描述schema做兩件事
a它定義元素數據類型和元素之間的關系
b它定義元素所能包含的內容類型
DTD就是關於XML文檔的一個schema
Document Tree(文檔樹)
文檔樹在前面第二章我們已經提到過它是文檔元素分級結構的形象表示一個文檔結構樹包含根元素根元素是最頂級的元素(就是緊接著XML聲明語句後的第一個元素)看例子
<?xml version=?>
<filelist>
<myfile>
<title></title>
<author></author>
</myfile>
</filelist>
上面的例子分三級結構排列成
樹
狀
其中的<filelist>就是根元素
在XML和DTD文件中
第一個定義的都是根元素
Parent Element(父元素)/Child Element(子元素)
父元素是指包含有其它元素的元素被包含的元素稱為它的子元素看上面的結構樹其中<myfile>是父元素<title><author>是它的子元素而<myfile>又是<filelist>的子元素象<title>這樣沒有包含任何子元素的最後一級元素我們也稱之為頁元素
Parser(解析軟件)
Parser是一種檢查XML文檔是否遵循DTD規范的工具軟件
XML的parser發展為兩類一種是非確認類paeser只檢測文檔是否遵守XML語法規則是否用元素標識建立了文檔樹另一種是確認類paeser它不但檢測文檔語法結構樹而且比較解析你使用的元素標識是否遵守了相應DTD文件的規范
Parser能獨立使用也可以成為編輯軟件或浏覽器的一部分在後面的相關資源列表裡我列出了當前比較流行的一些parsers
好了我們已經了解了一些XML和DTD的基本術語但是我們還不知道怎樣來寫這些文件需要遵循什麼樣的語法
From:http://tw.wingwit.com/Article/program/net/201311/13601.html