国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

使用.NET存儲XML數(shù)據(jù)的方法

2024-07-10 12:40:18
字體:
供稿:網(wǎng)友
SQL Server 2000和XML for SQL Server 2000 Web版本(SQLXML)提供了三種存儲XML數(shù)據(jù)的途徑:XML Bulk Load和Updategrams,這兩種客戶端技術(shù)使用帶有注解的大綱指定XML文檔內(nèi)容和數(shù)據(jù)庫的表之間的映射;OpenXML是一種服務(wù)器端技術(shù),它允許你在XML文檔上定義關(guān)系視圖,有了OpenXML的關(guān)系視圖,你就能使用T-SQL代碼查詢XML文檔中的數(shù)據(jù)并把結(jié)果存儲在你的SQL Server數(shù)據(jù)庫中。 
  這三種技術(shù)中的每一種都是為特定的目的設(shè)計的。XML Bulk Load把來自很大的XML文檔的數(shù)據(jù)存儲在SQL Server中;Updategrams執(zhí)行SQL Server數(shù)據(jù)的優(yōu)化更新(優(yōu)化更新是沒有鎖(lock)的更新,在這種更新中系統(tǒng)檢測是否有其它用戶在原來讀取數(shù)據(jù)后改變了它);OpenXML提供了人們熟悉的XML數(shù)據(jù)關(guān)系訪問方法。 

  在這三種技術(shù)中,OpenXML是最靈活的,因為它提供了一個編程模型(T-SQL),在把XML數(shù)據(jù)存儲在SQL Server數(shù)據(jù)庫之前,你可以使用這種編程模型在XML數(shù)據(jù)上編寫業(yè)務(wù)規(guī)則或執(zhí)行計算邏輯。但是,由于OpenXML是一種基于服務(wù)器的技術(shù),如果你頻繁的使用它或者有大量的文檔,它會降低SQL Server的性能。不過,如果你采用了微軟.net框架組件,你就可以使用ADO.NET的數(shù)據(jù)集繞開這些性能和可伸縮性方面的限制,ADO.NET數(shù)據(jù)集賦予你一個強大的技術(shù)--為把XML數(shù)據(jù)存儲在SQL Server包含了一個完整的編程模型。 

  數(shù)據(jù)集、數(shù)據(jù)表和XML映射 

  你可以使用數(shù)據(jù)集簡單地從SQL Server中生成XML查詢結(jié)果。通過提供一種可以在客戶端和中間層計算機上使用的關(guān)系數(shù)據(jù)緩存(cache),數(shù)據(jù)集能夠載入和維護多種數(shù)據(jù)源(包括SQL Server、其它的關(guān)系型數(shù)據(jù)庫和XML)中的數(shù)據(jù)。 

  當(dāng)你從XML文檔中載入一個數(shù)據(jù)集的時候,該數(shù)據(jù)集必須把存儲在層次XML表現(xiàn)(representation)中的數(shù)據(jù)映射成數(shù)據(jù)集的關(guān)系表現(xiàn)。例如,如果你的XML文檔包含一個Order元素列表,而它又有一個作為子元素的嵌套的LineItem元素,那么通常這個文檔被映射成關(guān)系表現(xiàn)中的Orders和LineItems數(shù)據(jù)表。這種映射的目的與OpenXML使用Xpath查詢構(gòu)造XML文檔上的關(guān)系視圖的方法的目的是一樣的。但是與使用Xpath規(guī)范不同,數(shù)據(jù)集有自己的映射數(shù)據(jù)的方式。 

  數(shù)據(jù)集使用XML大綱定義(XSD)大綱把數(shù)據(jù)從XML文檔映射到數(shù)據(jù)集的關(guān)系數(shù)據(jù)緩存中。數(shù)據(jù)集為你提供了指定映射XML數(shù)據(jù)的大綱的兩種方法。首先,你可以引用一個定義了XML文檔中使用的元素,屬性和關(guān)系的XSD大綱。另一種方法是,你可以直接從文檔的結(jié)構(gòu)中推理大綱。換句話說,數(shù)據(jù)集可以通過檢查XML文檔的結(jié)構(gòu)和內(nèi)容建立大綱。 

  當(dāng)你引用XSD大綱的時候,數(shù)據(jù)集使用這個大綱中定義的元素、屬性與元素之間的關(guān)系來構(gòu)造關(guān)系數(shù)據(jù)緩存中的數(shù)據(jù)表、數(shù)據(jù)列和數(shù)據(jù)關(guān)系,你可以使用這個數(shù)據(jù)緩存存儲被映射的XML數(shù)據(jù)。我談到關(guān)系數(shù)據(jù)緩存中的結(jié)構(gòu)或大綱的時候,一般把它稱為數(shù)據(jù)緩存的形式。當(dāng)數(shù)據(jù)集處理大綱的時候,它會應(yīng)用一組規(guī)則,這種規(guī)則與映射大綱中沒有指定注解時Updategrams 和XML Bulk Load使用的默認(rèn)映射規(guī)則相似,數(shù)據(jù)集使用這種規(guī)則建立數(shù)據(jù)集用于存儲被映射的XML數(shù)據(jù)的表。數(shù)據(jù)集的映射規(guī)則概述如下: 
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 昭通市| 阿合奇县| 阜新市| 青川县| 大安市| 诸暨市| 新津县| 湄潭县| 台中县| 巴东县| 衡水市| 长汀县| 贡觉县| 左权县| 饶河县| 灯塔市| 岳普湖县| 绥化市| 东光县| 昌黎县| 托里县| 望城县| 邯郸县| 田林县| 三门峡市| 山阴县| 武穴市| 泾源县| 南澳县| 湾仔区| 哈尔滨市| 邵阳市| 宜兰市| 莱芜市| 都江堰市| 容城县| 聂拉木县| 盐城市| 巢湖市| 台南县| 建瓯市|