如果你在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應用程序的數據。