三、 以視覺化軟體開發網站應用程式系統分析
3.2 視覺化軟體開發環境架構分析
3.2.2 XForms
圖 15 XForms Model 之應用 參考資料:W3C XForms 1.0 [8]
由於 1993 年出現的 Web Form 逐漸不能滿足日益增加的需求,於是乎 就有很多專家向 W3C 提出新一代 Web Form 的看法。然後由 W3C 的 HTML Working Group 的一個小組在 1999/4/22 ,提出 xForms 需求書(Forms
Requirement),而該小組日後即改組成今天的 XForms Working Group,負責 日後有關 xForms 規範的發展[9],XForms 已在 2003 年 10 月被 W3C 列入 Recommendataion[8]。
誠如 2002/11/12 的 xForms Version 1.0 的摘要中所述,xForms 是下一 代的 Web Forms,其主要目的是要解決目前 Web Forms 所不能滿足在 Web Application 和電子商務應用上的需求。
優點:
支援各種設備,如手持式設備,電 視,電腦上的各種流覽器,此 外尚支援印表機,掃描器等,將來一般使用者將可使用除電腦以外 的資訊設備,如資訊家電,進入網際網路的世界。表格的設計也應 考慮由紙張列印出來後, 填入資料,再由掃瞄機掃瞄輸入系統。
為因應滿足各式需求,提供更豐富的人機介面
將資料、表單邏輯和畫面顯示分開,XForms 的設計將清楚劃分為
支援暫停(Suspend)與恢復(Resume)的功能,在日常生活中,
常有填寫表格需參考其他資訊的情況,以致中斷表格填寫。例如申
(Scalable Vector Graphics)、SMIL(Synchronized Multimedia Integration Language)。同時也可使用樣式表(Style Sheet)語言,
如 CSS(CascadingStyle Sheet)或 XSL(eXtensible Stylesheet Language)來調整版面效果。有關 XHTML 和 CSS
XForms 之定位應是作為所有其他的資料輸入之角色,只要某一規 範需從外界接收資料,就需要到 xForms。其與 XML Family 成員的關聯如 下:
圖 16 Xforms 與 XML Family 成員之關聯 參考資料:W3C Xforms 1.0 [8]
1. XHTML
XForms 會被整合至 XHTML 中的一個模組 2. Privacy Preferences Project (P3P)
xForms 可以和 Privacy Preferences Project (P3P)一起使用,而 P3P 主 要目的是能讓使用者在流覽網站時對自己個人資料有更佳的主控權。
3. Web Accessibility Initiative (WAI)
XForms 能讓發展 WAI 更加容易 4. CSS & XSL
可以直接以 CSS & XSL 來格式化 5. VoiceXML
應可支援在語音流覽器上使用 6. SMIL
Xforms 需可和同步媒體結合 7. Scaleable Vector Graphics(SVG)
Xforms 需和可延伸性向量圖形技術結合 8. DOM
Xforms 需和 W3C 的文件物件模型(DOM)一致 9. XML Sschema
Xforms 需和 XML Schema 相配
圖 17 XForms 之組成方式 參考資料:W3C XForms 1.0 [8]
XForms 主要將 Form 的 Model 定義在<head>、</head>間,資料顯示的 部份則置於<body>、</body>間,以下為採用 XForms 設計之表單:
<?xml version="1.0" encoding="iso-8859-1"?>
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xforms="http://www.w3.org/2002/xforms/cr" >
<head>
<title>Schema Driven Forms</title>
<link rel="stylesheet" href="../main.css"
type="text/css" />
<!–開始定義資料模型 -->
<theDate xsi:type="xsd:date">2001-06-04 </theDate>
<theNumber xsi:type="xsd:int">976</theNumber>
</instanceData>
<xforms:label>Please enter your date of birth:<br/>
</xforms:label>
<xforms:hint>Enter date of birth </xforms:hint>
<xforms:alert>日期格式錯誤!</xforms:alert>
</xforms:input>
XForms 分割為三個層次:資料層(data layer)、邏輯層(logic layer)
和呈現層(presentationlayer)。資料層讓使用者定義表格的資料模式(data model),也就是表格的抽象結構(abstract structure)。使用者可以利用已 有的或自行定義資料型態(datatype)來描述表格資料。
邏輯層可讓使用者敘述表格欄位間的關係,例如欄位值的加總。
XForms 將支援簡單的運算語法(expression syntax),且這些語法是建立在 廣泛使用且熟悉的試算表功能上。當然,若要更彈性地使用 XForms,也可 呼叫程序語言(script language)。
呈現層包含了表格控制(form controls)的標誌(markups)和 HTML 標誌,而每一表格控制限於資料模式中的一個欄位。使用者可依自己喜好,
利用 getter 和 setter 功能(methods)呈現資料,如日期(dates)、貨幣(currencies)
等。如此一來,資料內在的表現方式仍然不變,卻簡化表格的處理。
有了 XForm 我們就可以用來定義完整的 HTML Form 元件,未來可以 直接適用在新一代的瀏覽器上,現在則可以根據 XForms 來實作 HTML Form 的 Render,用來產生網站應用程式的使用者元件的畫面。