XForms
外觀
| XForms 是華夏公益教科書上的 精選書籍,因為它包含大量內容,格式良好,並且華夏公益教科書社群 決定 在 首頁 或其他地方推薦它。請繼續改進它,感謝你所做的出色工作!你可以編輯它的 廣告模板。 |
XForms
歡迎來到 XForms 教程和食譜華夏公益教科書!

XForms 是 全球資訊網聯盟 推薦 的用於建立 Web 表單和 Web 應用程式的標準。它易於學習,提供豐富的使用者體驗,並且不需要你學習 JavaScript。
XForms 有很多不同的實現,這個食譜旨在與任何實現一起使用。在 W3C 網站 上有一個實現列表。
這是一個協作專案,我們鼓勵所有使用 XForms 的人貢獻他們完整的 XForms 工作示例。所有提交都必須在 知識共享署名-相同方式共享 2.5 許可證 下授權。
注意:本華夏公益教科書中的許多示例仍然使用“nodeset”屬性用於繫結規則、組和重複。大多數 XForms 系統(Orbeon 和 betterForm)現在使用“ref”屬性,可能不再支援舊的“nodeset”屬性。XSLTForms 1.0RC 不允許使用 @ref 代替 @nodeset,但從 rev.559 開始的版本支援使用 @ref 代替之前使用的 @nodeset。我們將相應地更新示例。
- 講師:如果你正在使用本書學習或教授 XForms,請在我們的 訪客登記簿 上簽名。
- 貢獻者:請檢視我們的 命名約定,以確保你的示例與教科書一致。
- 如果你正在尋找特定示例程式,請隨時使用 想要示例 部分。
如果你覺得這些示例有用,請建立到本網站的連結。本書有超過 30 位貢獻者。
相關華夏公益教科書:XQuery XForms/REST/XQuery
注意:幾乎所有示例都已在 FireFox 2.0 XForms 附加元件和更新的 0.8.6ff3 FireFox 3.0 附加元件中進行了測試。如果你發現任何錯誤,請告知我們。
介紹
- 介紹 - 關於本書和技術的概述。
- 背景 - XForms 標準的簡要歷史、理論和動機。
- 優點 - 為什麼使用 XForms?
- 安裝和測試 - 如何安裝 XForm 外掛或擴充套件。
- 命名約定 - 本書中使用的命名標準。
- XForms 產品比較 - 對 XForms 產品的比較
XForms 概覽
這些示例適用於剛入門的人。
- HelloWorld - 一個簡單的測試,用於檢視 XForms 是否已正確安裝。
- 簡單訊息 - 開啟一個帶有訊息的面板
- XForms 架構 - 對 XForms MVC 架構的介紹
- 輸入示例 - 一個簡單的輸入,它會更新模型
- 增量多對一 - 一個輸入欄位如何改變多個輸出控制元件
- 類似電子表格的更新 - XForms 如何跟蹤需要更新的欄位
- 繫結 - 如何使用 bind 元素將輸入繫結到模型
- 加法器 - 使用遠端 Web 服務對兩個數字求和的 XForm 示例
控制元件
- 輸入 - 一個帶有標籤的簡單輸入表單
- 地址 - 一個帶有標籤的簡單地址表單
- 地址對齊 - 使用 CSS 對齊欄位
- 輸入欄位寬度 - 使用 CSS 控制欄位寬度
- 秘密 - 一種輸入密碼的方式

- 訊息型別 - 三種訊息型別
- 文字區域 - 一大塊文字
- 帶樣式的文字區域 - 使用 CSS 樣式化文字區域

- 複選框 - 一個簡單的布林(是/否)複選框
- 從列表中選擇專案
- Select1 - 新的單選按鈕
- Select1 下拉列表 - 從下拉列表中選擇一個選項
- 開放選擇 - 建議一個值或允許使用者新增自己的值
- Select - 選擇多個(複選框)
- 多列選擇 - 從多列中選擇多個專案(複選框)
- Select1 多列 - 從多列中選擇一個專案(單選按鈕)
- 從模型中選擇 - 從模型中獲取選擇列表的資料
- 從檔案中選擇程式碼 - 從外部檔案中獲取選擇列表的資料

