【文章內(nèi)容簡介】
檔表示應該標準化,所以它只使用了一個固定的元素類型集。這就使得 HTML 僅僅是符合 SGML 語法的一種固定格式的超文本標記語言,不可擴展,用戶不能在其中增加有意義的并且能提供他們使用的標記。瀏覽器開發(fā)商發(fā)現(xiàn),通過對 HTML 非兼容性的擴充可以獲取更大的市場份額,于是大量非標準的 HTML 擴展出現(xiàn)了。在這方面,兩大瀏覽器生產(chǎn)商 Netscape 和Microsoft 就是 典型的代表。他們發(fā)明了許多只能被自己的瀏覽器所識別的標記,但非標準的擴展破壞了 Web 的交互操作性。 (2) 語義性差 HTML 只是一種表達的技術(shù),它并不能對由各種標記所定義的數(shù)據(jù)含義進行說明,這就使得存放在 HTML 文檔中的數(shù)據(jù)都是“死”數(shù)據(jù),很難找到一種方法來從文檔中搜索需要的數(shù)據(jù),更不用說對 HTML 文檔中包含的數(shù)據(jù)進行更深入的處理。在數(shù)據(jù)交換越來越頻繁、越來越重要的今天,缺乏語義性可能是 HTML 最為致命的弱點。 (3) 缺乏對雙字節(jié)或多國文字的支持 HTML 缺乏對雙字節(jié)或多國文字的支持 。 例如在設計 HTML 網(wǎng)頁時,經(jīng)常發(fā)現(xiàn)中文信息在不同平臺下出現(xiàn)格式不齊的問題。同時,在 HTML 中,除了使用其固有的或各個瀏覽器開發(fā)商通過非標準擴展得到的標記之外,不能再用別的標記,更不用說非英語國家的用戶使用本國語言定義的標記,比如中文標記。 HTML 的這種局限性也在一定程度上成為了網(wǎng)絡發(fā)展的障礙。 XML 的產(chǎn)生和特點 HTML 實際是從標準通用標記語言 SGML(Standard Generalized Markup Language)衍生出來的一種簡單的標記語言,受 Inter 熱潮的沖擊,很快它就成為在網(wǎng)上制作頁面的標 準語言格式。 XML 也是從 SGML 所衍生出來的簡化格式,與HTML 一樣,其目的是讓互聯(lián)網(wǎng)上的數(shù)據(jù)描述有一個簡單可行的標準。只不過它們基于 XML 數(shù)據(jù)轉(zhuǎn)儲方法的設計與研究 第二章 XML 數(shù)據(jù)轉(zhuǎn)儲的基本概念 5 的服務目標和手法不盡相同, HTML 是單一的固定格式,而 XML 卻是可以擴充的靈活格式。 XML(eXtenshible Markup Language)是一個體系,它主要有三個要素 : Schema(模式 )、 XSL(可擴展樣式語言 )和 XLL(可擴展鏈接語言 )。 Schema 定義了 XML 文件的邏輯機構(gòu)、 XML 文件中的元素、元素的屬性以及元素與元素屬性、元素與元素之間的關系,它可以幫助 XML 分析程序校驗 XML 文件標記的合法性。 XSL 是用于規(guī)定XML 文檔樣式的語言,它能在客戶端使 WEB 瀏覽器改變文檔的表示法,從而不需要再與服務器交互通信 。 由于 XML 與 HTML 都是 SGML 的進一步延伸,因此有許多相似之處,主要表現(xiàn)在 : 整個文檔由若干元素組成,而每個元素又可以包含子元素,依次嵌套下去 ;采用純文本格式,真正的數(shù)據(jù)是以純文本格式表示的,可以用任意文本編輯器讀寫 ;用標簽表示信息的類別以及標記標簽之間的數(shù)據(jù)應如何處理。 XML 具有良好的數(shù)據(jù)存儲格式、可擴展、高度結(jié)構(gòu)化、易于網(wǎng)絡傳輸?shù)忍卣?。這些特征決定其卓越 的性能表現(xiàn) [10]。 作為標記語言它還有如下特點 : (1) 開放性 : XML 能在不同的用戶和程序之間交換數(shù)據(jù),不論其平臺如何。 (2) 自描述 : 它的自描述特性使其對于 B2B 和企業(yè)內(nèi)部網(wǎng)解決方案來說是一個有效的選擇。 (3) 可擴充 : 使用者可以創(chuàng)建和使用自己的標簽,也可使用他人已定義好的標簽,可擴展性大。使用 DTD,不同組中的人就能夠使用共同的 DTD 來交換數(shù)據(jù),應用程序也可以使用這個標準 DTD 來驗證收到的數(shù)據(jù)是否有效,也可以使用一個 DTD 來驗證自己的數(shù)據(jù)。 (4) 國際化 : XML 支持世界上大多數(shù)文字。凡能閱讀 XML 語言的軟件就能夠順利處理不同語言字符的任意組合。因此, XML 不僅能在不同計算機系統(tǒng)之間交換信息,而且能跨國界和超越不同的文化疆界交換信息。 正因為如此, XML 可以提供在應用程序和系統(tǒng)之間傳輸結(jié)構(gòu)化數(shù)據(jù)的方法。像客戶信息、信用卡交易、定單和完成請求,這類數(shù)據(jù)能夠轉(zhuǎn)換成 XML 并在應用程序之間共享。 XML 的應用領域 XML 由多位語言專家精心設計,具有 HTML 所沒有的優(yōu)勢和特點,解決了HTML 面臨的諸多難題。正因為如此, XML 一經(jīng)推出就受到業(yè)內(nèi)人士認同,并在各領域內(nèi)得到廣泛的應用,甚至連 HTML 也按照 XML 的標準重新進行了規(guī)范,成為初露鋒芒的 XHTML。 由于 XML 吸收了 SGML 和 HTML 兩者的優(yōu)點,并且避免了兩者的不足之處,所以它具有的獨特優(yōu)勢,使其很快在眾多的專業(yè)領域得到應用。 基于 XML 數(shù)據(jù)轉(zhuǎn)儲方法的設計與研究 第二章 XML 數(shù)據(jù)轉(zhuǎn)儲的基本概念 6 (1) XML 與電子商務 近幾年來,電子商務一直是 Inter 上最為搶眼的熱點,而 XML 作為解決應用程序之間數(shù)據(jù)交換問題的方案,己經(jīng)開始在電子商務領域嶄露頭角,且對電子商務的實現(xiàn)方式產(chǎn)生重大影響?;?XML 的電子商務可以實現(xiàn)使用者與系統(tǒng)之間的動態(tài)交互 [11]。憑借 XML 的可伸縮性和自描述性,電子商務信函可在各企業(yè)的應用程序 間自動傳輸、處理和存儲,不同廠商的電子商品目錄可在同一訪問界面同時呈現(xiàn),信息的搜索將變得更為精確和迅速,不同系統(tǒng)間可以流暢地通信,不同網(wǎng)站之間的資料可動態(tài)地共享。 (2) XML 與無線通信 Inter 對人類的影響是巨大的。越來越多的人利用 Inter 炒股、做生意、預定機票或房間,這使移動電話生產(chǎn)商和電信運營商們看到了前所未有的機會。他們把 Inter 與無線通信網(wǎng)結(jié)合,這樣無線上網(wǎng)技術(shù)就出現(xiàn)了,而其中起著關鍵作用的是 WAP(Wireless Application Protocol,無線應用協(xié)議 )。 WAP 是 XML 在無線通信領域的應用實例,它巧妙地利用 XML 令牌化的二進制表示,通過標準化的、自描述形式的 XML,滿足二進制數(shù)據(jù)的精簡形式。 WML (Wireless Markup Language,無線標記語言 )作為 WAP 規(guī)范的重要組成部分,同樣是一個基于 XML 的、適用于無線通信設備的標記語言。通過 WML,能夠在移動電話上顯示信息,還能夠規(guī)定當用戶激活一個用戶接口或按某個鍵時,用戶代理程序如何響應 [12]。 (3) XML 與科學 XML 的出現(xiàn)使 Web 上的科學漸漸地時興起來。第一個將 XML 應用于科學的是Peter MurrayRust 的 JUMB0 瀏覽器,它主要用于化 學標記語言?;瘜W標記語言可以在不造成任何語義改變的情況下,進行不同類文件格式的 轉(zhuǎn)化,且能創(chuàng)建適合于專業(yè)出版的結(jié)構(gòu)化文檔。 XML 詞匯表中 有一種 MathML,它為數(shù)學表達式的轉(zhuǎn)化提供了一條途徑。 MathML 會用純粹的圖片以及 ASCII 碼來代替各類方程式,以便在適當?shù)臑g覽器中準確地顯示 出來,且為代數(shù)、幾何、統(tǒng)計及其它數(shù)學軟件工具的符號提供交換格式, XML 在科學上的應用將為開發(fā)強大的教育類工具提供堅實的基礎。 XML 四種文檔介紹 XML 文檔 XML 的基本概念和術(shù)語都很簡單,并且己經(jīng)形式化為開放的因特網(wǎng)標準。如同W3C 的 規(guī)范中所說的那樣 :“ XML 文檔由成為實體的存儲單元組成,實體中包含解析過或未解析的數(shù)據(jù)。解析過的數(shù)據(jù)由字符組成,其中一些形成字符數(shù)據(jù),另一些形成標記符。標記符對文檔的存儲布局和邏輯結(jié)構(gòu)進行描述?!?XML 文檔同時具有物理結(jié)構(gòu)和邏輯結(jié)構(gòu)。 XML 文檔的物理結(jié)構(gòu)簡單指向 XML 文件本身以及可能引入的其他文件,而 XML 文檔的邏輯結(jié)構(gòu)則指向文檔的序言 (Prolog)和主體基于 XML 數(shù)據(jù)轉(zhuǎn)儲方法的設計與研究 第二章 XML 數(shù)據(jù)轉(zhuǎn)儲的基本概念 7 (body)[13]。 序言由 XML 的聲明組成,包括 版本號、可能的語言編碼、其他屬性、可選的文檔類型定義 (DTD)等,其中 DTD 可以是內(nèi)部的,即包括在 XML 文檔中,也可以是外部的,即指向另一個文件。 根元素出現(xiàn)在序言之后,它包括了 XML 文檔的剩余部分。這一部分由元素、處理指令、屬性、注釋、實體引用等組成。 XML 規(guī)則要求一個文檔存在唯一的根元素。元素必須有起始標記符和對應的結(jié)束標記符,而且應逐層嵌套,否則 XML 文檔的格式就是不確定的, XML 解析器有可能因此而報錯。 DTD 文檔 文檔類型定義 DTD(Document Type Definition), 定義 XML 文檔的結(jié)構(gòu)。在電子商務中交換 XML 文檔時, DTD 主要用于確保文檔的一致性。它本身使用的是EBNF(Extended BackusVaur Form)語法定義的。 由于 XML 是一種元語言,也就是一種描述標記語言的語言。為創(chuàng)建新的標記語言需要用文檔類型定義 (DTD)來進行定義。單獨的 XML 文檔可以根據(jù) DTD 進行比較,這個過程稱為驗證 (Validatioin)。如果該文檔與 DTD 中列出來的約束規(guī)則相匹配,則認為該文檔是有效的 ; 如果該文檔與約束規(guī)則不匹配,則認為該文檔無效。一個有效的 XML 文檔不僅遵循 XML 的語法規(guī)則,而且受到 DTD 詞匯規(guī)則的約束。 如果格式正規(guī)的 XML 文檔未指明其應遵循的規(guī)則,那么解析器無法利用規(guī)則檢查其中的錯誤。這樣整個系統(tǒng)的完整性無法得到保證,代碼中的錯誤很難被發(fā)現(xiàn)。它們還可能引起其他程序的中斷,或者導致錯誤的數(shù)據(jù)進入系統(tǒng)。 DTD 用正式的語法書寫,確切定義了文檔內(nèi)允許出現(xiàn)什么,不允許出現(xiàn)什么,解析器能夠讀懂這些規(guī)則 。 DTD 和驗證型解析器,能組成一種可靠的錯誤檢測機制,保證 XML 文檔的完整性。 DTD 內(nèi)容一般包括 : 元素類型聲明、屬性聲明、實體聲明和符號表示法,以及這些內(nèi)容之間可能的相互 關系。 DTD 的創(chuàng)建必須依照規(guī)范定義標記、屬性、以及它們之間的關系。如果 DTD 文件是需要被 XML 文件引用的,那么 DTD 文件就必須保證它的結(jié)構(gòu)是良好的,否則 XML 解析器會報告 DTD 中的錯誤。 DTD 是使用文檔類型聲明 (例如, DOCTYPE)引入到 XML 文檔中的。文檔類型聲明放在 XML 文檔的序言部分,以“ !DOCTYPE”開頭,以“ ”結(jié)束。文檔類型聲明可以在文件內(nèi)部或者外部或者內(nèi)外都有。 Schema(模式 )文檔 Schema 與 DTD 都用來定義 XML 文檔應遵循的規(guī)則 [12]。 DTD 是傳統(tǒng)的 XML約束規(guī)則,它從標準通用標記語言 (SGML)繼承而來的,發(fā)布時間早。 SGML 是為描述性文檔 (例如報告、技術(shù)手冊 )而設計的, DTD 可以滿足這類文檔的需要。但是 XML基于 XML 數(shù)據(jù)轉(zhuǎn)儲方法的設計與研究 第二章 XML 數(shù)據(jù)轉(zhuǎn)儲的基本概念 8 超過了 SGML 的使用范圍,它可用于對象串行化、股票交易、遠過程調(diào)用以及很多看上去與傳統(tǒng)的描述性文檔無關的應用,在這些應用中 DTD 顯示出了局限性。 DTD 的不足之處首先體現(xiàn)在完全沒有數(shù)據(jù)類型的定義。比如 DTD 不能表示一個Month 元素的值必須是 1 到 12 之間的一個整數(shù)。在計算機系統(tǒng)交換數(shù)據(jù)的應用中,涉及數(shù)據(jù)格式是很常見的情況。第二個不足 : DTD 使用 了一個不常見的非 XML 語法 。 例如下面一個常見的元素定義 : !ELEMENT title(PCDATA),顯然這和 XML的語法一點都不相似。第三個問題是 DTD 只能進行有限的擴展,但是效果不太理想。當 DTD 內(nèi)容超過 10, 000 行代碼后,整個 DTD 變得不可理解和管理。另外 它對命名空間支持不夠,當問題復雜時不太容易定義元素等。這些問題可以通過引入 Schema解決。 XSL文檔 XML 網(wǎng)頁在瀏覽器中通常是以簡單的樹型結(jié)構(gòu)顯示的。在 B2B 的體系結(jié)構(gòu)中,由于 XML 只扮演數(shù)據(jù)交換的角色,因此,顯示成 何種樣式并不重要,但是在 B2B環(huán)境下,單純的 XML 網(wǎng)頁是無法滿足客戶需求的。由于 XML 的文件標記可以由制作 XML 文件的用戶制定,因此,瀏覽器無法事先對所有可能的標記定義其顯示格式 。為了解決這個問題,使 XML 也可以適用于 WWW 環(huán)境, XML 采用了排版樣式表的輔助方式來顯示 XML 數(shù)據(jù)。 通過排版樣式表的協(xié)助, XML 網(wǎng)頁也可以多彩多姿。排版樣式表分為兩種 : CSS (Cascading Style Sheet)與 XSL(eXtensible Stylesheet Language)。其中 XSL 是專為 XML設計的排版樣 式表 , 而 CSS 主要還是被 HTML 采用作為輔助顯示的方式。除此之外,XSL 還可以用作將 XML 源文件轉(zhuǎn)換成另一個 XML 文件的工具。 XML 數(shù)據(jù)轉(zhuǎn)儲的實現(xiàn) 目前,多數(shù)企業(yè)的業(yè)務數(shù)據(jù)都存儲在關系數(shù)據(jù)庫中,而 XML已經(jīng)逐步成為 Inter上數(shù)據(jù)交換和數(shù)據(jù)表示的標準,因此,有必要將企業(yè)內(nèi)部的業(yè)務數(shù)據(jù)轉(zhuǎn)換成 XML文檔的形式進行發(fā)布;同時,企業(yè)又需要將外部的 XML數(shù)據(jù)轉(zhuǎn)換成關系數(shù)據(jù)的形式,然后將之存儲在內(nèi)部的關系數(shù)據(jù)庫中,以便于日后的維護和查詢。 XML與關系數(shù)據(jù)相互轉(zhuǎn)換系統(tǒng)作為企業(yè)應用中的一個中間處理單元,可 以很好地解決上述的兩個問題。它負責橋接企業(yè)內(nèi)部