DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML詳解 >> WML教程8:WML文檔結構祥解
WML教程8:WML文檔結構祥解
編輯:XML詳解     

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="truefalse"/>和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>

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved