XForms
XForms是用於從 Web表單收集輸入的XML格式,是 HTML/XHTML 表單下一代的继承者;XForms 1.0(第三版)於2007年10月29日發布。最初的 XForms規範於 2003年10月14日成為 W3C官方推薦標準,而引入了若干改進的XForms 1.1在 2009年10月20日達到了相同的狀態。它采用了 XML的格式。XForms被設計為具有足夠的通用性,可以獨立的方式使用,也可用 XHTML以外的表示語言來描述用戶界面和一組常用的數據操作任務。
與一般表單的差異
與一般的網頁表單(最初以 HTML定義)相反,XForms 的設計使用了模型-視圖-控制器(MVC)方法。該模型包含一或多個描述表單數據的XForms模型,對這些數據的約束和提交。該視圖描述了表單中顯示的控件,如何將它們組合在一起以及它們所綁定的數據。CSS則用於描繪表單的外觀呈現。
XForms文檔可如同網頁表單一樣簡單(只需指定模型部分中的提交元素,並將控件放置在主體中),但 XForms包含許多高級功能。例如,要求最新的數據並在運行時更新表單,這和使用 XMLHttpRequest/AJAX(除非腳本除外)非常相似。表單的作者若根據 XML模型:需驗證用戶數據的類型、需要某些數據,禁用輸入控件或根據情況修改部份表單、強制數據之間的特定關係、輸入可變長度的數據數組、輸出從表單數據導出的計算值、使用 XML文檔預填條目,回應(與提交時相比),並根據所顯示的設備(桌面瀏覽器與移動設備與純文本等)修改每個控件的樣式。通常不需要使用 JavaScript等語言編寫腳本。但是,XForms確實包含一個事件模型,以及用於實現更複雜表單行為的操作。XForms 的操作和事件處理是使用 XML方言,而不以 JavaScript腳本語言來控制。
與網頁表單一樣,XForms可以用各種非 XML提交協議(multipart/form-data,application/x-www-form-urlencoded),但是一個新特性是XForms能將數據以 XML格式發送到服務器。XML文檔也可用於在表單中預填數據。由於 XML是一種標準,因此具備了很多提交時解析和修改數據的工具;傳統形式的類似工具也存在。XForms本身即是一種 XML方言,因此可以使用 XSLT 從其它 XML文檔創建和創建。XML模型綱要(schema)可使用轉換從而自動產生 XForms,並可將 XForms轉換為 XHTML表單。
軟體支援
在撰寫本文時,現在流行的網頁瀏覽器均無原生支援 XForms。但是有各種瀏覽器插件存在,客戶端擴展和伺服器/客戶端的解決方案。以下列出了一些實現的軟體技術:
- 在 Firefox 的 XForms擴展是 Mozilla項目的一部分。XForms 1.0 SE 的支援並不完整,但涵蓋了大部分規範,但 HTML表格中使用基於重複屬性的明顯例外。該擴展可用於 Firefox 2和Firefox 3,但未升級能支援 Firefox 4及更高版本。2011年7月首席開發人員寫道,XForms支援將不再更新;最後在 Firefox 19 放棄了對 XForms 的支援。
- IBM Lotus Forms支援基於 XForms的純 XML表單的開發和部署。有建立在 Eclipse 可視化設計環境和客戶端查看器上的試用版,這些查看器可在網頁瀏覽器中運行 XForms,也可作為獨立的桌面應用程序運行。
- OpenOffice.org 版本2.0 和 LibreOffice 支援 XForms。
實作技術比較
XRX 架構
由於 XForms可輕易地編輯複雜的 XML數據,因此將 XForms 與利用 REST介面的 XML資料庫結合使用有很多優勢。三種技術的組合(客戶端上 XForms,伺服務器上 REST介面和 XQuery編程)統稱為 XRX 應用程序開發。XRX 架構以其簡單性而聞名,在客戶端和資料庫中都使用 XML,可省略一般應用程序中的物件,需要與相關聯資料結構的轉換步驟。