曝光臺(tái) 注意防騙
網(wǎng)曝天貓店富美金盛家居專(zhuān)營(yíng)店坑蒙拐騙欺詐消費(fèi)者
的方法還有:在單詞之間使用下劃線(xiàn),使用c a m e l C a s e表示法(第二個(gè)單詞的首字母大寫(xiě)),
但是句點(diǎn)表示法對(duì)于處理程序來(lái)說(shuō)更有意義。
• 使用能說(shuō)明含義的名稱(chēng)作為元素名稱(chēng),用屬性表示數(shù)據(jù)類(lèi)型,例如: < B i l l i n g A d d r e s s
t y p e = " A d d r e s s " >。這意味著應(yīng)用程序仍然可以獲得數(shù)據(jù)類(lèi)型。實(shí)際上,由于每個(gè)
B i l l i n g A d d r e s s都是一個(gè)A d d r e s s,因此每個(gè)實(shí)例不必都包含t y p e屬性,你可以在D T D中定
義F I X E D的屬性值。然而,這種方法不能在D T D中自動(dòng)定義結(jié)構(gòu)化規(guī)則,說(shuō)明所有
第4章數(shù)據(jù)建模與XML使用99 下載
t y p e = " A d d r e s s "的元素符合相同的樣式。
• 采用完全相反的方法:使用數(shù)據(jù)類(lèi)型作為元素名稱(chēng),用屬性表示元素扮演的角色,例如:
<Address role="Billing">。從編寫(xiě)D T D的角度看,這種方法更好,雖然它仍然存在局限性:
現(xiàn)在,你的確能夠定義地址的規(guī)則,但是不能說(shuō)明每個(gè)客戶(hù)必須有一個(gè)帳單地址( B i l l i n g
A d d r e s s),而前一種方法能夠做到這一點(diǎn)。
• 使用嵌套的元素層:
從理論角度講,這可能是目前為止最好的方法:你能夠定義C u s t o m e r必須包含一個(gè)
B i l l i n g A d d r e s s,B i l l i n g A d d r e s s必須包含一個(gè)A d d r e s s(且不能含有其他元素),此處的A d d r e s s與
文檔中出現(xiàn)的其他A d d r e s s將遵循相同的規(guī)則。唯一的缺陷是,如果你對(duì)于模型中的每個(gè)特性都
嚴(yán)格應(yīng)用這個(gè)規(guī)則,結(jié)果將產(chǎn)生大量標(biāo)記。考慮到D T D的數(shù)據(jù)類(lèi)型驗(yàn)證功能是相當(dāng)有限的,因
此這種方法的前景也不太光明。
(6) 二進(jìn)制數(shù)據(jù)
并不是對(duì)象的所有屬性都能夠用字符串表示:多媒體數(shù)據(jù),特別是二進(jìn)制數(shù)據(jù)就是例外。
在X M L設(shè)計(jì)中,如何表示圖形等二進(jìn)制數(shù)據(jù)呢?
主要有兩種方法:二進(jìn)制對(duì)象可以是內(nèi)部的或者外部的。內(nèi)部的意味著它們表示為X M L數(shù)
據(jù)流的一部分,外部的意味著它們位于獨(dú)立的文件中。
對(duì)于內(nèi)部存儲(chǔ),大多數(shù)人使用B a s e 6 4編碼。這種編碼技術(shù)將每個(gè)二進(jìn)制數(shù)字序列編碼為一
個(gè)A S C I I字符。它非常適于X M L,因?yàn)锳 S C I I字符通常不會(huì)與在X M L中有特殊含義的標(biāo)記序列
(例如:“<”和“ ] ] >”)沖突。這意味著數(shù)據(jù)中不會(huì)偶然出現(xiàn)定界符。當(dāng)然,二進(jìn)制數(shù)據(jù)與
B a s e 6 4字符串之間的轉(zhuǎn)換工作應(yīng)該完全由應(yīng)用程序承擔(dān)。
對(duì)于外部存儲(chǔ),“純X M L”方式是使用外部未解析實(shí)體和表示法。例如,為了包含對(duì)圖形文
件p i c t u r e 1 . g i f的引用,你應(yīng)該編寫(xiě)如下D T D(通常在內(nèi)部子集中):
其中, g i f e d i t o r. e x e代表能夠處理這種采用特殊格式的數(shù)據(jù)的應(yīng)用程序的名稱(chēng)。實(shí)際上,除
非選擇的X M L工具集有其他定義,否則它就用于唯一地標(biāo)識(shí)一種格式。對(duì)未解析實(shí)體的引用是
作為E N T I T Y類(lèi)型的屬性的值出現(xiàn)的,因此D T D將包含以下聲明:
最后,在文檔中你希望圖形出現(xiàn)的位置,通過(guò)未解析實(shí)體引用調(diào)用它,例如:
需要注意的是,實(shí)體引用中不包含“ &”:解析器知道這是一個(gè)實(shí)體引用,因?yàn)樗呀?jīng)在
D T D的AT T L I S T聲明中進(jìn)行了適當(dāng)?shù)穆暶鳌?br />
100使用XML 高級(jí)編程
下載
最后,如果你認(rèn)為上述方式過(guò)于繁瑣,可以仿照H T M L使用U R L鏈接:
對(duì)于X M L解析器來(lái)說(shuō),這僅僅是一個(gè)普通的C D ATA屬性,但是在應(yīng)用程序級(jí),你可以將它
解釋為指向G I F文件的U R L。
需要強(qiáng)調(diào)的是,在我們介紹的技術(shù)中,雖然只有一種技術(shù)(未解析實(shí)體和表示法)使用了
特殊的X M L機(jī)制處理二進(jìn)制數(shù)據(jù),但并不意味著這是唯一被認(rèn)可的方法:我們提到的其他技術(shù)
也同樣可行。
如果你的主要目標(biāo)是將X M L翻譯為H T M L,以便在瀏覽器中顯示,基于U R L鏈接的方法到
目前為止是最簡(jiǎn)單的。如果你在應(yīng)用程序之間暫時(shí)性地傳送數(shù)據(jù),使用基于B a s e 6 4編碼的內(nèi)部
對(duì)象可能是最有效的,因?yàn)樗軌虮苊馀c交叉引用的完整性相關(guān)的所有問(wèn)題,例如:鏈接對(duì)象
更新后怎么辦。
當(dāng)X L i n k被標(biāo)準(zhǔn)化和實(shí)現(xiàn)之后,就有可能在X M L中嵌入某些二進(jìn)制數(shù)據(jù),例如:圖形,它
將出現(xiàn)在源文檔中。我們將在第8章討論XLink。
5. 使用X M L實(shí)體
在對(duì)如何將信息模型轉(zhuǎn)化為X M L設(shè)計(jì)的討論中,我們一直未說(shuō)明如何使用X M L實(shí)體。
實(shí)際上,這沒(méi)什么值得驚訝的,因?yàn)樵赬 M L中實(shí)體被認(rèn)為是物理文檔結(jié)構(gòu)的一部分,而不
屬于邏輯結(jié)構(gòu)。實(shí)體引用應(yīng)該被認(rèn)為實(shí)體被內(nèi)嵌在引用出現(xiàn)的位置。
然而,實(shí)體在邏輯上有一些用途。將文檔體中的部分內(nèi)容放入外部實(shí)體最主要的好處在于
它使得這部分能夠獨(dú)立于文檔的其余內(nèi)容而獨(dú)立更新。對(duì)于那些與文檔主體有著不同更新周期
或更新權(quán)限的文本或其他文檔部件,這種方式非常有價(jià)值。這種控制能力比由共享公共內(nèi)容而
產(chǎn)生的空間節(jié)省更加重要。對(duì)于一個(gè)復(fù)雜的D T D,如果它的各個(gè)部分分別由不同的人控制,這
種方法也同樣有效。
我們?cè)谟懻撔畔⒔r(shí)曾經(jīng)提到信息所有者和信息生存周期的問(wèn)題。在決定如何將文檔分
割為物理實(shí)體時(shí),或許應(yīng)該考慮信息模型的這些因素。
4.3 模式語(yǔ)言和表示法
在本章的最后一部分,我們將研究如何以書(shū)面形式或電子形式表示文檔的設(shè)計(jì),使得人類(lèi)
用戶(hù)和軟件都能夠訪(fǎng)問(wèn)它。我們將介紹兩種主要的模式表示法: D T D,以及各種X M L模式建議。
我們首先闡述一下我們的目標(biāo):我們希望獲得什么?
4.3.1 模式的作用
在數(shù)據(jù)庫(kù)和文檔領(lǐng)域,模式這一概念的提出已經(jīng)有許多年的歷史了—它或許是這兩個(gè)領(lǐng)
域少得可憐的幾個(gè)共同點(diǎn)之一!模式的正式作用是定義所有可能的有效的文檔集合;或者從反
面說(shuō),它的作用是定義約束,文檔除了遵循X M L規(guī)范之外,還必須滿(mǎn)足這些約束,才能被認(rèn)為
是有意義的。
在此,我們必須謹(jǐn)慎使用“有效性( v a l i d i t y)”一詞。在X M L標(biāo)準(zhǔn)中,“有效”意味著一些
中國(guó)航空網(wǎng) www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級(jí)編程上(43)