曝光臺(tái) 注意防騙
網(wǎng)曝天貓店富美金盛家居專(zhuān)營(yíng)店坑蒙拐騙欺詐消費(fèi)者
下載
這時(shí),我想以不同的元素內(nèi)容重用屬性組。我已經(jīng)能夠在元素聲明里通過(guò)明確地描述內(nèi)容
模型做到這些。注意,我的內(nèi)容模型包含N u t和B o l t類(lèi)型的元素。我將必須在模式中別的地方聲
明這些類(lèi)型。
(8) 通配符
X M L模式提供a n y元素允許我們引進(jìn)一個(gè)通配符到一個(gè)模式的任何特殊點(diǎn)。模式提供了下面
四種中任意一種寫(xiě)模式方法開(kāi)始工作:
• 任何格式正規(guī)的X M L元素結(jié)構(gòu)
• 任何格式正規(guī)的元素結(jié)構(gòu),只要它在任何一個(gè)通配符不出現(xiàn)的命名空間
• 任何格式正規(guī)的元素結(jié)構(gòu),它是從一個(gè)明確的命名空間提供出來(lái)的
• 任何格式正規(guī)的元素結(jié)構(gòu),它是從一個(gè)當(dāng)前的命名空間提供出來(lái)的
通配符也可以用在與屬性的關(guān)聯(lián),在那里我們能使用a n y A t t r i b u t e元素。這是四種情況的每
一個(gè)例子:
程序清單7 - 2 6
注意, o t h e r和t a rg e t N a m e s p a c e關(guān)鍵字的使用方法。現(xiàn)在有一個(gè)在與元素聲明里的屬性建立
關(guān)聯(lián)里使用通配符的例子:
程序清單7 - 2 7
這里我們聲明了一個(gè)元素,它有一個(gè)單一子元素, < s o m e N u m >,并且可以有任意的在W 3 C
模式為XML 模式聲明的屬性。
2. 派生類(lèi)型定義
當(dāng)在類(lèi)型上使用源屬性時(shí),我們非常有效地從現(xiàn)有的類(lèi)型派生新的。XML 模式提供一些正
第7章命名空間和模式使用217 下載
式的規(guī)則用來(lái)類(lèi)型派生,我們現(xiàn)在就要檢查這些規(guī)則。特別是我們能擴(kuò)展一個(gè)類(lèi)型或限制它。
d e r i v e d B y屬性的值說(shuō)明了使用了哪種方法。
派生
當(dāng)一個(gè)新的類(lèi)型添加附加的內(nèi)容到它原來(lái)的類(lèi)型時(shí),它擴(kuò)展了另一個(gè)類(lèi)型。這種情況下,
所有在源類(lèi)型里聲明的內(nèi)容將會(huì)出現(xiàn)在派生的類(lèi)型里。例如,我們通過(guò)在現(xiàn)有內(nèi)容添加一個(gè)敬
語(yǔ)元素來(lái)擴(kuò)展了一個(gè)P e r s o n N a m e類(lèi)型聲明:
程序清單7 - 2 8
但如果我們想因?yàn)槟撤N原因限制一個(gè)類(lèi)型而派生一個(gè)新類(lèi)型時(shí),我們能給d e r i v e d B y屬性一
個(gè)限制值,并且添加< r e s t r i c t i o n s >元素:
程序清單7 - 2 9
在這里我們限制了類(lèi)型,于是< M I >元素不再出現(xiàn)。當(dāng)派生類(lèi)型時(shí),要確認(rèn)關(guān)于元素和屬性
的限制比起那些關(guān)于相同源類(lèi)型的聲明限制更加有限制性。
類(lèi)型可以控制從它們自己派生,以及通過(guò)使用三個(gè)屬性: a b s t r a c t , e x a c t和f i n a l控制它們?cè)?br />
實(shí)例文檔里出現(xiàn)。如果a b s t r a c t的值是t r u e,沒(méi)有聲明的類(lèi)型實(shí)例可以出現(xiàn)在實(shí)例文檔里。正
如希望的其暗含的缺省值是f a l s e。如果e x a c t的值是t r u e,在它那里沒(méi)有派生的類(lèi)型出現(xiàn)在實(shí)
例文檔里。只有被聲明過(guò)的類(lèi)型可被使用。如果f i n a l的值被賦成t r u e,今后不再允許類(lèi)型派
生。
3. 撰寫(xiě)
我們能將模式和命名空間聯(lián)合在一起允許使用者從多個(gè)模式建立文檔實(shí)例。模式也允許設(shè)
計(jì)者使用其他的模式建立他們自己的模式文檔。這在術(shù)語(yǔ)上稱(chēng)為撰寫(xiě)( C o m p o s i t i o n)。
(1) 引入
你能引入另一個(gè)模式的一部分用在提供了的其他模式的命名空間,< i m p o r t >元素涉及了這些。
這個(gè)元素?fù)碛忻臻g屬性,它的值是你想要使用的模式的U R I。你也可以提供一個(gè)模式
L o c a t i o n屬性去指向想要的模式文件。一旦你引入了一個(gè)命名空間,就能夠在你的模式里使用一
些從其他模式來(lái)得結(jié)構(gòu):
218使用XML 高級(jí)編程
下載
程序清單7 - 3 0
當(dāng)一個(gè)結(jié)構(gòu)被引入到一個(gè)模式里,它保留著外部的資源。我們正在有效地組建一個(gè)新的模
式,通過(guò)連入部分另一個(gè)模式而不是將它們整個(gè)包含進(jìn)新的模式。當(dāng)一個(gè)驗(yàn)證解析器按照模式
驗(yàn)證一個(gè)文檔時(shí),它必須重新得到其他模式去驗(yàn)證與外部資源不一致的文檔里的組成部分。
(2) 包含
< i n c l u d e >元素說(shuō)明了包含。它在一個(gè)模式里出現(xiàn)在< i m p o r t >元素之后,< e x p o r t >元素之前。
< i n c l u d e >元素和需要的屬性模式L o c a t i o n一起是個(gè)空的元素,它的值是一個(gè)指向包含模式的U R I。
當(dāng)這個(gè)元素出現(xiàn)在模式里時(shí),這個(gè)模式被理解成包含它聲明過(guò)的類(lèi)型,同時(shí)所有包含的模式里
聲明的類(lèi)型提供了幾個(gè)遇到的標(biāo)準(zhǔn): U R I必須融入另一個(gè)模式,而這樣設(shè)計(jì)的模式必須有一個(gè)
t a rg e t命名空間屬性并與包含模式的t a rg e t命名空間屬性值一致。
4. 注釋模式
沒(méi)有計(jì)算定義和代碼是不需要提供附加的注釋或處理信息的機(jī)制來(lái)完成的。模式為這個(gè)提
供了< a n n o t a t i o n >元素。這個(gè)元素可能包含由字符數(shù)據(jù)而不是人類(lèi)的假想構(gòu)成的< i n f o >元素,或
者為模式做同樣事情的< a p p i n f o >元素。無(wú)論哪個(gè)元素可能有一個(gè)i n f o S o u r c e屬性,它提供一個(gè)有
更多信息的U R I引用。
程序清單7 - 3 1
7.6.3 數(shù)據(jù)類(lèi)型
真實(shí)世界依賴(lài)于數(shù)字、字符串和集合概念,于是用現(xiàn)代程序語(yǔ)言寫(xiě)成的程序支持為了定義
新類(lèi)型而內(nèi)嵌類(lèi)型和過(guò)程的詳細(xì)體系。而且對(duì)于XML 模式附加的數(shù)據(jù)類(lèi)型對(duì)程序員為他們應(yīng)用
程序里的數(shù)據(jù)而使用X M L將是一筆很大的財(cái)產(chǎn)。這種對(duì)數(shù)據(jù)類(lèi)型的支持包含檢查文檔里數(shù)值的
有效性,以及在處理X M L文檔時(shí)幫助從文本到原始類(lèi)型的合適的轉(zhuǎn)換。于是如果我們打算用
X M L文檔作為集成程序和系統(tǒng)的基礎(chǔ),我們需要捕捉標(biāo)記的信息的數(shù)據(jù)類(lèi)型。
這就是XML 模式規(guī)范的第二部分—XML 模式:D a t a t y p e瞄準(zhǔn)要做的。它不僅提供了捕捉
基礎(chǔ)數(shù)據(jù)類(lèi)型的方法,同時(shí)給了我們一個(gè)記錄加在屬于我們問(wèn)題里的數(shù)據(jù)上的方法。它將讓我
們記錄數(shù)值范圍,設(shè)置和列出順序。它也將讓我們?yōu)閿?shù)據(jù)允許的字符串表示法指定掩碼。
第7章命名空間和模式使用219 下載
模式數(shù)據(jù)類(lèi)型被說(shuō)成擁有一套獨(dú)特的值, 稱(chēng)做它們的數(shù)值空間。這是類(lèi)型能夠具有數(shù)值的抽
象集合。例如,整數(shù)集是整數(shù)類(lèi)型的數(shù)值空間。限制這個(gè)空間里的數(shù)值的屬性和操作描述了這
個(gè)空間的特性。當(dāng)給用戶(hù)去表現(xiàn)一個(gè)數(shù)據(jù)類(lèi)型時(shí),需要一個(gè)詞匯表示—這個(gè)類(lèi)型的字面字符
中國(guó)航空網(wǎng) www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級(jí)編程上(79)