WML 文檔結構祥解

WML 文檔結構祥解

1、聲明(Prologue)

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.com/DTD/wml_1.1.xml">

2、元素(Element)

  WML首先定義一個Deck,然後在Deck內封裝信息和Card。

3、文件頭(Head Element)

  頭信息包含與Deck有關的信息,包括meta數據和控制元素。

  3.1、訪問權限設置(Access)

  該元素用於設置有訪問當前Deck權限的列表。如果Deck內不包含Access Element信息,該Deck下的Access Element處於無效狀態,其他所有的Deck都可以訪問該Deck。

  相關屬性:

  domain:假如設置 <access domain="sina.com.cn"/> 那麼 http://www.sina.com.cn/ 將有訪問權限, 而 http://www.sino.com.cn/ 和 http://www.sina.net.cn/ 就沒有.

  path:工作原理與Domain非常相似,例如設置<access path="/internal"/> 那麼"/internal/wml" 將獲得訪問權限,而"/internal-wml"就沒有。

示例:

  做如下設置 <access domain="sina.com.cn" path="/wap"/>

  那麼以下幾個Url具有訪問權限:

  http://www.sina.com.cn/wap/goto.cgi
  http://www.sina.com.cn/wap/index.wml
  http://www.sina.com.cn/wap/cgi-bin/create_report.cgi?name=123&pwd=234

  以下的幾個Url沒有訪問權限:

  http://www.sina.com/wap/getuid.cgi
  http://www.sina.com.cn/internal/wap/getuid.cgi

3.2、頭元素設置(Meta)

  <meta 屬性 content="值" scheme="格式" forua="true|false"/>和HTML中的類似,提供了該DECK的meta信息。

例如:<meta http-equiv="Cache-Control" content="max-age=0" forua="true"/>

  content屬性是必選的,其內容根據屬性而定。scheme屬性目前尚不支持。forua爲可選屬性,指定在該wml文件傳到客戶端之前,<meta>標籤是不是被中間代理刪除(因爲傳輸的協議可能改變),默認值爲false。

  目前支持的meta數據:

  <meta http-equiv="Cache-Control" content="max-age=0"/>指定DECK在手機內存緩存中的存儲時間段,默認的爲30天(除非內存耗盡),在該期間,手機對於訪問過的DECK直接從緩存裏調用。如果信息是對時間敏感的,可以用max-age指定DECK在緩存裏的生存期,最小單位是秒,如果指定爲0,則每次都需通過連接服務器來調用該DECK。

  <meta user-agent="vnd.up.markable" content="false"/>和<meta user-agent="vnd.up.bookmark" content="指定的URL"/>類似於普通瀏覽器的書籤功能。當用戶將一個CARD做了書籤後,手機瀏覽器首先用一個標記記錄該CARD,這個標記默認的是<card>標籤中的title屬性(以後會講到),然後當用戶選擇了該書籤以後,瀏覽器就會打開被記錄的URL。但是因爲在默認的情況下,手機會記錄所有的DECK,所以,一般<meta>被用來使手機不要記錄當前的URL,即<meta user-agent="vnd.up.markable" content="false"/>。此外,如果要爲書籤指定不同於當前DRECk的URL,用<meta user-agent="vnd.up.bookmark" content="指定的URL"/>。

4、模板(Template)

  爲了節省資源,可以把每個Card中都要用到的Task設置在模板中,供當前Deck中所有Card使用,加入個別Card不需要該模板內容,可以Override掉它(詳見任務屏蔽)。

5、卡片(Card)

  適用事件

  以下事件適用於Card和Template,參見前面的相關說明。
  1. onenterbackward
  2. onenterforward
  3. ontimer

  卡片屬性(Card)

  id:同一Deck內Card的唯一標識,可以作爲標籤被使用。(#nextcard).

  title:卡片標題。不同的瀏覽器處理標題處理title的原則不一樣,有的瀏覽器會顯示標題,如果當前卡片沒有設置標題,當前卡片的URL會被顯示在標題位置。有些瀏覽器爲了節省顯示區域會忽略標題。

  newcontext:默認值爲false,用來指示當跳轉到本CARD時,手機是不是要清除以前保留的信息,包括變量,堆棧裏的歷史記錄,重新設置手機狀態等。

  ordered 布爾變量,聲明Card是否有序。通常可以用來開發自動播放的幻燈片效果。

示例:

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>

<head>
  <access domain="sina.com.cn" path="/wap"/>
</head>

<template>
  <do type="accept" name="accept1" label="OK">
    <go href="#accept"/>
</do>
</template>

<card id="start" title="Start Here">
<p> Start Here. </p>
</card>

<card id="accept" title="Okay Card">
<do type="accept" name="accept1" label="Okay">
  <go href="#accept2"/>
<!-- override the same task in template-->
</do>
<p> Card Accept </p>
</card>

<card id="accept2" title="OK Card" >
<do type="accept" >
  <go href="#start" />
</do>
<p> Card Accept2 </p>
</card>

</wml>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章