曝光臺 注意防騙
網(wǎng)曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
構(gòu)造一個對象樹而提供文檔的一個視圖。文檔的主要組件結(jié)構(gòu)是對象樹中的節(jié)點,訪問對象樹
并處理它是通過使用D O M接口瀏覽解析樹實現(xiàn)的第5章將介紹D O M對象模型,并講解如何使用
D O M接口進行處理X M L文檔的編碼工作。
1.6.5 XML 簡單API
在使用X M L文檔時,另一個重要的A P I是X M L簡單A P I(Simple API for XML,S A X)。與
D O M不同,S A X并非是一個標(biāo)準(zhǔn)組織的產(chǎn)品。它是早期X M L開發(fā)過程中,許多X M L開發(fā)者為了
尋求一種有效的A P I而創(chuàng)造出來的產(chǎn)品。S A X至今依然流行的原因是因為它通過另一種途徑來訪
問X M L文檔。S A X并不把應(yīng)用程序的注意力集中在整個文檔的樹狀圖上,而是在解析時提供事
件驅(qū)動。事件的內(nèi)容往往是這樣的形式,“這里是一個起始標(biāo)記;這里有一些元素內(nèi)容;這里是
一個結(jié)束標(biāo)記”,等等。兼容S A X的解析器并不保留文檔;而是在使用它的程序處理文檔的每個
部分時發(fā)出通知。對一個事件所做出的反映取決于使用解析器的程序。一個程序?qū)ξ臋n狀態(tài)的
維護要承當(dāng)全部責(zé)任。這樣就可以根據(jù)需要來維持適量的信息以滿足激活應(yīng)用程序的需要。
我們可以想象,這樣一來,解析器會相當(dāng)短小精悍,對系統(tǒng)資源要求甚少。對于處理大的
X M L文檔來說會非常理想。如果你面對的是一個由各部分目錄組成的1 6 M大小的X M L文檔,肯
定不希望將它們都讀入到內(nèi)存中。雖然目前D O M是最常見的X M L的A P I,但找到S A X解析器也
不困難。第6章我們會了解S A X是什么,如何使用,以及何時使用。你看到的將是對如何使用兼
容S A X的解析器處理X M L文檔的精彩介紹。
1.6.6 命名空間和模式
我們真誠地希望,隨著大家越來越多地了解到X M L和它給應(yīng)用程序帶來的好處之后,能夠
14使用XML 高級編程
下載
編制出更加巧妙的文檔和詞匯表。你也可能想在結(jié)構(gòu)的自動檢測方面了解更多的信息。
如果你嘗試過用D T D來完成這項工作,會遇到一些障礙。解決的辦法就是X M L的模式
(S c h e m a)和命名空間(N a m e s p a c e),針對它們的開發(fā)工作早已經(jīng)開始。
隨著X M L的發(fā)展,正在開發(fā)的X M L詞匯表已經(jīng)越來越多。其結(jié)果之一,就是開發(fā)者開始遇
到來自別的開發(fā)者的、對于解決自身問題大有好處的詞匯表。這類詞匯表不能滿足所有需要,
但它們確實能夠極大地簡化開發(fā)新詞匯表的工作。當(dāng)你正在開發(fā)一項解決常見問題的新應(yīng)用時,
如果有人已經(jīng)考慮過這個問題并編制了一個X M L詞匯表可是個不錯的消息。如果你不需要它所
有的部分,可以借用其中的內(nèi)容重新編制一個。即使孤立無援,你也會希望分階段、有步驟地
完成;將一個大的問題分解為若干小的問題會有利于它的解決。
X M L的研究者意識到了這一問題并設(shè)計出命名空間作為解決辦法。命名空間是文檔設(shè)計者
們希望利用的名稱的資源。通過它們的屬性,你可以利用其他資源并毫不猶豫地采納其中的部
分內(nèi)容。如果你應(yīng)付的是一個大難題,可以編寫一系列詞匯表,其中的每一個只涉及整個問題
的一小部分,然后使用命名空間將各類X M L詞匯表混合起來。
這樣做的問題之一是D T D—XML 1.0中指定詞匯表的辦法—不允許你使用命名空間。我
們在第7章會講到, D T D還有其他問題。現(xiàn)有的解決方案是模式,使用X M L語法的替代品。這一
章會解釋幾種采用模式的途徑,并使用本書的目錄舉例來說明它的好處。第3章開發(fā)的D T D將被
轉(zhuǎn)化為模式的形式。你會看到一些與D T D相比,模式的過人之處。最后,當(dāng)我們創(chuàng)建一個使用
基于瀏覽器的腳本代碼的索引程序時,你會全面了解如何編制模式的代碼。
1.6.7 鏈接和查詢
H T M L定義的特征之一就是鏈接。在這種標(biāo)記語言當(dāng)中,它可能是最受歡迎的一個部分。在
使用時,關(guān)系型數(shù)據(jù)庫會形成一個鏈接自身的表單,使用外鍵獲取另一個表的數(shù)據(jù)。任何技術(shù)
如果要應(yīng)用到穩(wěn)定的數(shù)據(jù)庫中,就必須具備某種與數(shù)據(jù)主體鏈接的能力。X M L也不例外。許多
開發(fā)者希望把一個X M L文檔與另一個鏈接起來,或者將非X M L的內(nèi)容與X M L文檔鏈接起來。如
果在X M L中有鏈接的話,圖像和二進制數(shù)據(jù)就能夠和X M L文檔配合起來使用。所以,鏈接是
X M L研究者們投入極大精力的一個重要領(lǐng)域。W 3 C正在制定相關(guān)的幾項計劃,其中比較吸引人
的是X L i n k和X P o i n t。第8章將向你介紹這些計劃。你會學(xué)習(xí)如何在自己的應(yīng)用程序中使用X M L
鏈接。由于對X M L解析器中的鏈接來說沒有標(biāo)準(zhǔn)支持,所以你看到的是可能實現(xiàn)的鏈接的常見
形式。
X M L研究者們感興趣的另一個領(lǐng)域是查詢。我們必須由某種途徑能夠把一些規(guī)則傳遞給
X M L解析器,然后得到符合這些規(guī)則的文檔片斷集合。有了這種能力,大的X M L文檔就成為了
某種類型的數(shù)據(jù)庫。除了有類似于數(shù)據(jù)庫查詢的特征以外, X M L的查詢也是轉(zhuǎn)換操作的中心,
操作和改變X M L的關(guān)鍵模式。第8章將從為X M L提出的主要計劃中提煉出X M L查詢的語法知識。
1.6.8 轉(zhuǎn)換XML
轉(zhuǎn)換( t r a n s f o r m a t i o n)是一項非常強大的X M L技術(shù)。通過轉(zhuǎn)換,編程者可以根據(jù)應(yīng)用在第
一個文檔中的一套規(guī)則將這個文檔轉(zhuǎn)換成另一種形式的文檔。X M L轉(zhuǎn)換用于在類似的X M L詞匯
第1章XML 簡介使用15 下載
表之間進行轉(zhuǎn)換,以及把X M L文檔轉(zhuǎn)換為其他基于文本的文件格式,比如以逗號分隔值的文本
文件。對于We b開發(fā)者來說,這是一個非常重要的工具。如果要合并現(xiàn)有的資源,你需要執(zhí)行一
些有效的轉(zhuǎn)換以得到統(tǒng)一的格式。如果你在同若干伙伴進行合作,比如B 2 B運作,就肯定需要將
文檔從一種格式轉(zhuǎn)換到另一種格式。第9章將告訴你如何做到這一點。轉(zhuǎn)換的有趣在于映射規(guī)則
是在一個獨立的文檔而不是代碼中指定。如果你需要動態(tài)地在一系列相關(guān)格式之間進行轉(zhuǎn)化,
可以開發(fā)一系列的規(guī)則文檔。在運行的時候,你在決定使用哪一個轉(zhuǎn)換,然后將正確的規(guī)則應(yīng)
用到手頭的文檔上。對于B 2 B模式和供應(yīng)鏈應(yīng)用來說,這項功能特別有用。
一種被稱作可擴展樣式語言( Extensible Style Language,X S L)的用于X M L的樣式語言中
中國航空網(wǎng) www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級編程上(7)