曝光臺(tái) 注意防騙
網(wǎng)曝天貓店富美金盛家居專(zhuān)營(yíng)店坑蒙拐騙欺詐消費(fèi)者
d a t e t i m e . t z d a t e t i m e,帶有可選的時(shí)區(qū)
f i x e d . 1 4 . 4 數(shù)字類(lèi)型,小數(shù)點(diǎn)前不超過(guò)1 4位,后面不超過(guò)4位
f l o a t 實(shí)數(shù),帶有可選的符號(hào)、小數(shù)位和指數(shù)
i n t 整數(shù)
n u m b e r 通用數(shù)字類(lèi)型,在位數(shù)上沒(méi)有限制;可能帶有可選的符號(hào)、小數(shù)位和指數(shù)
t i m e ISO 8601格式的時(shí)間組
t i m e . t z 同Ti m e,帶有時(shí)區(qū)
i 1 1字節(jié)有符號(hào)整數(shù)
i 2 2字節(jié)有符號(hào)整數(shù)
i 4 4字節(jié)有符號(hào)整數(shù)
r 4 4字節(jié)有符號(hào)實(shí)數(shù)
r 8 8字節(jié)有符號(hào)實(shí)數(shù)
u i 1 1字節(jié)無(wú)符號(hào)整數(shù)
u i 2 2字節(jié)無(wú)符號(hào)整數(shù)
u i 4 4字節(jié)無(wú)符號(hào)整數(shù)
u r i U R I字符串
u u i d 1 6位表示字節(jié)并組成一個(gè)C O M類(lèi)型的U U I D;連字號(hào)可選,如果有就忽略
第7章命名空間和模式使用227 下載
在Windows 2000之前的解析器版本,上面表格里描述的派生數(shù)據(jù)類(lèi)型被限制用于格式正規(guī)
的XML文檔。這些版本的XML-DR模式不支持驗(yàn)證。
7.7.1 MSXML對(duì)命名空間和模式的支持
M S X M L具有命名空間和簡(jiǎn)化的XML Data 模式預(yù)覽的功能。你必須使用M i c r o s o f t的基于
C O M的X M L解析器—M S X M L,它與Internet Explorer 5.0 搭載或者如果你想在代碼里支持
X M L - D R,可以從他們的站點(diǎn)下載。這里反復(fù)強(qiáng)調(diào)X M L - D R是M i c r o s o f t的技術(shù)預(yù)覽,而不是
W 3 C的成就。它嚴(yán)格地被M i c r o s o f t所有并只由它提供支持。在早期對(duì)模式做很多支持嘗試的同
時(shí),M S X M L的X M L - D R支持潛在地對(duì)于那些想要加入到X M L元數(shù)據(jù)前線的程序員來(lái)說(shuō)非常有
用。
MSXML通過(guò)XML DOM擴(kuò)展支持XML-DR和命名空間。
早期I B M的X M L 4 J解析器的嘗試版本(E A 2)部分支持1 9 9 9年9月的X M L模式草案。I B M
指出這種支持今后可能在解析器的發(fā)行版里出現(xiàn)。鑒于目前XML 模式的變化形式,提供
正在運(yùn)行的例子確實(shí)非常困難,當(dāng)你讀完這本書(shū)時(shí)會(huì)明白這一點(diǎn)。
1. 命名空間
M S X M L里對(duì)命名空間的支持是非常強(qiáng)大的。當(dāng)訪問(wèn)D O M里一個(gè)已經(jīng)被命名空間驗(yàn)證過(guò)的
結(jié)點(diǎn)時(shí),你能使用b a s e n a m e或者p r e f i x以及命名空間U R I屬性去獲得與命名空間相關(guān)的信息(參
見(jiàn)表7 - 1 2)。
表7 - 1 2
屬性含義
b a s e n a m e 返回字符串,它的值是未經(jīng)驗(yàn)證的結(jié)點(diǎn)基本名
p r e f i x 返回字符串,帶著命名空間前綴
namespace URI 返回字符串,帶著命名空間的U R I,與結(jié)點(diǎn)的命名空間前綴一致
這里有兩種對(duì)于程序員有吸引力的辦法處理命名空間。如果你想要使用擴(kuò)展了的M i c r o s o f t
XML DOM創(chuàng)建一個(gè)經(jīng)命名空間驗(yàn)證過(guò)的結(jié)點(diǎn),不能使用c r e a t e E l e m e n t ( )去直接創(chuàng)建。相反,必
須用文檔對(duì)象的c r e a t e N o d e ( )方法。它用枚舉的數(shù)值去指明創(chuàng)建的結(jié)點(diǎn)類(lèi)型,驗(yàn)證了的名稱(chēng)以及
相關(guān)的U R I:
另外,你能通過(guò)使用后續(xù)設(shè)置了x m l n s屬性的c r e a t e E l e m e n t ( )創(chuàng)建一個(gè)缺省的命名空間:
但是應(yīng)注意到,在后面的情況,失去了用命名空間驗(yàn)證其他名稱(chēng)的能力。
上面的J a v a S c r i p t程序行用驗(yàn)證過(guò)的名稱(chēng)< p u b : B o o k >在m y s c h e m a s - p u b命名空間里創(chuàng)建了一
個(gè)元素。表7 - 1 3中有部分結(jié)點(diǎn)類(lèi)型枚舉的列表,它們被M S X M L支持,是對(duì)命名空間的興趣所
在。
228使用XML 高級(jí)編程
下載
表7 - 1 3
枚舉值
N O D E _ E L E M E N T 1
N O D E _ AT T R I B U T E 2
N O D E _ E N T I T Y _ R E F E R E N C E 5
N O D E _ E N T I T Y 6
N O D E _ N O TAT I O N 1 2
一個(gè)結(jié)點(diǎn)的a t t r i b u t e集合支持g e t Q u a l i f i e d I t e m ( )方法,允許你根據(jù)屬性驗(yàn)證過(guò)的名字進(jìn)行搜
索。這種方法接收所需要屬性的基本名稱(chēng)和前綴,如果屬性被發(fā)現(xiàn)則返回一個(gè)結(jié)點(diǎn)對(duì)象。為了
找到一個(gè)屬性p u b : i s b n,將要進(jìn)行如下調(diào)用:
2. 驗(yàn)證
像任何其他的解析器一樣, M S X M L將要驗(yàn)證一個(gè)D T D文檔。并且如果一個(gè)模式由前綴x -
s c h e m a來(lái)提供,M S X M L假定接在冒號(hào)后面的名稱(chēng)是一個(gè)X M L - D R類(lèi)型的模式并且要試著將它裝
入并用它驗(yàn)證文檔。
如果你驗(yàn)證了你的XML-DR 模式文檔,就有機(jī)會(huì)獲得權(quán)利使用模式結(jié)點(diǎn),它在你的文檔里
定義了特殊的結(jié)點(diǎn)。這些由d e f i n i t i o n屬性完成。如果調(diào)用了對(duì)應(yīng)于一個(gè)元素或?qū)傩缘慕Y(jié)點(diǎn),你
將得到一個(gè)包含可應(yīng)用的< E l e m e n t Ty p e >或< A t t r i b u t e Ty p e >元素的結(jié)點(diǎn):
7.7.2 數(shù)據(jù)類(lèi)型
M S X M L里的數(shù)據(jù)類(lèi)型支持對(duì)X M L - D R預(yù)覽是獨(dú)立的但又是補(bǔ)充。即便你不用模式,也能在
格式正規(guī)的X M L里使用強(qiáng)行分類(lèi)的元素和屬性。為了做到這一點(diǎn),必須在你的文檔里聲明
M i c r o s o f t數(shù)據(jù)類(lèi)型命名空間:
<MyRootElement xmlns:dt="urn:schemas-microsoft-com:datatypes">
一旦做了這些,你能在結(jié)點(diǎn)里使用支持的類(lèi)型。可以預(yù)先使用n o d e Va l u e ( )去得到一個(gè)元素
或?qū)傩缘闹档牡胤剑苷{(diào)用n o d e Ty p e d Va l u e ( )去獲得強(qiáng)行分類(lèi)的值。假想你有一些包含元素的
X M L:
你可以用J a v a S c r i p t接下來(lái)實(shí)現(xiàn)下面的內(nèi)容:
如果有兩個(gè)結(jié)點(diǎn)< n o d e 1 >和< n o d e 2 >,代表來(lái)自?xún)蓚(gè)不同文檔的< P a g e C o u n t >元素,你能夠
像下面那樣得到整個(gè)頁(yè)數(shù):
第7章命名空間和模式使用229 下載
屬性n o d e Ty p e S t r i n g返回一個(gè)固定字符串,表示數(shù)據(jù)類(lèi)型。例如我們的< P a g e C o u n t >,這個(gè)
屬性應(yīng)該返回“i n t”。
7.8 圖書(shū)目錄中的變化
目前為止,我希望你能渴望應(yīng)用命名空間和模式信息到本書(shū)目錄的實(shí)例里。盡管我們不愿
在本書(shū)剩下的篇幅里繼續(xù)這個(gè)模式,但我還是打算去演示怎樣使用我在這一章里表示過(guò)的內(nèi)容
來(lái)改進(jìn)我們對(duì)本書(shū)出版信息的理解和組織。
中國(guó)航空網(wǎng) www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級(jí)編程上(83)