複製鏈接
請複製以下鏈接發送給好友

XForms

鎖定
XForms是W3C組織所推薦的下一代在線Forms,它吸取了W3C標準諸如:XML Schema, XPath和基於XML的事件,最大特色是包含了客户端驗證的功能。
中文名
XForms
定    義
下一代在線Forms
推    薦
2003年10月14日
突    破
當前HTML forms模型的一些限制

XForms簡介

XForms是W3C組織所推薦的下一代在線Forms(早在2003年10月14日就被W3C推薦),它吸取了W3C標準諸如:XML Schema, XPath和基於XML的事件,XForms試圖突破當前HTML forms模型的一些限制。
XForms的最大特色是包含了客户端驗證的功能,我們知道,在HTML中,許多關於forms驗證的功能需要寫大量的JavaScript腳本,由於驗證的Javascript腳本庫依賴於forms中的各個元素,當它們發生變化時,不得不重新更新或維護Javascript驗證腳本。XForms結合了許多關於驗證方面的功能,對form驗證只需要使用簡單的XML標記完成,其它亮點還有:XForms將數據從表現中分離,更健壯的數據類型表示,能夠遞交XML數據到服務端-替代我們通常使用name/value遞交的做法(看起來這個還不錯),XForms可以在不同的設備上正常顯示。在學習XForms之前,推薦先閲讀一下Web Forms 2.0,關於XForms的教程和文檔可在W3C站點找到。
被稱為“下一代Web表單”的XForms最初起源於HTML工作組的工作。W3C組織力圖將XForms制定成為HTML表單的替代標準,用於包括桌面電腦、手持設備、信息家電等領域在內的各種平台之上。傳統的HTML Web表單沒有將表單的設計目的和表現形式分離開來,表單設計的靈活性很低,同時客户端計算能力也無法充分利用。
為了克服以上缺點,XForms對表單進行了抽象定義,將表單區分為數據,邏輯和表現三方面。規範中沒有規定實現細節,因此XForms處理器的實現形式是多樣的。既可以基於瀏覽器嵌入HTML頁面中,利用HTML和JavaScript進行表現;也可以用Java Swing應用程序等形式表現。另外XForms還為應用提供了事件驅動模型,這使得用户可以像開發普通的GUI應用程序一樣對鼠標、鍵盤等事件進行相應的編程。
XForms標準的成功之處就是將表單的作用和表現方式分離,由相互獨立的部分分別負責描述。這使得XForms的表現方式更靈活。

XForms定義

XForms 是下一代的 HTML 表單
XForms 與 HTML 表單相比更完善,更靈活
XForms 將在 XHTML 2.0 中成為表單標準
XForms 獨立於平台和設備
XForms 可從表現分離數據和邏輯
XForms 使用 XML 來定義表單數據
XForms 可存儲和傳輸 XML 文檔中的數據
XForms 含有諸如計算以及表單驗證等特性
XForms 可減少或根除對腳本的需求
XForms 是 W3C 標準

XForms框架

HTML 表單的作用是蒐集數據。XForms 的作用是相同的。
通過 XForms,輸入數據被描述在兩個不同的部分中:
XForms 模型(描述數據和邏輯)
XForms 用户界面(顯示和輸入數據)

XForms模型

XForms 模型用於描述數據。
數據模型是 XML 文檔的一個實例(一個模板)。
XForms 模型定義了一個 <model> 元素內部的一個數據模型:
<model>
<person>
<instance>
<fname/>
<lname/>
</person>
</instance>
<submission id="form1" action="submit.asp" method="get"/>
</model>從上面的例子,您可以看到 XForms 模型使用 一個 <instance> 元素來為需要收集的數據定義 XML 模板,並使用一個 <submission> 元素來描述如何提交數據。
<submission> 模型沒有表達任何有關表單可見部分(用户界面)的信息。

XForms設計目標

1、 支持手持設備、電視、桌面瀏覽器,以及打印機和掃描儀等
2、 豐富的用户界面滿足商務、消費和設備控制等各種應用
3、 消除數據、邏輯和表現之間的耦合
4、 增強的國際化功能
5、 支持結構化表單數據
6、 先進的表單邏輯
7、 單頁面多表單,以及單表單多頁面
8、 掛起和恢復功能的支持
9、 和XML標籤集的無縫集成
[1] 

XForms綁定

XForms 使用兩個部分來定義數據:XForms 模型和 XForms 用户界面。
XForms 模型是針對數據的一個 XML 模板(實例),而 XForms 用户界面是對數據輸入和顯示的描述。
XForms 使用 XPath 來定義這個兩個部分的連接。這被稱為綁定(binding)

XForms數據類型

XForms 屬性參考
名稱
描述
calculate
定義對項目執行的計算。
constraint
定義對項目的約束。
p3ptype
為項目定義 P3P 數據類型。
readonly
為項目定義一個編輯限定(edit restriction)(無法修改)
relevant
定義數據如何相關聯。(供顯示還是提交)
required
定義數據項目是必需項目。(不能為空)
type
為項目定義數據類型。
字符串數據類型
名稱
描述
ID
A string that represents the ID attribute
IDREF
A string that represents the IDREF attribute
IDREFS
-
language
A string that contains a valid language id (e.g. en, en-US)
Name
A string that contains a valid XML name
NCName
-
NMTOKEN
A string that represents the NMTOKEN attribute
NMTOKENS
-
normalizedString
A string that does not contain new line characters or tabs
QName
-
string
A string. This is the default data type XForms will use if no data type is specified.Note: string may contain tab characters and new line characters
token
A string that does not contain line feeds, carriage returns, tabs, leading or trailing spaces, or multiple spaces
所有的字符串數據類型都源自於 string 數據類型本身。
日期和時間數據類型
名稱
描述
date
Defines a date value
dateTime
Defines a date and time value
gDay
Defines a part of a date - the day (DD)
gMonth
Defines a part of a date - the month (MM)
gMonthDay
Defines a part of a date - the month and day (MM-DD)
gYear
Defines a part of a date - the year (CCYY)
gYearMonth
Defines a part of a date - the year and month (CCYY-MM)
time
Defines a time value
數值數據類型
名稱
描述
byte
A signed 8-bit integer
decimal
A decimal value
int
A signed 32-bit integer
integer
An integer value
long
A signed 64-bit integer
negativeInteger
An integer containing only negative values (..,-2,-1)
nonNegativeInteger
An integer containing only non-negative values (0,1,2,..)
nonPositiveInteger
An integer containing only non-positive values (..,-2,-1,0)
positiveInteger
An integer containing only positive values (1,2, ..)
short
A signed 16-bit integer
unsignedLong
An unsigned 64-bit integer
unsignedInt
An unsigned 32-bit integer
unsignedShort
An unsigned 16-bit integer
unsignedByte
An unsigned 8-bit integer
All numeric data types are derived from the decimal data type.
雜項數據類型
名稱
描述
anyURI
Represents a URI, which includes web page addresses
base64Binary
Allows characters, including control characters, that otherwise aren't representable in XML
boolean
Defines a true/false or 1/0 value
double
-
float
-
hexBinary
-
XForms 數據類型
名稱
描述
listItems
Represents a whitespace-separated list
listItem
Represents only non-whitespace characters. An excellent base type for a whitespace-separated list
dayTimeDuration
Represents a duration of a certain number of seconds
yearMonthDuration
Represents a duration of a certain number of months
參考資料