- 使用日期
- 上傳 - 從本地檔案系統上傳檔案
- 觸發器 - 新按鈕
- 控制按鈕外觀 - 設定按鈕標籤、提示並使用影像
- 範圍 - 在表單中新增滑塊
- 傳送 - 傳送新的資源請求
- 載入 - 動態載入更多資源到您的表單中
繫結
- 選擇文字 - 使用繫結表示式從各種文字訊息中設定選擇
中等例子
這些示例假設您熟悉 XForms 概念和控制元件。
客戶端欄位驗證
伺服器端欄位驗證
- 伺服器端欄位驗證 - 將單個欄位傳送到伺服器以驗證欄位內容
提交資料
- 提交 - 將您的 XML 資料儲存到檔案或 Web 伺服器
- 編碼引數 - 編碼提交引數
- 更改提交中的名稱空間 - 更改提交資料的名稱空間字首
- 顯示儲存結果 - 儲存後顯示儲存狀態
事件和條件
輸出
- 繫結到多個例項 - 繫結到多個模型中的多個例項
- 繫結到範圍 - 繫結到兩個不同的範圍
- 重複 - 使用重複來顯示列表
- 條件樣式 - 使用 CSS 和分組來有條件地顯示列表中的專案
- 數字格式化 - 如何格式化數字和貨幣
- 輸出和連結 - 如何在您的輸出中顯示連結
動態表單
隨著您使用而改變的表單。無需使用 Javascript 的動態表單
- 開關和情況 - 使用開關和情況來切換檢視
- 相關 - 只顯示相關欄位
- 重複中的繫結 - 在重複元素內繫結
- 顯示-隱藏控制元件 - 隱藏大型控制元件
- 停用按鈕 - 如何在按鈕不相關時停用它們
- 只讀 - 將輸入欄位設定為只讀
- 選擇和分組 - 使用選擇來有條件地顯示一個分組
- 動態標籤 - 在不重新載入頁面的情況下動態更改表單的標籤
- 建議專案 - 在您輸入時建立一個建議專案的列表
- 動態選擇列表 - 動態依賴於 xml 例項值的專案集
- 增量模型載入 - 動態載入其他模型
- 本地語言動態標籤 - 在不重新載入頁面的情況下動態更改表單的本地語言標籤
搜尋表單
- 搜尋表單 - 建立一個搜尋表單
- 使用載入搜尋 - 使用載入元素建立一個搜尋表單
- 高階搜尋 - 帶有簡單和高階選項卡的搜尋螢幕
- 日期範圍搜尋 - 搜尋具有日期範圍的專案
- 搜尋 Flickr - 使用 REST 介面搜尋 Flickr
- Web 服務 - 從 XForm 中呼叫 Web 服務
- 股票報價 - 呼叫 REST 服務,從股票程式碼獲取股票資訊
- 搜尋亞馬遜 - 使用網路服務搜尋亞馬遜
- 增量查詢 - 鍵入時,選擇列表會縮小
高階表單
大型示例
- CKEditor - 允許使用者使用 WYSIWYG 編輯器新增標記
- 幻燈片 - 在幻燈片中更改影像
- 引用專案 - 引用集合中的專案
- 深度複製帶插入來源 - 使用插入來源在模型中執行例項之間的深度複製
- 在文字框中插入 BBcode 的觸發器
- 多部分表單 - 如何保持初始載入時間短
- 在列表之間移動專案 - 如何在列表之間移動選定專案
- 佇列管理 - 如何管理排序佇列中的專案
瀏覽大型表單
使用標籤和樹 - 瀏覽複雜表單資料
- 水平檔案標籤選單 - 一個完整的執行示例,無需 Javascript

- 水平檔案標籤選單突出顯示 - 使用 CSS 目標突出顯示選定標籤的標籤選單

