跳轉到內容

XForms/HelloWorld

來自華夏公益教科書,開放的書籍,開放的世界

背景和動機

[編輯 | 編輯原始碼]

自從 K&R 編寫了第一本關於 C 程式設計的書籍,程式設計書籍以“Hello World”程式開頭已經成為傳統。執行這個程式將指示您是否正確安裝了 XForms。

這是一個 XForms 中的示例“Hello World”程式。它使用一個輸入,模型中的一個變數和一個輸出。您應該能夠將文字複製貼上到像 Notepad 這樣的程式中並儲存到例如 hello.htm 的檔案中。這將告訴您是否已正確安裝 Firefox 或其他瀏覽器擴充套件。

螢幕影像

[編輯 | 編輯原始碼]

(注意,這只是一個 .jpg,而不是實際的表單!)

[編輯 | 編輯原始碼]

Hello World

託管的 *Hello World* 示例

要執行此程式,只需將以下文字複製到一個名為“hello.xhtml”的檔案中,然後使用載入了適當的 XForms 擴充套件程式的 Web 瀏覽器開啟它。

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xf="http://www.w3.org/2002/xforms">
   <head>
      <title>Hello World in XForms</title>
      <xf:model>
         <xf:instance xmlns="">
            <data>
               <PersonGivenName/>
            </data>
         </xf:instance>
      </xf:model>
   </head>
   <body>
      <p>Type your first name in the input box. <br/>
        If you are running XForms, the output should be displayed in the output area.</p>   
         <xf:input ref="PersonGivenName" incremental="true">
            <xf:label>Please enter your first name: </xf:label>
         </xf:input>
         <br />
         <xf:output value="concat('Hello ', PersonGivenName, '. We hope you like XForms!')">
            <xf:label>Output: </xf:label>
         </xf:output>
   </body>
</html>

如果此程式無法正常工作,則您的瀏覽器中可能未安裝擴充套件程式或外掛。

有關幫助,請參見 在 Firefox 中安裝 XForms

請注意,如果您安裝了 NoScript Firefox 擴充套件程式,您可能需要配置 NoScript 以允許來自您正在載入 HelloWorld 的位置的指令碼。

另外請注意,在 Firefox 中,檔案必須儲存為 xhtml 或 xml 副檔名。副檔名為 .html 的檔案將不會顯示 XForms。

請注意,該檔案看起來非常像標準的 HTML 檔案,但有一些例外。

  1. 檔案開頭有一個名稱空間宣告,並且有兩個元素在前面帶有 xf: 字首。
  2. 在 HTML <head> 元素中有一個叫做 model 的東西。
  3. 有一些新元素:inputoutput

兩行重要的程式碼是

   <xf:input ref="PersonGivenName" incremental="true"/>

   <xf:output value="concat('Hello ', PersonGivenName, '. We hope you like XForms!')"/>

當用戶鍵入時,這行程式碼將使用者鍵入的輸入複製到例項變數“PersonGivenName”。每次鍵入一個字元時,此程式都會更新輸出,並使用 XPath concat() 函式在名稱前包裝字串“Hello ”,並在其後包裝字串“. 我們希望您喜歡 XForms!”。

您還應該注意,執行此程式不需要一行 JavaScript 程式碼。擺脫 JavaScript 是人們將應用程式遷移到 XForms 的最大原因之一。

嘗試將輸入屬性 incremental 從

 incremental="true"

更改為

 incremental="false"

輸出應該只在您輸入“Tab”或按“Enter”(回車)鍵後才更新。

下一頁: 簡單訊息 | 上一頁: XForms 產品比較
主頁: XForms
華夏公益教科書