第1章XML 簡介
本章我們將簡要討論X M L的歷史起源,并理解與X M L相關的技術的關鍵部分是如何協同工
作的。沿著這條思路,我們還將研究X M L的基本特征,以及此項技術對過去及未來的We b體系
結構產生的沖擊。我們希望這些能夠為大家深入挖掘本書其他部分的精華提供一個堅實的基礎。
1.1 標記語言
早在印刷出版技術出現時,作者就曾經在草稿上做出各種說明,指導印刷工人如何處理版
面排放以及其他制作問題。這些說明被稱作標記,而協調一致用來定義整套語法和文法的標記
集合則被稱作語言。例如,校對者就是用手寫的標記語言( markup language,M L)與作者交流
文字的正確與否。即使是現代的標點符號的使用也是某種形式的標記,因為它告訴讀者如何對
一段文本進行斷句。大多數M L都非常特殊,以便使標記與其涉及的文本區分開來。校對者的標
記使用的是草體的手寫文字和特殊符號,這就與印刷體的文本有著明顯的不同。同樣,標點符
號本身就非常特殊,不可能與代表文本內容的數字與字母相混淆。由于某些標點符號對于理解
和排放印刷文字來說是不可或缺的,所以被包含進了A S C I I碼字符集—用于幾乎所有現代計算
機的基本字符集。因此,這些符號也成為了現代編程語言語法的一部分,應該說,符號的標準
化使其又一次占據了重要的地位,不再是僅僅發揮語言標點的作用。
A S C I I標準中還定義了一組用來標記數據傳輸結構的符號(“C 0控制字符”,其十六進制值為
從0 0到1 F)。這些符號中只有一小部分被廣泛接受,而且它們的使用也曾經常常出現矛盾。這其
中最常見的就是用來界定文檔中一行文本的字符。
電傳打字機使用的是基于物理動作的字符對C R - L F(回車,換行),此后的M S - D O S和M S -
Wi n d o w s也承襲了這種習慣。與此相反的是, U n i x只用一個L F字符,M a c O S只用一個C R字符來
界定一行文本。由于存在這些沖突和A S C I I碼的非標準使用,這些系統之間的文檔交換就必需要
有一個轉換步驟—即便是簡單的文本文件如果沒有經過這個過程也不能被共享—這僅僅是最
簡單的標記問題,它甚至沒有涉及到如何組成一“行”文本的問題。大多數字處理程序都淘汰了
文本“行”的概念,而代之以“段落”,將行結束標記當作段落尾對待,A S C I I碼句號-空格(“.”),
句號-空格-空格(“.”)則被用來界定語句(雖然這種方法并不完美)。
有各式各樣的分隔符用來定義內容的分界,特殊符號的形狀,文本的表現形式,以及其他
特殊的文檔特征。例如,C和C + +程序語言使用大括號{⋯⋯}來界定數據或代碼單元,例如函數、
數據結構、對象定義,等等。主要用于手工編輯的排版語言則可能使用更易閱讀的字符串,例
如. b e g i n和. e n d。其他語言也可能使用其他字符或者字符串—它們也常常被稱作標記( t a g)。
當然,在不同的標記集之間及其解釋上經常會出現沖突。如果沒有通用的分隔符表,沒有通用
的內部數據格式,要將數據從一種格式轉變為另一種格式就會非常困難,更不用說在不同的應
用和組織之間共享數據了。
1 9 6 9年,人類第一次登上了月球。與此同時, I B M的研究人員Ed Mosher,Ray Lorie和
Charles F. Goldfarb 發明了第一種現代標記語言—通用標記語言( Generalized Markup
L a n g u a g e,G M L)。G M L是一種自參考的語言,它可以用于標記任何數據集合的結構,同時它
也是一種元語言( m e t a - l a n g u a g e)—能夠描述其他語言及其語法和詞匯表的語言。此后,
G M L發展成了標準通用標記語言( Standard Generalized Markup Language,S G M L)。1 9 8 6年,
S G M L被國際標準化組織( I S O)接受為國際性的數據存儲和交換的標準,并收錄在ISO 8879當
中(參見h t t p : / / w w w. i s o . c h)。考慮到We b對人類商業和通信行為產生的巨大影響,我們有理由相
信,在技術發展史上, G M L的悄悄問世可能是比人類第一次到另一個天體上冒險更為重要的事
件。
“標記”是一種傳輸元數據(即關于數據集本身的信息)的方法。標記語言使用文字串或
“標記”來界定和描述這些數據。
下面是一個非常簡單的S G M L文檔的樣例:
程序清單1 - 1
S G M L是一種非常強大(當然也相當復雜)的標記語言,它已經被美國政府及其合同商、大
型制造公司、信息技術發布者廣泛采用。出版商也經常使用S G M L制作各類紙張文檔,如書籍、
報告、參考手冊等。然后,這些S G M L文檔會被轉換為合適的格式,接著交給排版者和印刷者處
理。S G M L還被用來將技術規范應用于生產制造。但是,它的復雜性及其實現所需要的大量資金
又意味著大多數商業用戶和個人用戶無法享受此項技術所帶來的益處。
你可以在http://www.oasis-open.org/cover了解到有關SGML的更多信息。
不過,隨著萬維網實現技術的不斷進步,必將驅動我們尋找到一種更為簡便的途徑。
1.2 XML的起源和目的
1 9 9 6年,萬維網協會(或者叫W 3 C,h t t p : / / w w w. w 3 c . o rg)開始設計一種可擴展的標記語言,
使其能夠將S G M L的靈活性和強大功能與已經被廣泛采用的H T M L結合起來。這種后來變成
X M L的語言繼承了S G M L的規范,而且實際上就是后者的一個子集。從S G M L入手使得該設計小
組能夠將精力集中在簡化已有的成果上。S G M L已經提供了一種可以無限擴展的語言,它允許任
何人能夠根據自己的需要加以擴充。X M L之所以要較S G M L更為簡化,很大程度上是出于易用
性的考慮:人們對標記的讀寫過程應該使用現有的、簡便通用的工具,同時,我們也應當簡化
2使用XML 高級編程
下載
計算機對文檔和數據交換的處理。由于有太多的可選功能, S G M L變得過于復雜,以至于很難編
寫出針對這種語言的普通解釋器,而X M L的解釋器則簡單得多。此外, X M L使得現有的I n t e r n e t
中國航空網 www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:XML高級編程上