- 垂直選單 - 與先前版本類似的選單,但使用垂直方向
- 在模型中儲存標籤 - 在模型中儲存標籤,並使用重複顯示標籤
- 摺疊選單 - 摺疊選單
- 樹選單 - 層次樹選單
- 取消選擇事件 - 當您從表單導航離開時捕獲取消選擇事件
- 使用繫結突出顯示水平檔案標籤選單 - 另一個使用例項、繫結、事件和 CSS 的水平檔案標籤選單
- 層次書籤 - 編輯書籤
- 大綱編輯器 - 帶縮排的大綱
讀寫檔案
- 使用 get 和 put 進行讀寫 - 使用提交元素讀寫靜態資料
- 儲存中間表單資料 - 將中間表單資料儲存到本地驅動器
複合控制元件
組合控制元件的控制元件
表格和重複資料
- 重複到表格 - 將資料放入 HTML 表格
- 重複過濾 - 動態地從列表中過濾掉行
- 內聯重複 - 水平地向右側新增結構
- 插入 - 將新行插入表格結構
- 使用源插入 - 插入新資料並使用源屬性指定初始值
- 刪除 - 從表格結構中刪除選定的行
- 突出顯示選定行 - 突出顯示選定的行
- 表格列總計 - 表格底部帶有列總計的表格
- 多個上傳 - 使用重複功能將多個上傳附加到表單
- 摘要詳情 - 表格頂部的摘要資訊表允許您檢查每個專案的詳細資訊
XML 架構
- 從 XML 架構載入 - 從外部 XML 架構檔案載入資料型別
- 驗證 - 使用 XML 架構驗證表單
- 使用架構型別驗證 - 使用 XML 架構型別驗證表單
- 分面驗證 - 從 XML 架構檢查欄位的最小和最大長度
- SVG
JavaScript
- 動態載入 JavaScript - 動態載入 JavaScript 程式的示例
新增圖表、圖表和地圖
- 餅圖 - 使用範圍控制元件繪製餅圖
- Google 圖表 - 使用 Google 圖表 REST 網路服務
- 韋恩圖 - 使用範圍控制元件更改韋恩圖引數
- 供求關係 - 使用範圍控制元件更改價格,並檢視對需求的影響
- 圖形檢視器 - 檢視節點和連結的圖形
開發工具
- 事件記錄器 - 如何記錄事件的演示
- 替換測試器 - 測試正則表示式替換
- 流程步驟編輯器 - 編輯水平流程步驟列表
- 應用程式構建器 - 用於建立表單管理應用程式的表單
- 儀表盤構建器 - 用於指定單頁儀表盤佈局的表單
- URL 重寫器 - 配置和測試 Jetty URL 重寫規則的表單
- Web 服務測試器 - 用於測試 Web 服務的表單
- 同義詞集編輯器 - 將同義詞集與業務術語相關聯
其他示例
- W2 稅務表格 - 基於 Mozilla XForms 站點的示例稅務表格
- 發票管理器 - 發票管理器
- 計算器 - 一個四則運算計算器
- 犯罪檔案 - 刑事司法中使用的複雜表單示例
- CSS 表格 - 使用 CSS 格式化表格輸出,無需使用 HTML 表格
- 自定義控制元件 - 使用 XBL 的自定義控制元件示例
- 導航離開時警告 - 在儲存之前警告使用者是否導航離開
- 全選 - 選擇表格中的所有行
- 谷歌地圖 - 在 XForms 中使用 Google Maps 的示例
- 使用 XSLT 排序 - 使用 XSLT 樣式表對例項進行排序的示例
移動 XForms
- 移動 XForms - 基於 XForms 的移動應用程式示例
客戶端 XForms 解決方案
- FireFox 擴充套件
- FormFaces
- Picoforms
- Ubiquity XForms - http://code.google.com/p/ubiquity-xforms/
- XSLTForms - 開源的客戶端實現,不是外掛或安裝,適用於所有主要瀏覽器(IE、FireFox、Opera、Safari、Chrome 等)。
- EMC Documentum Formula - 客戶端實現,開發者免費使用。
伺服器端解決方案
- Apache - 配置 Apache 以與 XForms 協同工作
- 使用 WebDAV 和 Subversion 對錶單資料進行版本控制 - 使用 Subversion 和 WebDAV 自動對錶單資料進行版本控制
- IIS - 配置 Microsoft 的 IIS 以與 XForms 協同工作
- XML 資料庫 - 使用原生 XML 資料庫與 XForms 協同工作
- eXist - 使用 eXist 開源原生 XML 資料庫
- IBM DB2 - 使用 DB2 v9 與 XForms 協同工作
- Orbeon Forms - 開源的基於 Ajax 的 XForms 實現(也附帶 Form Builder 編輯器)
- betterFORM - 使用 Dojo 工具包的開源 Java 實現,用於客戶端 AJAX 層
開發工具
符號金鑰
指示 XForms/最佳實踐