|
變數(Variables) |
|---|
藉由參數或變數的設定,能夠改變所有WML的設定,你可以設計一個動態的 Cards和Decks,WML變數可以代替字串,並且在執行期間改變其值
一個變數如果等於一個空字串或為未知及未定義將不會被設值 ,若不等於空字串將會被設定.
| ☉ |
成員 setvar |
|---|
成員 setvar 設定目前瀏覽的內容其中的設定值,如果屬性 name不能等於
一個合法的變數將會被忽視
| 屬性表: |
|---|
| name=vdata | 指定變數名稱,此屬性為必須的 |
|---|---|
| value=vdata | 指定變數值,此屬性為必須的 |
| id | 見” 一般屬性” |
| class | 見” 一般屬性” |
|
範例[33] |
|---|
下列的例子,將為變數 product 給予一個預設值 WapSdk且提供一個彈性的標籤為Clear,當使用者選擇 Clear,porduct的值將會被清除,而目前的deck將被重新顯示空的值 .
|
<card id=”product” title=”Choose Product”> <p> product name: <input title=”Product name” name=”product” value=”WapSdk”/> <do type=”accept” label=”Clear”> <refresh> <setvar name=”product” value=””/> </do> </p> </card> |
|---|
| ☉ |
變數命名 (Naming variables) |
|---|
WML 變數名稱須使用US-ASCII 字元碼或者利用底線連結字元 ,下列的例子將介紹合法的變數名稱
This is a $var
This is a another $(var)
This is an escaped $(var:e)
Long form of escaped $(var:escape)
Long form of unescap $(var:unesc)
Short form of no-escape $(var:N)
Other legeal variable forms: $_X $X32 $Test_9A
這種命名法則將會造成一種副作用,使得符號 $將以一對$$來編碼,用一個 $符號即使給與隨便的值也會被替代.
為了在WML的deck中能夠明白的指定和使用錢字號 (Dollar sign)
使用下列語法:
$$
利用兩個dollar sign來明確指定….
例:
this is a $$ character
被顯示為
this is a $ character
變數命名有分大小寫……
| ☉ |
有效可參考的變數(Validating variables) |
|---|
在WML的文件中,任何跟隨在 $後的字串將會被當成一個可以參考的變數且是有效的 .任何一個參考變數必須使用適當變數命名法則 ,每一個變數將被放置在card的內容(#PCDATA)的值或者是 %vdata或/%href中的屬性值,如果使用無效的命名法則 ,將會使整個deck中的變數值出錯或者亂放
|
範例[34] |
|---|
下列例子將顯示無效的變數的使用:
|
<!--bad variable syntx-- > Balance left is $ 10.00 <! - - bad placement (in the type attribute) - - > < do type=”x-$(type)” label=”$type”> |
|---|
| ☉ |
限制的變數內容(Restricting variable context) |
|---|
用戶代理商可能提供用戶工具來參考而不倚賴於目前的內容,例如用戶代理器可能提供書籤的功能或者URL的對話窗,使得用戶將跟目前的網頁內容失去聯繫,用戶代理者將自行建立一個新的航行
| ☉ |
設定變數(Setting variables) |
|---|
下列有很多種方式可以去設定一個變數的變數值 ,當一個變數被設定而且已經被定義了 ,則目前值將被更新.
成員 setvar 允許你去設定變數值,其存在於下列的 task element中
go
prev
refresh
變數也可以在下列的情況中被設定..
成員 setvar 可以指定變數名稱和值, 例如 :
< setvar name=”location” value=”$(x)”/>
當你在設定變數時,請參考下列幾點
| ☉ |
替換變數(Substituting Variables) |
|---|
你可以替換一些在格式文件中(PCDATA),選項值 (vdata),和在WML成員中的href屬性的值 ,然而只有文字的替換,變數值的替換發生在執行期間 ,一個替換只是字串的替換動作,如果是一個未定義的值被參考 ,會以空字串代替.
變數值被替換時,可以轉換不同的型式 ,下列表格將總結上面內容
$setvar 或 $(setvar) 替換 setvar的值,代理者在適當的
文件下使用 URL的跳出協定來替
換該變數
$(setvar:e)或$(setvar:escape) 替換 setvar的值,根據URL的編碼
協定 ,來替換非字母與數字的字元
$(setvar:unesc) 替換 setvar的值, 根據URL的編
碼協定 ,不替換非字母與數字的字 元
$(setvar:N)或$(setvar:noesc) 替換 setvar的值,而不替換非字母
與數字的字元
下列例子將介紹登入名字到server去,以致於資料能夠被送到客戶端
|
<go method=”post” href=”http:/hostname/servlet/dealer”> <postfield name=”make” value=”ford”/> <postfield name=”car” value=”escort”/> </go> |
|---|
詳細資料請參考WML 規則書…
| ☉ |
替換語法傳遞變數 |
|---|
變數的傳遞語法(例如 $x)在所有的XML被傳遞
下列例子是相同的針對X的參考
$X
$#x24;X
$X
$X