曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
夠讓解析器來規格化空白,這也是一項非常便利的特征,特別是對于用X S LT編寫的應用程
序。
108使用XML 高級編程
下載
就元素結構而言, D T D中的參數實體是一種表述許多不同元素的屬性或屬性集合共性的有
效工具。
4.3.3 XML模式建議
前一段時間, W 3 C已經意識到D T D的局限性,為了尋求解決方案,它花費了大量時間,部
分原因在于已經形成的幾個重要建議似乎都不能完全解決這個問題。其中頗具影響的一個建議
是M i c r o s o f t專有的X M L數據規范,We b站點h t t p : / / b i z t a l k . o rg / R e s o u r c e s / s c h e m a s g u i d e . a s p介紹了
這個規范。
X M L模式工作組在1 9 9 9年11月5日同時提出了兩個草案:
• 第一部分,結構(h t t p : / / w w w. w 3 . o rg / T R / x m l s c h e m a - 1)說明了如何控制和描述文檔的結構
化規則。
• 第二部分,數據類型( h t t p : / / w w w. w 3 . o rg / T R / x m l s c h e m a - 2)描述了內容項的數據類型的定
義。
這些建議尚未完成,許多部分都處在制定過程中,我們強烈建議你不要使用當前形式的規
范。然而,這些建議的確提出了一些將在最終規范中出現的概念,這些概念非常值得研究,即
使沒有X M L模式軟件,對于你這個文檔設計者來說,這些概念也是非常有價值的。
X M L模式中最基礎的概念是:模式是一個描述(和約束)一組X M L文檔實例的文檔。X M L
模式本身就是一個X M L文檔:這一點非常重要,因為這意味著X M L應用程序(例如: X S LT樣
式表)很容易查詢模式。S Q L程序員對這個概念并不陌生:它類似于在系統表中放置可以通過
S Q L訪問的S Q L模式。它還允許你利用僅供應用程序使用的信息修飾模式—例如,你可以給每
個元素類型添加相關的機密等級,并在應用程序中利用該信息決定應該向特定的用戶顯示哪些
信息。
目前處于草案狀態的X M L模式分為兩個規范。第一部分結構,側重于對元素結構的約束。
它介紹了原型( A r c h e t y p e)的概念,從本質上講,原型是個復合數據類型。元素類型可以聲明
為符合特定的原型,其中原型定義了所有的約束,例如:它能夠包含哪些子元素和屬性。將原
型定義與元素定義相分離的優勢在于幾個元素類型能夠使用相同的原型( B i l l i n g . A d d r e s s和
S e r v i c e . A d d r e s s可以都符合原型A d d r e s s)。它對應于D T D中參數實體的主要用法之一。
X M L模式工作組還打算提供一種機制,使得一個原型能夠精煉另一個原型,這是實現類型
層次所必需的。然而,在當前的草案中,滿足這種需求的語法尚未定義。
規范的第二部分討論了數據類型,它包含的基本數據類型有:字符串、數字、布爾值和日
期,除此之外,它還規定了如何通過組合或限制現有的數據類型或者通過枚舉值的方式定義新
的數據類型。這些數據類型可以用于約束屬性的值或元素的文本內容。內置的數據類型包括了
現代編程語言或S Q L中常見的類型,另外,它提供的用于定義最小值和最大值等約束的機制比
其他大多數語言更加強大。規范還保留了“遺留的” X M L數據類型,例如:N M TO K E N S。它將
數據類型的值的定義與X M L文檔中詞法的表示嚴格區分開,因此相同的值可能有多種不同的詞
法表示(例如:3,3 . 0和0 3 . 0 0)。與第一部分類似,數據類型的定義與使用該類型的元素和屬性
的定義是分離的,因此許多不同的元素和屬性可以共享相同的數據類型。
第4章數據建模與XML使用109 下載
就X M L模式目前的狀態而言,仍然有許多完整性約束是無法用模式表達的,必須由應用程
序來限制。例如,目前無法定義屬性之間的約束(逝世日期必須在出生日期之后),它只能定義
對直接子元素的約束(例如:“在字典條目中,詞目或詞目的至少一個變種必須有詞源”)。實際
上,有些有效性約束只能在應用程序級完成,正如關系數據庫中更加成熟的約束定義。
我們將在第7章詳細介紹X M L模式。
4.4 小結
在本章中,我們首先討論了一些基本的信息建模原則,它們是在X M L項目中經常用到的,
我們特別區分了靜態信息模型(理解現實世界中的事物和關系)和動態信息建模(理解在業務
過程中從A到B需要獲取哪些信息)的作用。這兩種模型都與X M L相關,將X M L文檔分為保存
靜態永久性數據和保存暫時性消息這兩種類型是非常意義的。
隨后,我們介紹了如何將概念化信息模型轉換為X M L文檔的設計。我們分析了一些必要的
設計決策:如何表示類型層次,使用元素或屬性,以及如何將二進制屬性編碼。
最后,我們討論了如何在XML DTD或模式中表達設計,這兩者都規定了正式的約束,以便
對文檔實例進行自動檢測,并將文檔的含義傳達給要創建文檔和處理信息內容的人。
110使用XML 高級編程
下載
下載
第5章文檔對象模型
現在,應該開始研究X M L文檔的結構,以及如何利用它描述層次化信息。下面,我們將說
明如何通過程序訪問X M L文檔。其中一種方法是通過文檔對象模型( Document Object Model,
D O M)。在本章中,我們將介紹文檔對象模型,并借助幾個程序實例解釋它的功能。
5.1 什么是文檔對象模型
文檔對象模型一詞在We b瀏覽器領域并不陌生。窗口、文檔和歷史等對象都被認為是瀏覽器
對象模型的一部分。然而,任何做過We b開發的人都知道各種瀏覽器實現這些對象的方式不盡相
同。對于如何通過We b訪問和操作文檔結構這個問題,為了創建更加標準化的方法, W 3 C提出
了目前的W3C DOM規范。
W3C DOM是一種獨立于語言和平臺的定義,即:它定義了構成D O M的不同對象的定義,
卻沒有提供特定的實現,實際上,它能夠用任何編程語言實現。例如,為了通過D O M訪問傳統
的數據存儲,可以將D O M實現為傳統數據訪問功能之外的一層包裝。利用D O M中的對象,開發
人員可以對文檔進行讀取、搜索、修改、添加和刪除等操作。D O M為文檔導航以及操作H T M L
中國航空網 www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級編程上(47)