XForms 模型為集中于表單中的數(shù)據(jù)定義了一個(gè)模板。
XForms 模型
XForms 框架
HTML 表單的作用是搜集數(shù)據(jù)。XForms 的作用是相同的。
通過 XForms,輸入數(shù)據(jù)被描述在兩個(gè)不同的部分中:
- XForms 模型(描述數(shù)據(jù)和邏輯)
- XForms 用戶界面(顯示和輸入數(shù)據(jù))
XForms 模型定義了什么是表單,它包含什么數(shù)據(jù),以及它應(yīng)該做什么。
XForms 用戶界面定義了輸入域,以及它們?nèi)绾伪伙@示。
XForms 模型
XForms 模型用于描述數(shù)據(jù)。
數(shù)據(jù)模型是 XML 文檔的一個(gè)實(shí)例(一個(gè)模板)。
XForms 模型定義了一個(gè) <model> 元素內(nèi)部的一個(gè)數(shù)據(jù)模型:
<model> <instance> <person> <fname/> <lname/> </person> </instance> <submission id="form1" action="submit.asp" method="get"/> </model>
從上面的例子,您可以看到 XForms 模型使用 一個(gè) <instance>元素來為需要收集的數(shù)據(jù)定義 XML 模板,并使用一個(gè) <submission>元素來描述如何提交數(shù)據(jù)。
<submission> 模型沒有表達(dá)任何有關(guān)表單可見部分(用戶界面)的信息。
XForms 命名空間
假如您忽略了這些例子中的 XForms 命名空間,或者假如您不清楚命名空間的概念,我們會(huì)在下一節(jié)介紹這個(gè)內(nèi)容。
<instance> 元素
XForms 模型 <instance>元素來定義數(shù)據(jù)收集的數(shù)據(jù)。
XForms 是為某個(gè) XML 文檔進(jìn)行數(shù)據(jù)收集的。在這個(gè) XForms 模型中的 <instance> 元素定義了這個(gè) XML 文檔。
在上面的例子中,表單為其收集數(shù)據(jù)的數(shù)據(jù)實(shí)例(XML 文檔)類似這樣:
<person> <fname/> <lname/> </person>
在數(shù)據(jù)收集完畢后,這個(gè) XML 文檔也許看上去類似這樣:
<person> <fname>John</fname> <lname>Smith</lname> </person>
<submission> 元素
XForms 模型使用 <submission>元素來描述如何提交數(shù)據(jù)。
<submission> 元素可定義表單以及如何提交表單。在上面的例子中,id="form1"用于標(biāo)示此表單,action="submit.asp"屬性表單被提交到的 URL,而 method="get"屬性定義了在表單提交過程中使用的方法。
XForms 用戶界面
XForms 用戶界面用于顯示和輸入數(shù)據(jù)。
XForms 的用戶界面元素被稱為控件或輸入控件:
<input ref="fname"><label>First Name</label></input> <input ref="lname"><label>Last Name</label></input> <submit submission="form1"><label>Submit</label></submit>
在上面的例子中,兩個(gè) <input> 元素定義了兩個(gè)輸入域。ref="fname" 和 ref="lname" 屬性指向了 XForms 模型中的 <fname> 和 <lname> 元素。
<submit> 元素中的 submission="form1" 屬性可引用 XForms 模型中的 <submission> 元素。submit 元素通常被顯示為按鈕。
請(qǐng)留意例子中的 <label> 元素。使用 XForms 的話,每個(gè)輸入控件元素都必須有 <label> 元素。
您將需要一個(gè)容器
XForms 沒有被設(shè)計(jì)為單獨(dú)工作的方式。也沒有所謂的 XForms 文檔。
XForms 必須工作在另外一個(gè) XML 文檔中。它可運(yùn)行在 XHTML 1.0 中,同時(shí)它也將工作在 XHTML 2.0 中。
現(xiàn)在把所有的組合起來
如果我們把它組合起來,此文檔是這樣的:
<xforms> <model> <instance> <person> <fname/> <lname/> </person> </instance> <submission id="form1" action="submit.asp" method="get"/> </model> <input ref="fname"><label>First Name</label></input> <input ref="lname"><label>Last Name</label></input> <submit submission="form1"><label>Submit</label></submit> </xforms>
頁面會(huì)這樣顯示:

XForms 處理器
內(nèi)建于瀏覽器中的 XForms 處理器將負(fù)責(zé)向目標(biāo)提交 XForms 數(shù)據(jù)。
數(shù)據(jù)可作為 XML 來提交,類似這樣:
<person> <fname>David</fname> <lname>Smith</lname> </person>
或作為文本來提交,類似這樣:
fname=David;lname=Smith
上一篇: XML DOM - NamedNodeMap 對(duì)象 下一篇: XML DOM - XMLHttpRequest 對(duì)象