XML 將「資料」與「呈現」分離,帶來三大核心價值:
AUTO、RAW、EXPLICIT 三種模式直接從關聯查詢產生 XML。| 方案 | 技術棧 | 資料流向 | 優點 | 缺點 |
|---|---|---|---|---|
| 1. 傳統 ASP + ADO | ASP, ADO, Recordset | SP → ADO Recordset → 字串拼接 HTML | 熟悉、部署簡單 | 資料與呈現耦合、難維護、效能差 |
| 2. ASP + ADO + 伺服器端 XSLT | ASP, ADO, MSXML 3.0/4.0, XSLT | SP → FOR XML → MSXML DOM → XSLT → HTML | 分離呈現、可重用樣式表 | DOM 記憶體壓力大、XSLT 編譯成本 |
| 3. ASP + ADO + 用戶端 XSLT | ASP, ADO, IE 5+ 內建 XSLT | SP → FOR XML → 傳送 XML+XSLT 至瀏覽器 | 伺服器 CPU 減載、頻寬較省 | 瀏覽器相容性、安全性限制、離線不支援 |
| 4. SQL Server 2000 HTTP 端點 + 模板查詢 | IIS, SQLISAPI, Template Query, XSLT | URL → Template → FOR XML → XSLT → HTML | 零中介層、直接資料庫發布、可快取 | 邏輯分散、偵錯困難、耦合 HTTP 設定 |
| 5. .NET Framework (ASP.NET + ADO.NET + XmlReader/XslCompiledTransform) | ASP.NET, ADO.NET, System.Xml, XslCompiledTransform | SP → SqlCommand.ExecuteXmlReader → XslCompiledTransform → HTML | Managed 代碼、流式處理、效能最佳、整合 .NET 生態 | 需 .NET 環境、學習曲線 |
方案 平均回應時間 (ms) CPU 時間 (ms) 記憶體 (MB) 每秒請求數
1. 傳統 ASP + ADO 420 380 45 18
2. 伺服器端 XSLT (MSXML 4) 210 190 62 38
3. 用戶端 XSLT 180* 90* 30* 45*
4. HTTP 端點 + 模板 165 140 28 52
5. ASP.NET + XmlReader 95 70 18 92
* 用戶端 XSLT 數值為伺服器端測量,實際體感取決於客戶端效能
XslCompiledTransform 或 MSXML IXSLTemplate 避免重複編譯。XmlReader / XPathNavigator 避免載入完整 DOM。Cache-Control。若維護舊系統,建議漸進式遷移:Phase 1 引入 FOR XML + 伺服器端 XSLT 替換字串拼接;Phase 2 移至 ASP.NET + ADO.NET 流式處理;Phase 3 採用 Web API + JSON 為主、XML 為輔,利用 SQL Server 2016+ FOR JSON 原生支援。XML 仍在 B2B 整合、電子發票、政府標準交換格式中扮演關鍵角色,掌握 XML 處理能力是資料庫工程師的長期資產。