明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

XML 中的經(jīng)常見問題 (二)

[摘要]Internet Explorer 5.0 對 XML 提供哪個級別的支持? Internet Explorer 5 提供下列 XML 支持: 直接查看 XML.Microsoft XML 實現(xiàn)允許用戶通過他們的 Web 瀏覽器使用 XSL 或者層疊樣式表 (CSS) 查看 XML,...
Internet Explorer 5.0 對 XML 提供哪個級別的支持?

    Internet Explorer 5 提供下列 XML 支持:

    直接查看 XML.Microsoft XML 實現(xiàn)允許用戶通過他們的 Web 瀏覽器使用 XSL 或者層疊樣式表 (CSS) 查看 XML,就象查看 HTML 文檔一樣。

    高性能、驗證 XML 引擎。Internet Explorer 4.0 開發(fā)人員熟悉的 XML 引擎已經(jīng)得到了很大的增強,并且完全支持 W3C XML 1.0 和 XML 名稱空間,這樣開發(fā)人員就可以在 Web 上統(tǒng)一限定元素名稱,從而避免了相同名稱的元素之間的沖突。Windows 中的本機 XML 支持意味著,當開發(fā)人員在應(yīng)用程序和組件之間移動數(shù)據(jù)時,可以使用完整的 XML 處理功能來讀取和處理數(shù)據(jù)。

    可擴展樣式轉(zhuǎn)換語言 (XSLT) 支持。使用基于最新的 W3C Working Draft 的 Microsoft XSLT 處理器,開發(fā)人員可以對 XML 數(shù)據(jù)應(yīng)用樣式表,并以易于自定義的動態(tài)和靈活方式來顯示數(shù)據(jù)。Microsoft XSLT 處理器的查詢功能也允許開發(fā)人員用程序,在客戶機或服務(wù)器上,在 XML 數(shù)據(jù)集內(nèi)部查找和摘取信息。

    XML 架構(gòu)。架構(gòu)(英文) 定義 XML 文檔規(guī)則,包括元素名稱和豐富的數(shù)據(jù)類型,它們的元素可以表現(xiàn)為組合,并且每個元素的屬性都可用。為了啟用多層應(yīng)用程序,Microsoft 將根據(jù)提交給 W3C XML 工作組的縮減 XML 數(shù)據(jù)架構(gòu) (XDR) 來發(fā)布 XML 架構(gòu)的技術(shù)預(yù)覽。

    服務(wù)器端 XML.服務(wù)器端 XML 處理允許使用 XML 作為在多個分布式應(yīng)用程序服務(wù)器(甚至是跨越操作系統(tǒng)邊界)之間傳送數(shù)據(jù)的標準方式。

    XML 文檔對象模型 (DOM)。XML DOM 是標準對象應(yīng)用程序編程接口,它使開發(fā)人員能夠用程序控制 XML 文檔內(nèi)容、結(jié)構(gòu)、格式等等。Microsoft XML 實現(xiàn)包括對 W3C XML DOM 建議的完全支持,并且可以用腳本、Visual Basic 開發(fā)系統(tǒng)、C++ 和其他編程語言來訪問。

    C++ XML 數(shù)據(jù)源對象。XML DSO 允許將 HTML 元素直接綁定到 XML 數(shù)據(jù)島。此外,它還提高了性能,有強大的能力可以綁定到不同 XML 節(jié)點上,而且利用了 Internet Explorer 5 beta 中所有的新的數(shù)據(jù)綁定功能。

    HTML、動態(tài) HTML 和 XML 之間的關(guān)系是什么?

    HTML 可以和 CSS 一起用于格式化和表示超鏈接頁面。動態(tài) HTML,通過 DOM,使 HTML 中的所有元素,都可以通過與語言無關(guān)的腳本和其他編程語言來訪問,從而在很大程度上提高了客戶機端的交互能力,而且不需要對服務(wù)器的額外需求。頁面的對象模型允許動態(tài)更改任何方面的內(nèi)容(包括增加、刪除和移動)。

    通過為結(jié)構(gòu)化數(shù)據(jù)添加 XML,為開發(fā)人員提供了構(gòu)造下一代豐富、靈活 Web 應(yīng)用程序的技術(shù)。使用 XML,他們可以為桌面提供結(jié)構(gòu)化數(shù)據(jù),并且用 XML 對象模型計算數(shù)據(jù),F(xiàn)在的開發(fā)人員可以在瀏覽器(例如 Microsoft Internet Explorer 4.0 和 Microsoft Internet Explorer 5)或者其他應(yīng)用程序中,通過腳本顯示基于 XML 的數(shù)據(jù)。此外,他們也可以對數(shù)據(jù)應(yīng)用格式化規(guī)則,而不需要使用 XSLT 樣式表的復(fù)雜腳本(實際上是將基于 XML 的數(shù)據(jù)轉(zhuǎn)換為顯示)。這兩種顯示基于 XML 數(shù)據(jù)的方法,都使得生成復(fù)雜數(shù)據(jù)的多個視圖成為可能。

    為什么 XML 這么重要?

    XML 將成為計算領(lǐng)域的未來。作為一種技術(shù),它的影響力將滲透到編程的每個方面,從嵌入式系統(tǒng)到圖形界面,到分布式系統(tǒng)以及數(shù)據(jù)庫管理。它實際上已經(jīng)成為軟件工業(yè)之間數(shù)據(jù)通信的標準,并且迅速代替 EDI 系統(tǒng)成為全球幾乎所有工業(yè)進行業(yè)務(wù)交換的主要媒體。它很有可能會成為創(chuàng)建和存儲大多數(shù)文檔的語言,不管是否在 Internet 上,并且有可能成為 Internet 應(yīng)用程序服務(wù)器的基礎(chǔ),有些人相信它將代替許多目前生產(chǎn)的小包裝產(chǎn)品。

    Microsoft 提供什么 XML 產(chǎn)品?

    Microsoft 正在努力為許多領(lǐng)域開發(fā) XML 資源:

    數(shù)據(jù)訪問。最新的 ActiveX? 數(shù)據(jù)對象 (ADO) 的化身,已經(jīng)支持 XML 的生成和消費將近一年了,并且 Microsoft SQL Server 2000 為基于 SQL 的信息和 XML 之間的互相轉(zhuǎn)換提供了許多接口。

    瀏覽器支持。Microsoft 是第一個生產(chǎn)能夠閱讀 XML 文件(無論是用原始結(jié)構(gòu)形式,還是通過 XSL 或 CSS 樣式表)的商業(yè)瀏覽器 (Internet Explorer 5) 的公司。

    BizTalk Server 2000.Microsoft? BizTalk(TM) Server 2000 提供了在大量不同格式(包括 XML)之間通信的方式,來幫助推動業(yè)務(wù)對業(yè)務(wù)的應(yīng)用程序。BizTalk Server 也包括了許多架構(gòu)生成和映射工具,從而大大簡化了業(yè)務(wù)或商業(yè)需要的 XML 結(jié)構(gòu)的開發(fā)。

    在 Web 上傳輸,必須壓縮 XML 嗎?

    一般來說,壓縮 XML 的需要是與應(yīng)用程序有關(guān)的,并且很大程度上是服務(wù)器和客戶機之間移動數(shù)據(jù)量的函數(shù)。用于描述數(shù)據(jù)結(jié)構(gòu)的標記的反復(fù)特性,使 XML 能夠非常好地壓縮數(shù)據(jù)。值得注意的是 HTTP 1.1 服務(wù)器和客戶機的壓縮都是標準的,XML 可以自動從中受益。

    XML 作為數(shù)據(jù)格式有多安全?有沒有增加 XML 安全性的計劃?

    XML 和 HTML 一樣安全。正因為安全的 HTTP (HTTPS) 可以用于對 HTTP 添加密碼技術(shù),從而保護了 HTML,因此它也可以用于保護 XML.XML 是表示結(jié)構(gòu)化數(shù)據(jù)的基于文本格式。這可以使數(shù)據(jù)的簡單性和互操作性最大化。對 XML 格式增加安全性和驗證能力時可以采取許多步驟。首先,XML 可以在傳輸?shù)娇蛻糁霸诜⻊?wù)器上加密,然后在客戶機上解密。應(yīng)用于數(shù)據(jù)本身的數(shù)字簽名也可以驗證 XML.


[page_break] 什么是 DTD 及其用途?

    文檔類型定義 (DTD) 定義了一類 XML 文檔的正確語法。也就是說,它列出了許多元素名稱,什么元素可以和其他元素一起顯示,什么屬性可以用于每種元素類型等等。DTD 使用 XML 文檔使用的不同語法形式。

    Web 開發(fā)人員在使用 XML 描述數(shù)據(jù)時必須包括 DTD 嗎?

    不。XML 可以用于描述有或沒有 DTD 的數(shù)據(jù)。術(shù)語“有效”XML 指代引用 DTD 的 XML 數(shù)據(jù),而“良好形成的”XML 是未使用 DTD 的 XML.此外,“良好形成的”XML 還是 XML 和標準統(tǒng)一標記語言 (SGML) 的基本區(qū)別之一。很明顯,在這兩種情況下,XML 本身都必須遵守語言的標準(例如,所有標記都必須是閉合的,并且標記不能重疊)。

    什么是 XML 架構(gòu)?它們與 DTD 的區(qū)別是什么?

    雖然 XML 1.0 提供了定義 XML 文檔的內(nèi)容模型的機制 — DTD — 但是很明顯還需要定義內(nèi)容模型的更全面更有效的方法。XML 架構(gòu)是特殊的 XML 結(jié)構(gòu)的定義(從其組織和數(shù)據(jù)類型兩個方面)。XML 架構(gòu)使用“XML 架構(gòu)”語言來指定在架構(gòu)中如何定義元素的每種類型,以及與元素關(guān)聯(lián)的數(shù)據(jù)類型。與 DTD 相比,架構(gòu)的最鮮明的特點,便是架構(gòu)本身就是 XML 文檔。這意味著閱讀它所描述的 XML 的工具也可以閱讀它。

    Microsoft 的 XML 服務(wù)目前支持 XML 數(shù)據(jù)架構(gòu),它代表了在 1999 年 3 月 Internet Explorer 5 裝運時 “W3C 架構(gòu)”活動的快照。XML 數(shù)據(jù)架構(gòu)允許開發(fā)人員在他們的 XML 文檔中添加數(shù)據(jù)類型,以及定義開放的內(nèi)容模型。這種對 DTD 功能的擴展對 XML 編程很關(guān)鍵。

    但是 W3C 正在準備“XML 架構(gòu)定義 (XSD)”,它將成為“XML 架構(gòu)標準”。Microsoft 計劃在此規(guī)范成為建議后,立即使對“XML 架構(gòu)定義 (XSD)”的支持成為它核心 XML 服務(wù)的一部分。

    什么是名稱空間,它們?yōu)楹沃匾?/p>

    名稱空間是 XML 的另一個高級功能,并作為 XML 1.0 規(guī)范的一部分,在 W3C 筆記中作了概述。它們允許開發(fā)人員限定元素名稱和關(guān)系。名稱空間使元素名稱唯一可識別,從而避免了名稱相同,但是在不同詞典中定義的元素之間發(fā)生名稱沖突。它們允許混合來自不同名稱空間的標記,這一點對多個來源的數(shù)據(jù)很重要。

    例如,書店可以定義

    名稱空間有助于清晰地定義這種差別。

    XSLT 和 XPATH

    什么是 XSLT?

    XSLT(英文) ,或者用于轉(zhuǎn)換的可擴展樣式表語言,它是在 1999 年 11 月 6 日獲得批準的 W3C 建議。從標記和編程兩重意義上說,這種語言提供了將 XML 結(jié)構(gòu)轉(zhuǎn)換到其他 XML 結(jié)構(gòu)、HTML 或者任何數(shù)量的其他文本格式(例如 SQL)的機制。雖然它可以用于創(chuàng)建 Web 頁面的顯示輸出,但是 XSLT 的實際功能在于能夠改變底層結(jié)構(gòu),而不是簡單地改變這些結(jié)構(gòu)的媒體表示,就像在層疊樣式表 (CSS) 中一樣。

    XSL、XQL、XSL 模式 和 XSLT 之間的區(qū)別是什么?

    XSLT 源自 CSS 在對 XML 文檔結(jié)構(gòu)改動上的局限性,當時創(chuàng)建 XML 的原因更傾向于代替 HTML 而不是提供通用數(shù)據(jù)描述語言。因此可擴展樣式表語言 (XSL) 成為構(gòu)造格式化 XML 新方法的成果。

    但是,“W3C 樣式工作”組的成員和早期 XML 采用者很快就發(fā)現(xiàn),能夠?qū)?XML 從一種格式轉(zhuǎn)換到另一個格式的語言,可以極大地簡化生成的大量代碼。Microsoft 向 W3C 提交了一個建議,最初名稱為 XML 查詢語言(或 XQL),它隨之被 W3C 采納為 XSL 模式語言。該語言的大多數(shù)功能最終都被納入了 XSLT 規(guī)范中。

    最終標準結(jié)合了為不同初始條件而修改的 XSLT 參數(shù),創(chuàng)建代碼功能塊的命名模板,以及大量用于數(shù)值和字符串處理的增強功能。XSLT 還為在語言中添加內(nèi)置功能提供方便,提供了 Microsoft 可在自己的實現(xiàn)中用來添加許多極其有用功能(包括訪問 COM 對象和腳本)的產(chǎn)品。

    什么是 XPath?

    XPath(英文) 是為 XML 定義的查詢語言,它提供在文檔中選擇節(jié)點子集的簡單語法。通過 XPath,通過指定類似于目錄的路徑(即名稱)以及路徑中的條件,可以檢索元素集合。XPath 對 XSLT 和 XML DOM 都很重要,并與 XPointer 規(guī)范(允許根據(jù)統(tǒng)一資源定位符 [URL] 和 XPath 表達式的組合來選擇文檔片斷)有聯(lián)系。

    為什么 XSLT 對 XML 很重要?

    XSLT 是將一種 XML 文檔轉(zhuǎn)換為另一種的語言。這意味著它提供了單源 XML 數(shù)據(jù)的機制,可以在 Web 頁面中創(chuàng)建由用戶動態(tài)更改的豐富視圖,可以為目標通信過濾數(shù)據(jù)。XSLT 對于業(yè)務(wù)規(guī)則編碼已經(jīng)足夠強大。它可以從數(shù)據(jù)生成圖形(不僅僅是 Web 頁面)。它甚至可以處理與其他服務(wù)器的通信 — 特別是和能夠集成到 XSLT 中的腳本模塊協(xié)作 — 以及在 XSLT 自身內(nèi)部生成適當?shù)南ⅰkm然它不可能代替桌面系統(tǒng)中的大多數(shù)交互(出于性能和使用方便性兩方面分原因),但是在未來的幾年中,XSLT 很有可能最終成為系統(tǒng)之間進行通信的主要“編程”語言。

    XSLT 和 CSS 之間的區(qū)別是什么?它們不是樣式表嗎?

    層疊樣式表 (CSS) 的任務(wù)是對 HTML 元素指定一組顯示屬性。CSS 決定了頁面的視覺外觀,但是不會改變源文檔的結(jié)構(gòu)。

    另一方面,XSLT 也稱為基于模板的語言,它允許將某種模式映射到源文檔中,該源文檔的輸出是用 XML、HTML 或純文本書寫的。使用 XSLT,可以將 XML 文檔的結(jié)構(gòu)轉(zhuǎn)換為不同的 XML 文檔。例如,您可以更改 XML 文檔的順序、添加或刪除元素、執(zhí)行條件測試或者用元素的集合進行迭代。

    XSLT 和 CSS 不是兼容標準。一種在 XML 中創(chuàng)建 Web 頁面的有用技術(shù),是用 XSLT 將 XML 轉(zhuǎn)換為諸如列表或表的結(jié)構(gòu),然后將 CSS 應(yīng)用于結(jié)果,控制這些結(jié)構(gòu)在適當媒體中的顯示。您甚至可以從 XSLT 創(chuàng)建 CSS.

    標準

    Microsoft 如何與 XML 標準兼容?

    從 XML 語言開始產(chǎn)生起,Microsoft 就站在了 XML 的最前沿,而且很值得注意的是,W3C 在過去幾年中所生成的大多數(shù) XML 建議和工作草案,都包括來自至少一個(在某些情況下可能是數(shù)個)Microsoft 職員的輸入和參與。Microsoft 已經(jīng)多次被委以重任,與 W3C 標準組織一起,確保 XML 的開發(fā)能使所有用戶受益,并且在許多不同領(lǐng)域的開發(fā)中都作出了重要貢獻,包括 XML 規(guī)范、DOM、XSLT 和架構(gòu)定義語言。Microsoft 承諾將與最新規(guī)范和標準保持一致。

    XML 和 World Wide Web Consortium (W3C) 之間的關(guān)系是什么?

    W3C 有一活躍的 XML 工作組。Microsoft 從 1996 年 6 月起就是該組織的共同發(fā)起者之一,從那時起許多業(yè)界企業(yè)都開始加入,包括 Netscape Communications Corp.、IBM 和 Oracle.有關(guān) XML 標準過程的詳細信息,請訪問 W3C Web 站點(英文)。

    XML 和 W3C 的地位關(guān)系如何?

    XML 1.0 是在 1998 年 12 月被正式批準的,現(xiàn)在仍是個穩(wěn)定的標準。有關(guān)當前 XML 規(guī)范的詳細信息以及 W3C 內(nèi)部的提交和審閱過程,請參見 W3C Web 站點(英文)。

    DOM 在 W3C 中的地位如何?

    DOM Level 1 的 W3C 文檔狀態(tài)為“推薦”。這說明 W3C 目前正在提議將它作為 World Wide Web 上的標準。有關(guān) DOM 和在 W3C 內(nèi)部提交和審閱過程的詳細信息,請參見 DOM 規(guī)范(英文)。


