XML Note
本網頁以打造無障礙閱讀為目標,可以用任何瀏覽器來觀看本網頁
背景
- 「可延伸標示語言」(Extensible Markup Language, XML)是一個讓文件能夠很容易地讓人去閱讀,同時又很容易讓電腦程式去辨識的語言格式和語法,它自SGML(Standard Generalized Markup Language)延伸而來。
- SGML 是標準一般化標示語言 [Standard Generalized Markup Language] (ISO 8879),就是定義如何描述不同類型電子文件內容和結構的國際標準。
- XML 是由XML Working Group所制訂的,該組織的前身是SGML Editorial Riview Board,因此XML是由一群審核SGML的專家結合一群Web的專家所制訂的。
- XML與SGML都是一種元語言(meta-language),意指可以用來制訂產生其他的標示語言。
- XML並非取代HTML,HTML著重在如何將文件顯示在瀏覽器中, XML著重再如何將文件資料以結構化的方式來表示。
- 近來XML技術的發展,增加了許多相關標準如XML Schema、XSLT、DOM、SAX、Xpath等,及其他周邊技術如XQL、Qulit等(X家族),還有應用在各行各業如BizTalk、RosettaNet、XML/EDI、ebXML、BPML等等的國際產業流程標準。
- XML目前的標準是1999年通過的1.0,當時採用的Unicode是標準2.0,如今 Unicode早就已經到了標準4.0,因此審議中的XML1.1的至少會達到Unicode 3.0的字集可供使用。
簡介
撰寫XML的工具
一般而言編寫XML文件可選擇兩種類型的編輯器,但須注意存檔的編碼要與宣告的編碼相同喔
XML文件的結構
宣告(Prolog)
以<?xml ...................... ?>作為XML文件宣告的開始標記與結束標記,需注意標記中不可有空白
- version 用來指定XML標準的版本,目前只有1.0版
- encoding 用來指定XML文件所使用的字集編碼,預設編碼為Unicode(但不確定為UTF-16或UTF-8)
- standalone 用來指定XML文件是否獨立存在,預設是 “yes”
文件類別宣告(Document Type Declaration,DTD)
文件內容(Document Instance Set)
- 標籤(Tag):如<person id="A123456789">與</person>,指的是以小於與大於符號含括的元素與屬性稱之,且標籤必須成對,包括了開始標籤(start tag)與結束標籤(end tag)
- 元素(Element):指的是上述標籤中的 person
- 屬性(Atrribute):指的是上述標籤中的 id="A123456789",需以單引號或雙引號包括之
- 備註(Comment):必須使用<!-- ..................... --> 來表示,與HTML相同
- 若要將XML中的一段資料,包括文字與標籤都當作純文字,而不需經過剖析器來解釋其中標籤,可利用 <!CDATA[ ....................... ]]> 將之包起來
命名空間(NameSpace)
Well-Formed XML
所謂Well-Formed XML指的是"格式良好"的XML。
格式良好指的是所有的分隔符號 (delimiter) 都正確,而且所有的結束標記, 都相對於開始標記。任何一個 XML 處理系統假如檢查出文件不是 "格式良好",必須要告知使用者,而系統可能停止繼續處理。 (HTML 的瀏覽器通常都會容忍格式上的錯誤; 但 XML 系統就會產生錯誤訊息。) 首先先看一個簡單的XML範例
<?xml version="1.0" encoding="big5" ?> <!-- 此為宣告 -->
<catalog> <!-- 此為root標籤的開始 -->
<product>
<pname>HP printer</pname> <!-- 標籤必須成對出現 -->
<price currency="NT">12000</price>
<mark />
<!-- 原來的寫法為 <mark></mark> -->
</product>
<hr />
<product>
<pname>IBM notebook</pname>
<price currency="NT">4900</price> <!-- 屬性必須使用單引號或雙引號刮起來 -->
<mark>10Percent off</mark>
</product>
</catalog> <!-- 此為root標籤的結束 -->
請參照下列條件,若都能符合,大體上就是一個well-formed的XML
- 1.如果有XML文件宣告(prolog),必須位於XML文件的第一列
- <?xml version="1.0" encoding="big5" ?> 就宣告了XML的版本為1.0,字集為Big5
- 2.XML文件只能有一個根標籤 (root)
- 整個文件在<catalog> 與 </catalog> 之間,被視為一個樹狀結構
- 3.開始與結束的標籤必須成對出現
- 如<catalog></catalog>或<product></product>或<pname></panme>或<mark></mark>等
- 4.非成對標籤 或 標籤中無內容,則可用「/」 符號
- 例如<hr />或<mark></mark>可以用<mark />表示
- 5.標籤必須巢狀排列 ,而不可以重疊
- 不可有 <A><B></A></B> 這種重疊的情況,必須是<A><B></B></A>或<B><A></A></B>的情況
- 6.英文大小寫有別
- <A> 標籤不可與 </a>標籤配對
- 7.屬性必須被「'」或「''」 包括起來, 且使用的quotes也必須成對
- 如<price currency="NT"> ....</price> ,其中的currency="NT" 就是屬性
- 8.同一標籤不可有相同的屬性
- 如 <price currency="NT" currency='NT'> ....</price>就重複了相同的屬性2次,
- 9.特殊字元的使用必須採用所謂的實體引用(Entity Reference)
-
| 特殊字元 |
實體引用 |
& |
& |
> |
> |
< |
< |
" |
" |
' |
' |
- 10.使用正確的物件名稱
- XML的物件包括了標籤(Tag),元素(Element),屬性(Attribute),資料型態(Datatype),群組(Group),實體(Entity).....等 ,其命名就如同一般程式語言一樣有其規則必須符合,如必須是以文字、底線、或冒號(建議還是別用,因會被誤判為namespace)開頭的名稱,名稱中不可有空白...等。
可用的剖析器(parser)
- Parser是一個檢查XML文檔語法是否格式良好,並進行解析的軟體。
- 基本上瀏覽器即可當作XML的剖析器,如IE或FireFox等,若讀入的XML文件並非Well-Formed,瀏覽器獨入時便會顯示錯誤訊息。
Validating XML
- Validating XM指的是"驗證有效"的XML文件。
- 假如一個 well-formed的XML 文件符合在文件的開頭部份 (prolog) 使用「標示宣告」 所宣告的「文件內容模式」(content model),這個文件就稱為「驗證有效」。
可用的驗證器(validator)
- validator是一個檢查XML文檔語法是否符合DTD定義,並進行解析的軟體。
- 免費下載的validator
- 線上驗證服務
參考書目
- XML入門與應用 松岡 陳長念 ISBN:9574668916
- XML入門與實務經典 上奇 陳建勳 ISBN:9867944356
- XML應用寶典輕鬆體驗Web Service 上奇 劉宗億 ISBN: 9867944658
- XML學習手冊 O'REILLY Erik T.Ray ISBN:9578247648
網路資源
主 網 站:http://peterju.notlong.com
(目前轉址至 http://irw.ncut.edu.tw/peterju/)