如果你在IT業工作,那麼你很可能聽說過XML;但如果你的工作主要與SQL Server有關,那麼你可能並沒有直接運用過XML。XML已經是Web編程環境中的普遍的資料格式了,而且它也是.NET Framework中主要的底層技術之一。SQL Server以兩種方式來支援XML:通過SQL Server本身的功能,以及通過發布稱為SQLXML的額外的功能。SQLXML擴充了SQL Server,並提供了XML相容性。
SQL Server支援XML就意味著,我們可以更有效地更新和讀取資料了;我們不再需要將XML資料轉換成資料庫可以理解的另一種格式,或將XML資料從資料庫轉換成XML。而且,可供開發人員選擇的方法也更多了,就是說,他們在訪問資料方面更靈活了。
對XML的宣傳已經有很多了,所以重要的一點是要意識到它只是一門簡單的技術。本質上,它是用來描述資料的一個標準的檔案格式。從發布SQL Server 2000的最初版本以來,對XML的支援就已經是SQL Server的一部分了。SQL Server不是通過提供一個方法儲存XML檔案來支援XML的,而是提供了一個到關係資料的介面,使你可以在表和其它資料庫物件中讀寫XML資料。SQL Server所固有的XML功能包括:可以通過HTTP、模板查詢、FOR XML子句和OPENXML()函數來訪問SQL Server。接下來,我將講述這些功能是如何運作的,以及它們可以如何使你的企業受益。
圖1. 提供 XML支援
要通過HTTP訪問一個SQL Server資料庫,你必須首先設定一個虛擬目錄。這個虛擬目錄在HTTP協議和一個特定的資料庫之間提供了一個連結。設定虛擬目錄時,我們需要用“Configure SQL XML Support In IIS”菜單條目,你可以在Window的Start菜單中的SQL Server菜單條目找到該項。通過該菜單條目,你就可以指定虛擬目錄的名稱、實體路徑、伺服器名稱、資料庫名稱和註冊資訊。一旦你建立了一個虛擬目錄,你就可以通過一個URL將查詢發送到資料庫了。如果你設定了一個叫做Northwind的虛擬目錄,並在瀏覽器中輸入了查詢/Northwind?sql=SELECT+*+FROM+Shippers+FOR+XML+AUTO,ELEMENTS+&root=Shippers,它就會返回類似於“XML 101”工具條中的Shippers例子中的XML資料。與運用ADO或其它任何技術相比,HTTP查詢會讓我們更容易地來訪問網站或Web應用程式的資料。