這裡的19個有關XML的熱門問題能夠讓你成為一XML“專家”,或至少讓你能夠在今後看准XML的發展方向。
1 什麼是XML? 11 OSD和CDF與XML的關系如何?
2 XML何以重要? 12 電子商務(e-commerce)和XML?
3 SGML、HTML和XML有什麼聯系? 13 XML中的層疊樣式?
4 如何實現XML? 14 XML如何改進超鏈接?
5 什麼是文件類型定義(DTD)? 15 服務器上支持XML嗎?
6 什麼是格式完整和有效的文件? 16 誰應該學習XML?
7 如何在浏覽器中閱讀XML? 17 有哪些編寫XML的工具可供我使用?
8 RDF和XML有何聯系? 18 XML的國際化?
9 Netscape浏覽器中如何實現XML? 19 XML的未來在哪裡?
10 Microsoft浏覽器中如何實現XML?
1.什麼是XML?
XML代表擴展標識語言(Extensible Markup Language). 由 World Wide Web Consortium (W3C)帶頭, XML在二月中期成為一個正式的規范.
XML開發者會告訴你XML不是一種語言,而是一個定義其他語言的系統. 你可能已經聽說過, 或使用過這些語言中的一種,--如Microsoft支持"推技術"的 Channel Definition Format (CDF).
正從事於XML相關建議工作的W3C, 稱XML為"表達數據中結構 的共同語法". 結構化的數據指的是其內容,意義或應用被標記的數據. 例如, HTML中<H1>標記指定文本為某一字體和大小, XML的標記將明確確定信息的種類: <BYLINE>標記可以識別文檔的作者, <PRICE>標記可以在一個存貨清單中包含某一項目的成本 .
通過將結構,內容和表現分離, 同一個XML源文檔只寫一次, 可以用不同的方法表現出來: 在計算機屏幕上, 在手提電話顯示屏上, 在為盲人服務的設備上翻譯成語音, 等等. 它可以在可能開發的任何通訊產品上工作. 一個XML文檔因此可以比其書寫時的作者和顯示技術生存得更久.
所以, XML將不僅限於Internet, 例如, 可以服務於整個出版業, 特別是對於想制作可出現在多種媒體上的文檔的人. 一些使用Standard Generalized Markup Language (SGML)多年的大型文檔出版商將轉向XML. 還有, 獨立於平台的XML是為Web開發的, 這是它將最具影響的地方.
DOM
XML在Web的真正實力在於它是如何與Document Object Model (DOM)交互的. DOM是定義訪問文檔中數據的機制的界面.
使用DOM, 程序員可以用一個標准的方法寫動態的內容. 換句話說, 他們可以使用它來使浏覽器文檔樹中的一部分特定內容按照一定的方式表現, 例如, 產生一個小效果, 當用戶將鼠標移至文字上時, 這些文字變成藍色. Netscape Navigator 和 Microsoft Internet Explorer 都有他們各自的DOM, 但是他們都稱將在其下一版本的浏覽器中支持W3C 的標准DOM.
2.XML何以重要?
Web領袖之間的說法是內容至上. 不幸地, 內容經常和其表現緊密結合. 請問你多少次在一個網站上遇到一個小小的提示, "最好在800x600像素的分辨率上顯示"?
XML將幫助解決以上問題, 因為網站建造者不用再指明在哪裡顯示什麼, 而是指明文檔 的結構. 例如, 你可以說明文檔的標題, 作者, 關聯文檔的清單, 等等. 然後, 任何一個有XML浏覽器的設備都可以給出最適合它的文檔版本, 這樣的設備可以是一個掌上型計算機, 置頂盒, 或高速的工作站.
但是, 也許XML的最佳特性是其內在的可擴展性. 公司和組織能夠擴展XML來滿足新的挑戰和應用. 一個基於XML的語言已經在使用--微軟的Channel Definition Format (CDF)-- 還有更多將出現, 包括 Resource Definition Format (RDF) 和 Open Software Description (OSD).
XML 也允諾成為交換數據 和文檔的標准機制. 例如, XML可能成為不同廠商的數據庫在Internet上交換信息的一種方法.現在准確地決定XML的方向還有一些早. 但是, 其各種可能性是令人敬畏的,這就是為什麼圍繞著XML有如此多的激動的一個重要原因.
3.SGML、HTML和XML有什麼聯系?
Standard Generalized Markup Language (SGML) 是在文字處理應用中表達數據的一個方法. 它已經出現十多年了, XML 和 HTML 都是從SGML 發展而來的文檔形式. 因此, 它們都有一些共同點, 如相似的語法和帶括弧的標記符的使用. 但是 HTML 是SGML的一個應用, 而 XML是SGML的一個子集.
區別是重要的. 基本上HTML不能用來定義新的應用, 而XML可以. 例如, Resource Description Format (RDF) 和 Channel Description Format (CDF)都是使用XML定義的應用. XML和HTML更象表兄弟, 而不是親兄弟.
事實上, XML和SGML是兼容的 -- XML文檔可以通過任何SGML制作或浏覽工具閱讀. 但是, XML沒有SGML那麼復雜, 它是設計用於有限帶寬的網絡的, 如Internet. XML規范的合作者Tim Bray說, XML的設計出發點是取SGML的優點, 去除復雜的部分, 使其保持輕巧, 可以在Web上工作.
HTML,SGML和XML將繼續用於其合適的地方, 它們中的任何一個不會使其他一個廢棄. HTML仍是在Web上快速出版數據的最簡單的方法, 大部分短期的數據, 如會議議程或廣告宣傳冊. 如果數據會長期使用, 並且需要更多的一些結構, Web建造者將願意使用XML. 不同於HTML和XML, SGML可能永遠不會在Internet上被廣泛接受, 因為它從來沒有為某個網絡協議的需求而設計或優化過. 對於高端的, 復雜結構的出版應用, SGML將繼續適用.
4.如何實現XML?
XML將以幾個不同的方式應用. 一個是在人機之間交換數據, 如從Web服務器至用戶的浏覽器. 另外一個是在不同的應用之間交換數據, 或者是機器之間交換數據.
在這些情況下, 你都可能需要三層架構: 後端數據庫, 針對數據的處理邏輯的中間層服務器, 以及數據進一步顯示和處理的客戶端. 數據庫可以從多個數據來源接收信息, 可能已經是XML格式的數據. 中間層然後聚攏數據並在最終的表現層上公布.
現在, 網頁有時候以這種方法傳送 --CNET的NEWS.COM 從一個數據庫中發表數據. 但是要獲得一頁的新的視圖, 如NEWS.COM的新的“打印機友好”選項, 服務器必須產生一個新的頁面. 一份適當格式化的XML文檔將允許客戶端的應用為不同的媒體修改文檔的表現形式, 比如為打印機.
5.什麼是DTD?
文檔類型定義 (DTD) 是一套關於標記符的語法規則. 它告訴你可以在文檔中使用哪些標記符, 它們應該按什麼次序出現, 哪些標記符可以出現於其它標記符中, 哪些標記符有屬性, 等等. DTD原來是為使用SGML開發的, 它可以是XML文檔的一部分, 但是它通常是一份單獨的文檔或者一系列文檔
因為XML本身 不是一種語言, 而是定義語言的一個系統, 它沒有象HTML一樣擁有一個通用的DTD. 相反, 想使用XML進行數據交換的工業或組織可以定義它們自己的DTD.
如果一個組織想用XML來標識僅在內部使用的文檔, 它可以創造自己私有的DTD. 比如 Wall Street Journal Interactive Edition 擁有一個 DTD 來詳細說明每一版, 其中有關於頁, 文章, 概要, 標題下署名等等的信息. 刊物目前使用SGML DTD (稱作Dow Jones Markup Language), 但是它也正在開發一個XML版本.
關於DTD並不是沒有爭議的. 一些人感到它給商業業務增加了實實在在的價值, 而一些人感覺它限制了創造性. 還有一些人認為DTD有用, 但是還做得不夠. 微軟正嘗試用它的XML數據提議來解決上一個抱怨, 但是批評者說這些改進應該在DTD規范本身進行.
微軟的schema
一些供應商, 包括微軟, 已經提議了替代DTD的一個方法, 稱為schema. 他們已經將其以XML數據提交給了W3C. 就象DTD, schema提供了文檔的規則, 並指出用什麼標記符, 標記符的屬性, 之間的聯系, 等等.
但是, 不同於DTD, schema可以定義數據類型. 例如, DTD可能有一個標記符 <PRICE>, 而標記符之間的內容可以是數字或字符串. Schema 可以規定只輸入數字.
這個方法顯然有其優點, 特別是用於應用,對象,或數據庫之間的數據傳輸. 唯一的問題是它將成為DTD規范, 還是XML的一個擴展.
6.什麼是格式完整和有效的文件?
基本上有兩類相關的XML文檔: 構造良好的和有效的. 構造良好的 XML文檔遵守XML語法的一般規則, 這些規則比HTML和SGML的更為嚴格. XML的字符數據決不會吊在那裡, 沒有某種結束標識符, 或者是象<MYTAG></MYTAG> 成對出現的 結束標識符, 或者是一個特別的在右尖括弧前帶有一個斜槓的 空元素 標記, 比如 <MYTAG/>; XML 標識總是以左尖括弧或 & 開始; 元素類型和屬性名稱是大小寫區分的; 屬性需要引號; 等等.
有效的 XML 文檔遵守某個特定的 文檔類型定義 (DTD). 確認XML文檔正確性的工作主要由制作出版工具承擔, 而XML浏覽器為讀取XML文檔, 只需要檢查其構造的良好性. 這樣, 制作工具中的解析器得要檢查構造良好性 和 有效性, 而浏覽器僅要考慮尋找已經構造良好的XML.
7 如何在浏覽器中閱讀XML?
閱讀XML文檔的工具一般稱為XML解析器, 雖然其更正式的名稱是XML處理器. XML處理器將數據傳送到應用軟件, 以做制作, 出版, 查詢, 或顯示. XML不給應用軟件提供 應用程序接口 (API), 它只是把數據傳給應用軟件. XML處理器不解析非構造良好的數據. Netscape 和 Microsoft 都已經將XML解析器包含在其浏覽器中, 或正計劃將其包含到浏覽器中.
XML開發者團體提供免費的XML閱讀器和解析器, 來應用到應用軟件或XML制作軟件:
Textuality的 Lark, 來自XML規范的作者之一.
Microstar Software的 Ælfred, 一個基於Java的解析器.
DataChannel的 DXP, 前身為著名的NXP, 或已經增加了API的Norbert的 (Mikula) XML 解析器.
8 RDF和XML有何聯系?
如果XML是說語言的能力, XML應用軟件則是特定的語言. 資源描述格式(Resource Description Format RDF) 是這樣的一個應用軟件: