版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、7.1 數(shù)據(jù)存儲(chǔ)7.2 XML與數(shù)據(jù)庫(kù)的轉(zhuǎn)換7.3 SQL Server 對(duì) XML的支持7.4 Oracle對(duì) XML的支持1;. XML與數(shù)據(jù)庫(kù)的關(guān)系越來(lái)越密切。從存儲(chǔ)在不同介質(zhì)中的數(shù)據(jù)自動(dòng)的生成XML文檔以及從不同的數(shù)據(jù)存儲(chǔ)交換信息,將成為未來(lái)面向信息的Internet的主要特點(diǎn),信息世界的多極化必將使動(dòng)態(tài)XML文檔不斷的增加:它們用于加載任何的東西,包括圖像和聲音;還用于越來(lái)越多的信息交換。從多用戶(hù)參與操作的需求來(lái)看,最好的方法就是利用數(shù)據(jù)庫(kù)。 數(shù)據(jù)存儲(chǔ)描述的是任何用來(lái)存儲(chǔ)數(shù)據(jù)的介質(zhì)。數(shù)據(jù)存儲(chǔ)可以是結(jié)構(gòu)化的文本文件、XML文件、關(guān)系數(shù)據(jù)庫(kù),甚至是某種專(zhuān)用的二進(jìn)制格式。本節(jié)我們將對(duì)比一下
2、如何使用關(guān)系數(shù)據(jù)庫(kù)和XML文檔來(lái)儲(chǔ)存信息,然后再看看如何將這二者結(jié)合起來(lái),以提供一種可靠的、易于存儲(chǔ)的數(shù)據(jù)存儲(chǔ)。2;. 數(shù)據(jù)庫(kù)和XML有很多共同之處:二者都提供了構(gòu)造和存儲(chǔ)信息的方法。關(guān)系數(shù)據(jù)庫(kù)以記錄和字段的形式存儲(chǔ)信息,其特點(diǎn)在于字段或記錄之間的順序和關(guān)系并不重要。同樣可以構(gòu)造一個(gè)XML文檔來(lái)存儲(chǔ)信息,其存儲(chǔ)方式與數(shù)據(jù)庫(kù)相似。不同的是,在XML文檔中,各個(gè)部分之間的順序或關(guān)系總是有意義的。 對(duì)于大多數(shù)信息而言,既可以作為關(guān)系數(shù)據(jù)庫(kù)存儲(chǔ),又可以作為XML文檔存儲(chǔ)。在很多情形中,采用哪一種存儲(chǔ)介質(zhì)并沒(méi)有明顯的優(yōu)劣差別。但在某些情形中,哪一種更合適是很明顯的。采用何種數(shù)據(jù)存儲(chǔ)介質(zhì),不僅取決于數(shù)據(jù)本
3、身的特性,還取決于使用數(shù)據(jù)的方式。3;. 1.數(shù)據(jù)的查詢(xún) XML文檔的查詢(xún)和選擇必須使用DOM和XPath來(lái)進(jìn)行。例子:Query.cs 2.更新和插入 使用DOM方法,也可以很方便地實(shí)現(xiàn)更新和插入操作 。例子:XmlAdd.cs4;. 現(xiàn)在的很多技術(shù)都支持XML與數(shù)據(jù)庫(kù)的連接,如ASP ,DOM,SOAP,XML-RPC等,下面就來(lái)看看利用ASP.NET和DOM來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)與XML的信息交換,即如何把數(shù)據(jù)庫(kù)中的信息提取出來(lái)生成所需的XML文檔,以及怎樣把一些重要的信息寫(xiě)入到數(shù)據(jù)庫(kù)中。7.2.1數(shù)據(jù)庫(kù)到XML文檔的信息傳送例子:DBtoXML.cs7.2.2 XML文檔到數(shù)據(jù)庫(kù)的信息傳送例子:
4、XMLtoDB5;. SQL Server2000中的XML支持包括: 使用SELECT語(yǔ)句中的FOR XML子句檢索XML數(shù)據(jù) 簡(jiǎn)單的HTTP URL請(qǐng)求 Updategram XML Bulkload OPENXML6;. 注意,如果只是安裝了基本的SQL Server2000,這些技術(shù)還是不可用的,需要安裝XML for SQL Server2000 Web Release1,該軟件可從微軟網(wǎng)站上免費(fèi)下載。另外,這里的很多技術(shù)還需要IIS5.0或更高版本的支持方可工作。7.3.1. 從SQL Server數(shù)據(jù)庫(kù)中提取XML數(shù)據(jù) 1FOR XML 從SQL Server數(shù)據(jù)庫(kù)中提取XML數(shù)
5、據(jù)的最基本方式是在SQL 查詢(xún)中使用FOR XML子句,告知SQL Server提供一份XML文檔來(lái)作為響應(yīng)。 FOR XML子句的基本語(yǔ)法如下: FOR XML mode , XMLDATA , ELEMENTS , BINARY BASE647;. 其中mode是使用該子句時(shí)需指明的下述三種模式之一: RAW 提供一份簡(jiǎn)單的幾乎沒(méi)有格式化的XML結(jié)果 AUTO提供一份具有更多格式 選項(xiàng)的XML結(jié)果 EXPLICIT允許 對(duì)所返回的XML結(jié)果進(jìn)行顯示的格式化 2. 簡(jiǎn)單的HTTP URL請(qǐng)求 SQL Server2000的另一項(xiàng)功能是能夠通過(guò)http執(zhí)行查詢(xún),所需的工作僅僅是將它們標(biāo)記到UR
6、L的尾部。也可以以類(lèi)似的方式提供XPath查詢(xún)。但是在產(chǎn)品級(jí)的應(yīng)用程序中并不提倡這樣做,因?yàn)樵撜Z(yǔ)法允許執(zhí)行任意的查詢(xún),這樣如果該數(shù)據(jù)庫(kù)暴露在Internet上,將會(huì)引發(fā)潛在的安全隱患。不過(guò),在設(shè)計(jì)期間用它來(lái)進(jìn)行測(cè)試還是很有用的。 8;.7.3.2. XML數(shù)據(jù)插入到數(shù)據(jù)庫(kù) 1. OPENXML OPENXML的基本語(yǔ)法如下所示: OPENXML (iDoc int in,RowPattern nVarchar in,F(xiàn)lags byte in ) WITH (rowsetschema colpatterns | tablename ) iDoc參數(shù)指定表示XML文檔的內(nèi)部節(jié)點(diǎn)樹(shù),該參數(shù)包含由s
7、p_xml_preparedocument存儲(chǔ)過(guò)程所返回的值。 RowPattern參數(shù)用來(lái)定義將要返回的XML文檔中的元素,指定OPENXML將要處理的iDoc文檔的節(jié)點(diǎn)。節(jié)點(diǎn)是通過(guò)XPath表達(dá)式來(lái)指定的。 Flag參數(shù)告訴SQL Server搜索屬性和(或)子元素。該值可以是0(默認(rèn)值,表示屬性)、1(屬性)或2(元素)。要同時(shí)搜索屬性和元素,您需要組合這些值來(lái)生成3。9;. WITH子句允許指定希望出現(xiàn)在結(jié)果集中的列、它們的數(shù)據(jù)類(lèi)型及將源XML的哪個(gè)節(jié)點(diǎn)映射到該列。WITH子句有三個(gè)選項(xiàng): WITH TableName將結(jié)果集關(guān)聯(lián)到一個(gè)已有的數(shù)據(jù)表。 WITH (Name varcha
8、r(20),Root/Name)指定列、數(shù)據(jù)類(lèi)型及用于告知處理器源XML節(jié)點(diǎn)映射位置的XPath表達(dá)式(可選)。 全部忽略掉該子句。2. XML BulkLoad XML BulkLoad技術(shù)可以用于將大量的XML數(shù)據(jù)填充到數(shù)據(jù)庫(kù)的數(shù)據(jù)表中。 10;. 為此,需要使用SQLXMLBulkLoad對(duì)象??梢酝ㄟ^(guò)VBScript之類(lèi)的腳本語(yǔ)言來(lái)創(chuàng)建該對(duì)象: Set BulkLoadObj = CreateObject(“SQLXMLBulkLoad. SQLXMLBulkLoad”)一旦有了該對(duì)象,還要為它提供:連接細(xì)節(jié),以保證它能夠訪(fǎng)問(wèn)待填充的數(shù)據(jù)庫(kù)。包含待上載數(shù)據(jù)的XML。用于說(shuō)明XML數(shù)據(jù)和
9、數(shù)據(jù)庫(kù)間映射細(xì)節(jié)的注釋schema文件。 11;. Oracle公司在其最新Oracle 8i數(shù)據(jù)庫(kù)產(chǎn)品中提供了對(duì)XML的支持,使其成為開(kāi)發(fā)基于XML的Internet應(yīng)用的系統(tǒng)平臺(tái)。作為Oracle 8i數(shù)據(jù)庫(kù)的一個(gè)主要組成部分,Java版本的XMLSQL實(shí)用工具在Oracle公司的XML戰(zhàn)略計(jì)劃中扮演著重要角色。該工具包包含了一組Java類(lèi),可完成下述兩大功能: 向數(shù)據(jù)庫(kù)發(fā)送查詢(xún)語(yǔ)句,然后從返回的結(jié)果中輸出XML文檔(文本或DOM節(jié)點(diǎn)樹(shù))。 將XML數(shù)據(jù)保存至數(shù)據(jù)庫(kù)。 這兩大功能可以說(shuō)是SQL數(shù)據(jù)庫(kù)支持XML的最基本要求,卻足以體現(xiàn)當(dāng)今XML技術(shù)發(fā)展的潮流。12;.Oracle Java版本的XMlSQL實(shí)用工具具有下列特性:能夠從SQL查詢(xún)中產(chǎn)生XML文檔能夠從SQL查詢(xún)語(yǔ)句或JDBC ResultSet對(duì)象中輸出文 本或文檔對(duì)象模型節(jié)點(diǎn)樹(shù)(DOM)。能夠?qū)ML文檔數(shù)據(jù)寫(xiě)人數(shù)據(jù)庫(kù)表或視圖中支持w3C的XMLl.0推薦標(biāo)準(zhǔn)??梢酝ㄟ^(guò)擴(kuò)展進(jìn)而支持Sax1.0文檔訪(fǎng)問(wèn)。支持基于下列字符集的文
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 買(mǎi)賣(mài)賒欠合同范例
- 合伙投資開(kāi)發(fā)合同范例
- 大慶房屋租賃合同范例
- 半永久培訓(xùn)合同范例
- 培訓(xùn)提供服務(wù)合同范例
- 出租餐廳合同范例
- 眾籌開(kāi)店合同模板
- 圍擋分包合同范例
- 臨時(shí)租車(chē)合同范例
- 個(gè)人簡(jiǎn)易抵押合同范例
- GA 1800.1-2021電力系統(tǒng)治安反恐防范要求第1部分:電網(wǎng)企業(yè)
- 企業(yè)如何利用新媒體做好宣傳工作課件
- 如何培養(yǎng)孩子的自信心課件
- 中醫(yī)藥膳學(xué)全套課件
- 頸脊髓損傷-匯總課件
- 齒輪故障診斷完美課課件
- 2023年中國(guó)鹽業(yè)集團(tuán)有限公司校園招聘筆試題庫(kù)及答案解析
- 大班社會(huì)《特殊的車(chē)輛》課件
- 野生動(dòng)物保護(hù)知識(shí)講座課件
- 早教托育園招商加盟商業(yè)計(jì)劃書(shū)
- 光色變奏-色彩基礎(chǔ)知識(shí)與應(yīng)用課件-高中美術(shù)人美版(2019)選修繪畫(huà)
評(píng)論
0/150
提交評(píng)論