SQL Server 2000 的 XML 功能大幅簡化了將現有 Transact-SQL 代碼暴露為 Web Service 的過程。核心依賴兩大 XML 能力:
FOR XML「選出」數據,SQL Server 即可將 XML 返回給 XML 模板。模板中引用存儲過程 Exec GetOrdersXML,配合 XSL 樣式表將存儲過程輸出的 XML 轉換為 SOAP 格式返回給客戶端。存儲過程內部使用 FOR XML EXPLICIT 模式,從 Orders 與 Order Details 兩表選取數據,構建層次化 XML:
SELECT 1 AS Tag, NULL AS Parent,
Orders.OrderId AS [Order!1!OrderId],
Orders.OrderStatus AS [Order!1!OrderStatus],
...
NULL AS [OrderDetail!2!OrderDetailId],
...
FROM Orders
UNION ALL
SELECT 2 AS Tag, 1 AS Parent,
Orders.OrderId,
NULL, ...
OrderDetails.OrderDetailId AS [OrderDetail!2!OrderDetailId],
...
FROM Orders JOIN OrderDetails ON Orders.OrderId = OrderDetails.OrderId
FOR XML EXPLICIT
此架構實現了從現有 T-SQL 邏輯到標準 Web Service 的零侵入式遷移,極大降低了集成成本。