曝光臺(tái) 注意防騙
網(wǎng)曝天貓店富美金盛家居專營(yíng)店坑蒙拐騙欺詐消費(fèi)者
是它沒有義務(wù)將D T D展示給執(zhí)行調(diào)用的應(yīng)用程序。如果我們僅僅希望解析器利用D T D驗(yàn)證文檔
的有效性,那么解析器的該特征不會(huì)對(duì)我們構(gòu)成任何影響。然而,如果我們希望查看D T D,就
需要能夠展示D T D內(nèi)容的定制的解析器。假設(shè)我需要了解C a t a l o g元素的內(nèi)容模型。為了編寫能
夠根據(jù)D T D動(dòng)態(tài)創(chuàng)建模板文檔且允許作者填入空白的通用工具,這一功能是非常必要的。我們
還可以利用該功能告知文檔的作者,當(dāng)他面對(duì)文檔中無效的標(biāo)記時(shí)有哪些可選的修改方案。我
們?cè)?jīng)希望能夠動(dòng)態(tài)創(chuàng)建D T D,即:根據(jù)某些運(yùn)行時(shí)的情況修改內(nèi)容,但是如果沒有能夠讀寫
D T D的特殊A P I,我們只能望洋興嘆。就目前的XML 1.0解析器而言, D T D是只讀的。實(shí)際上,
這方面的需求的確在不斷增長(zhǎng)。在不久的將來,我們希望看到能夠自動(dòng)發(fā)現(xiàn)D T D的內(nèi)容(或者
通用的有效性模式)并可對(duì)之進(jìn)行修改的自動(dòng)化工具。
我們已經(jīng)看到了有關(guān)D T D語法的實(shí)例。由于D T D元組聲明的缺陷, R e c S u b j C a t e g o r i e s元素
的內(nèi)容模型不得不重復(fù)三次C a t e g o r y元素。我們?cè)?jīng)在本章的前面看到一些非常復(fù)雜的內(nèi)容模式,
但是它們需要依靠設(shè)計(jì)者的智慧。許多情況下,之所以采用復(fù)雜的內(nèi)容模型,完全是為了擺脫
78使用XML 高級(jí)編程
下載
D T D元組工具的限制。在圖書目錄例子中,通過p u b D a t e和p a g e C o u n t屬性,我們發(fā)現(xiàn)D T D需要
更加強(qiáng)大的屬性數(shù)據(jù)類型定義機(jī)制。P r i c e元素本身本應(yīng)該使用更強(qiáng)的數(shù)據(jù)類型定義。如果我們
的應(yīng)用程序需要對(duì)來自X M L文檔的數(shù)據(jù)進(jìn)行操作,而不是單純的顯示,這方面的機(jī)制是至關(guān)重
要的。D T D在某些表示方面確實(shí)有待改進(jìn)。
3.6 小結(jié)
文檔類型定義為前一章介紹的格式正規(guī)的X M L提供了嚴(yán)格而精確的規(guī)則。通過幾個(gè)簡(jiǎn)單的
標(biāo)記聲明,我們能夠定義X M L文檔的結(jié)構(gòu)以及它所允許使用的內(nèi)容。D T D為X M L應(yīng)用程序提供
了以下三項(xiàng)功能:
• 精確的商業(yè)問題模型的文檔。
• 模型與X M L解析器之間的標(biāo)準(zhǔn)通信方式。
• 驗(yàn)證有效性的解析器能夠檢測(cè)X M L文檔中的錯(cuò)誤。
第一點(diǎn)意味著我們將D T D作為分析和設(shè)計(jì)工具。你需要依靠D T D驗(yàn)證X M L的有效性,D T D
迫使設(shè)計(jì)者提供有關(guān)X M L詞匯表的精確信息。X M L應(yīng)用程序之間的通信是以它對(duì)詞匯表的理解
為基礎(chǔ)的,因此D T D向程序員和測(cè)試者指出應(yīng)用程序能夠描述的內(nèi)容。
內(nèi)部和外部D T D為應(yīng)用程序提供了獲取模型的標(biāo)準(zhǔn)方法。如果應(yīng)用程序要求執(zhí)行有效性驗(yàn)
證,解析器將尋找內(nèi)部聲明子集或者請(qǐng)求獲取外部D T D。
驗(yàn)證有效性的X M L解析器可以看作是一種非常便利的錯(cuò)誤檢測(cè)機(jī)制。它能夠發(fā)現(xiàn)基于X M L
的應(yīng)用程序中的結(jié)構(gòu)和內(nèi)容錯(cuò)誤,為進(jìn)一步的邏輯檢查掃清了障礙。為此,你應(yīng)該盡可能保證
D T D中的聲明詳細(xì)而準(zhǔn)確。你在D T D上花費(fèi)的心血越多,應(yīng)用程序出現(xiàn)錯(cuò)誤的幾率就越小。
第3章文檔類型定義使用79 下載
下載
第4章數(shù)據(jù)建模與XML
X M L應(yīng)用程序的成功與否取決于你真正使用的X M L文檔的設(shè)計(jì)的優(yōu)劣:這些文檔不僅要攜
帶目前人們進(jìn)行交流所需的信息,而且要足夠靈活以適應(yīng)未來的需要。本章介紹了在你設(shè)計(jì)
X M L文檔時(shí)需要考慮的若干因素。
我們將從以下三方面討論設(shè)計(jì)過程:
• 信息建模—理解文檔所攜帶的信息的結(jié)構(gòu)和含義。
• 文檔設(shè)計(jì)—將你的信息模型轉(zhuǎn)換為一組規(guī)則(或模式),以便創(chuàng)建真正的文檔。
• 模式表示法—一種記錄你的文檔設(shè)計(jì)的技術(shù),它使得文檔設(shè)計(jì)能夠被處理軟件和人類用
戶所理解。
4.1 信息建模
當(dāng)我們?cè)谇耙徽陆榻B圖書目錄問題時(shí),曾經(jīng)進(jìn)行了一些簡(jiǎn)單的信息建模工作。在本章,我
們將詳細(xì)地討論建模,并通過一些實(shí)際的例子說明它在設(shè)計(jì)基于X M L的信息系統(tǒng)中的作用。
信息建模的第一條規(guī)則是將精力集中于“現(xiàn)實(shí)世界”,而不是技術(shù)。信息模型是對(duì)一個(gè)組織
機(jī)構(gòu)中所用到的信息的描述,它獨(dú)立于任何I T系統(tǒng)。
• 如何將它結(jié)構(gòu)化?
• 它有什么含義?
• 誰“擁有”它,誰負(fù)責(zé)保證它的時(shí)效性和質(zhì)量?
• 它來自何方,最終會(huì)產(chǎn)生什么樣的結(jié)果?
因此根據(jù)定義,對(duì)于信息建模的討論不能過度針對(duì)于X M L。在本章稍后,我們將專門闡述
有關(guān)X M L的問題。
那么,在本書中有必要討論建模嗎?當(dāng)然,因?yàn)槿绻銋⒓优cX M L有關(guān)的項(xiàng)目,理解信息
建模是非常關(guān)鍵的。另外,雖然信息建模是獨(dú)立于技術(shù)的,但是在介紹關(guān)系數(shù)據(jù)庫設(shè)計(jì)的書中
常常會(huì)討論建模問題,而且某些方面的論述往往有些偏頗。在這本專門介紹X M L的書中,我們
能夠從另一個(gè)角度或許是更加全面的角度看待這個(gè)問題。
信息建模為什么如此重要?因?yàn)槿绻麤]有模型,就談不上信息,有的只是數(shù)據(jù)。信息模型
定義了數(shù)據(jù)的含義。事實(shí)上,信息模型是必不可少的;唯一可以選擇的是采用大家一致同意的
共享信息模型,還是冒險(xiǎn)允許每個(gè)人根據(jù)自己的想法采用不同的信息模型(它不可避免地會(huì)造
成相互之間的誤解)。如果使用共享信息模型,將帶來無窮的機(jī)會(huì)。來自M i c r o s o f t的A d a m
B o s w o r t h、Andrew Layman和Michael Ry s在一篇文章(h t t p : / / b i z t a l k . o rg/Resources/ canonical.asp)
中曾有以下敘述:
⋯⋯我們?cè)缫验_始著手實(shí)現(xiàn)一個(gè)曾經(jīng)夢(mèng)寐以求的目標(biāo):無論數(shù)據(jù)產(chǎn)生者位于何處,任何
數(shù)據(jù)消費(fèi)者都能夠通過某種工具與他們交互,并且這種通信是基于數(shù)據(jù)的含義,而不是
數(shù)據(jù)偶然的表現(xiàn)形式。
在本書中,我們將側(cè)重于通用的原則,而非某些特殊的形式。如果你希望了解建模的方法,
例如:U M L(Unified Modeling Language,統(tǒng)一建模語言),有大量這方面的書籍可以參考,另
外,h t t p : / / w w w. r a t i o n a l . c o m /上也提供了完整的規(guī)范。在信息建模中,以下兩個(gè)目標(biāo)常常會(huì)產(chǎn)生
沖突:
• 獲得絕對(duì)精確的定義。
中國(guó)航空網(wǎng) m.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級(jí)編程上(33)