[page_break] 工具支持

    SQL Server 和 ADO 支持 XML 嗎?

    Microsoft ActiveX 數(shù)據(jù)對象 (ADO) 技術(shù),提供許多將數(shù)據(jù)庫記錄集(數(shù)據(jù)記錄集合)轉(zhuǎn)換為 XML 格式的方法,以及從給定結(jié)構(gòu)中獲取 XML 并將其轉(zhuǎn)換回 ADO 所支持數(shù)據(jù)庫(包括 SQL Server 和 Oracle 數(shù)據(jù)庫)的工具。此外,通過 MSXML2 和 MSXML3 中的 XML 數(shù)據(jù)源對象,還可以將任意 XML 直接加載到 ADO 中以生成記錄集。

    SQL Server 2000 還允許通過 URL 直接設(shè)置和檢索 XML,方式和調(diào)用 Web 頁面非常相似。這是處理數(shù)據(jù)的強大機制,因為它基本上意味著可以將 SQL Server 數(shù)據(jù)直接集成到 XML 過濾器和 Web 頁面,基本上凡是有 XML 文檔的地方都可以集成 SQL Server 數(shù)據(jù)。此外,還可以設(shè)置自定義模板,來控制如何從 SQL Server 數(shù)據(jù)中產(chǎn)生 XML,使數(shù)據(jù)庫成為生成 XHTML 頁面的強大工具。

    最后,諸如 BizTalk Server 這樣的應(yīng)用程序還允許在任意數(shù)量的不同數(shù)據(jù)源(從 XML 文檔到數(shù)據(jù)庫到 Excel 和 Word 文檔)之間進行映射、為 Web 體系結(jié)構(gòu)創(chuàng)建復(fù)雜數(shù)據(jù)管道以及根據(jù) XML 數(shù)據(jù)庫需求構(gòu)造有效的架構(gòu)。

    目前有 Microsoft 工具可以幫助我快速沿用 XML 嗎?

    Microsoft BizTalk Server 2000 是用于數(shù)據(jù)交換的、基于 XML 的服務(wù)器,它提供啟用電子商務(wù)業(yè)務(wù)社會的基本結(jié)構(gòu)和工具。BizTalk Server 的基礎(chǔ)是基于規(guī)則的業(yè)務(wù)文檔路由、轉(zhuǎn)換和跟蹤基本結(jié)構(gòu)。該基本結(jié)構(gòu)允許公司通過在組織邊界之內(nèi)或之間的應(yīng)用程序中間交換業(yè)務(wù)文檔,例如購買定單和發(fā)票,來集成、管理和自動化業(yè)務(wù)過程。有關(guān)詳細信息,請參見Microsoft BizTalk Server 2000(英文) .

    什么是 SOAP?

    SOAP 是簡單對象訪問協(xié)議,是創(chuàng)建大范圍分布式、復(fù)雜計算環(huán)境的工具,該計算環(huán)境可使用現(xiàn)有的 Internet 基本結(jié)構(gòu)運行在 Internet 上。SOAP 可以使應(yīng)用程序用許許多多方法在 Internet 上互相直接通信。有關(guān) SOAP 的詳細信息,請參見 SOAP 規(guī)范(英文)。

    XML 如何適用于 Microsoft Windows? Distributed InterNet Applications (Windows DNA) 策略來構(gòu)造三層并具有 Web 功能的應(yīng)用程序?

    XML 正在快速成為將結(jié)構(gòu)化數(shù)據(jù)從中間層傳送到桌面的工具; XML 的數(shù)據(jù)可以通過中間層代理與多種后端(數(shù)據(jù)庫)源集成。架構(gòu)(參見“XML 數(shù)據(jù)”一節(jié))可以改進該過程,并且開發(fā)人員可以更精確地描述和交換數(shù)據(jù)。

    問題和解決方案

    為什么在調(diào)用了 Load() 方法后,我的文檔對象仍然為空?

    默認情況下操作是異步加載的。這意味著如果提供 http URL 地址,那么 load() 方法將直接返回,并且文檔對象仍然為空,因為數(shù)據(jù)還沒有從服務(wù)器返回。為了糾正這個問題,請在代碼中添加下面的行:

    xmldoc.async = false;

    同時,如果是從獨立的 C++ 應(yīng)用程序加載 http XML 文檔,那么必須查詢消息隊列才能繼續(xù)加載。