曝光臺 注意防騙
網(wǎng)曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
1. DOM Level 1
W3C DOM Level 1文檔處于建議的狀態(tài)。這意味著W 3 C已經(jīng)審閱過它,接受了成員對它的
注釋,并且經(jīng)過修訂,正在將它提升為W W W的標準。h t t p : / / w w w. w 3 . o rg / T R / R E C - D O M - L e v e l -
1 /提供了建議的完整文本。
Level 1文檔包含兩個主要部分。第一部分,文檔對象模型(核心) Level 1定義了用于訪問
任何結構化文檔的接口,以及用于訪問X M L文檔的特殊擴展。文檔的第二部分描述了D O M針對
H T M L的擴展,它超出了本書的討論范圍。
D O M規(guī)范通過定義數(shù)據(jù)類型D O M S t r i n g描述了D O M如何操作字符串。該數(shù)據(jù)類型定義為雙
字節(jié)字符集,采用U T F - 1 6編碼機制進行編碼。對于特定的實現(xiàn),接口通常被綁定到也采用U T F -
1 6編碼的系統(tǒng)數(shù)據(jù)類型,例如: J a v a的S t r i n g類型。
下面讓我們來看看構成DOM Level 1規(guī)范的對象、方法和屬性。需要注意的是,其中描述的
行為僅僅適用于X M L文檔;當用于訪問H T M L文檔時,D O M將有不同的行為。
圖5 - 4顯示了構成D O M的對象類層次:
圖5-4
第5章文檔對象模型使用115 下載
附錄B提供了D O M對象的完整文檔。
2. DOM Level 2
在編寫本書時, W3C DOM Level 2規(guī)范正處于候選建議的狀態(tài)。這意味著直接負責該規(guī)范
的技術團體已經(jīng)對它進行了重要的審閱,現(xiàn)在它需要的是真正的實現(xiàn),以及來自W 3 C之外各方
面的技術反饋。Level 2規(guī)范不僅包含上述所有對象,而且新增了以下特征:
• 支持命名空間—正如我們將在第7章中看到的,命名空間用于區(qū)分X M L中具有相同名稱
的離散數(shù)據(jù)元素。它們通常提供返回原始的X M L結構文件的鏈接,該文件包含某種格式的
元素信息。DOM Level 2將提供查詢和修改文檔命名空間的機制。
• 樣式表—DOM Level 2包含樣式表的對象模型,以及用于查詢和操作特定文檔的樣式表
的方法。
• 過濾—DOM Level 2新增了用于過濾X M L文檔內(nèi)容的方法。
• 事件模型—DOM Level 2計劃提供X M L的事件模型。
• 范圍(R a n g e)—DOM Level 2包含用于操作大塊文本的函數(shù),它有助于在X M L中處理
傳統(tǒng)的文檔。
h t t p : / / w w w. w 3 . o rg / T R / D O M - L e v e l - 2 /提供了DOM Level 2規(guī)范的W 3 C候選建議的完整文本。
3. 理解I D L和綁定
閱讀D O M規(guī)范時,許多開發(fā)人員有可能對接口定義的方式感到陌生。記住, W 3 C將D O M定
位為獨立于平臺的,即: W 3 C指定了特定系統(tǒng)的實現(xiàn)需要提供哪些方法和屬性,但沒有詳細說
明如何獲得這些實現(xiàn)。為此, W 3 C選擇通過以下幾種方式表達與D O M的接口:通過OMG IDL
(它是CORBA 2.2規(guī)范的一部分),或者通過J a v a和E C M A S c r i p t相結合。當開發(fā)人員使用非W 3 C
規(guī)范的D O M實現(xiàn)應用程序時,應該參考隨類庫一起提供的特定實現(xiàn)的文檔。例如, M i c r o s o f t在
h t t p : / / m s d n . m i c r o s o f t . c o m / x m l / r e f e r e n c e / x m l d o m / s t a r t . a s p提供了他們實現(xiàn)的XML DOM的文檔。
5.1.4 現(xiàn)實世界中的DOM
到目前為止,我們已經(jīng)從純理論角度介紹了D O M—我們從W 3 C通用建議的角度討論了
D O M。下面,看看D O M在現(xiàn)實世界是如何實現(xiàn)的。
當前瀏覽器中的D O M
在編寫本書時,只有Internet Explorer 5內(nèi)置了D O M類庫,并且支持X S L。客戶端代碼可以
引用頁面中的數(shù)據(jù)島—內(nèi)嵌在H T M L文檔中的X M L 文檔— 通過文檔中數(shù)據(jù)島對象的
X M L D o c u m e n t屬性能夠獲得該引用,同時通過該引用能夠調用M i c r o s o f t類庫支持的所有功能。
這些類庫支持DOM Level 1規(guī)范定義的全部功能,另外,它提供的擴展函數(shù)能夠簡化X M L數(shù)據(jù)
訪問,并操作X S L樣式表。
N e t s c a p e尚未提供對D O M的內(nèi)置訪問(至少到4 . 7版為止是這種情況),但是如果你有一組
A c t i v e X或Java DOM類庫,就能夠在客戶端利用J a v a或J a v a S c r i p t對X M L文檔進行訪問和操作。
需要注意的是,在訪問X M L文檔之前,你的客戶端需要下載并安裝這些類庫。現(xiàn)在正在開發(fā)的
N e t s c a p e的下一版本將內(nèi)置對X M L和X S L的支持。
M i c r o s o f t實現(xiàn)的A c t i v e X和J a v a類庫形式的D O M可以從地址h t t p : / / m s d n . m i c r o s o f t . c o m /
116使用XML 高級編程
下載
d o w n l o a d s / t o o l s / x m l p a r s e r / x m l p a r s e r. a s p免費下載。
判斷瀏覽器類型
除非你能夠控制應用程序的目標瀏覽器(例如:你正在為公司開發(fā)I n t r a n e t應用程序,并且
公司要求使用Internet Explorer),否則保證代碼在各種瀏覽器上的通用性是至關重要的。為了實
現(xiàn)這一目標,同時不以犧牲程序的功能為代價,你的代碼應該在要執(zhí)行特定瀏覽器才具備的功
能之前查詢?yōu)g覽器的類型。
讓我們看下面的例子,它是用J a v a S c r i p t編寫的。你可以將這個代碼片段包含在你的We b站
點的缺省頁面中:
程序清單5 - 4
以上代碼通過檢查導航( n a v i g a t o r)對象的u s e r A g e n t屬性,判斷用于訪問頁面的瀏覽器的
類型。只有M i c r o s o f t的Internet Explorer 5.X在u s e r A g e n t屬性中內(nèi)置了字符串“ MSIE 5”。通過
檢查屬性中是否包含該字符串,腳本能夠確定所用的瀏覽器是否是Internet Explorer 5,并根據(jù)
判斷的結果進行適當?shù)闹囟ㄏ颉@纾撁鎑 e f a u l t i e . h t m(專用于IE 5瀏覽器)中可能包含要使
用IE 5客戶端XML DOM 特征的J S c r i p t代碼,而頁面d e f a u l t n s . h t m(專用于非IE 5瀏覽器)可能
依賴于服務器端的表單處理實現(xiàn)相同的目的。注意,隨著新版本的出現(xiàn),以上代碼可能要根據(jù)
各種瀏覽器客戶端傳遞的u s e r A g e n t字符串進行適當調整。
5.1.5 特殊的XML DOM實例—HTML DOM
中國航空網(wǎng) m.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級編程上(49)