WML學習之二基本格式和檔案頭

來源:互聯網
上載者:User

基本格式和檔案頭

wml檔案的一般格式:

<?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/>

<meta..../>

</head>

<card>

Some contents...

</card>

<wml>

   結構看上去和HTMl檔案很類似,對於每一個DECK,在其文檔開頭必須指明以下的型別宣告:

<?xml version="1.0"?>

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

千萬注意字母的大小寫。對於一個DECK,其檔案大小最好不要超過1.2K。

   <wml>標籤和HTML中的<html>標籤一樣,用來表明這是一個 WML的DECK,它有一個可選的xml:lang屬性來制定文檔的語言,比如<wml xml:lang="zh">表示文檔語言為中文。

   和HTML一樣<head>標籤包含了該DESK的相關資訊。<head> 標籤之間可以包含一個<access>標籤和多個<meta>標籤。

   <access domain="域" path="/路徑" />相當於HTML中的<BASE>標籤,指定該DECK的存取控制資訊,它用兩個可選的屬性,domain用來指定域,預設值為當前域, path用來指定路徑,預設值為"/",即根目錄。由於 <access>單獨使用,所以要用/結尾,以後對於類似的情況不再贅述。

   <meta 屬性 content="值" scheme="格式" forua="true|false"/> 和HTML中的類似,提供了該DECK的meta資訊。屬性是必選的,包括一下三種情況

   name="name" UP.Link Server忽略meta資料

   http-equiv="name" UP.Link Server將meta 資料轉為 HTTP 回應標頭(同HTML)

   user-agent="agent" UP.Link Server 直接將 meta 資料傳給手機裝置,content屬性也是必選的,其內容根據屬性而定。scheme屬性目前尚不支援。forua 為可選屬性,指定在該wml檔案傳到用戶端之前,<meta>標籤是不是被中間代理刪除(因為傳輸的協議可能改變),預設值為false。

   目前支援的meta資料:

   <meta http-equiv="Cache-Control" content="max-age=3600"/>指定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"/>。

   一個DECK可以包含多個CARD,每個CARD的內容可能不止一屏顯示,注意DECK,CARD和螢幕顯示範圍的關係。一個CARD用<card>和</card>包含。<card>可以包含以下可選的屬性:

<card id="name" title="label" newcontext="false" ordered="true" onenterforward="url" onenterbackward="url" ontimer="url">

   *id屬性用來指定CARD的名字,可用來在CARD間跳轉,相當於在HTML中在頁內跳轉時用<A NAME="jumpHere">。

   *title屬性用來作為書籤的標記,該屬性一般不會顯示在螢幕上。

   *newcontext屬性,預設值為false, 用來指示當跳轉到本CARD時,手機是不是要清除以前保留的資訊,包括變數,堆棧裡的記錄,重新設定手機狀態等。

   *ordered屬性,預設值是true,表明該CARD裡的內容是按固定的順序顯示, 還是按使用者的選擇來顯示。這點和HTMl不同,CARD 頁面裡的內容可以按一定的順序顯示,預設的是按線性順序顯示,即按代碼的順序,但是,要注意的是,以下三個標籤必須按以下順序來寫<onevent> <timer> <do>, (這和以後要講的“事件”有關)。這樣做是為了方便填表單,當ordered設定為true時,如果一個表單的內容不能在一屏裡顯示完,就分成多屏顯示;當ordered設定為false時,手機可以顯示一個概要CARD來總結有效選項,使用者可以從中選取表單選項來填寫。

   *onXXX屬性,類似於HTML標籤中的onXXX屬性,用來捕捉事件,當事件被觸發時執行指定的操作(任務),在這裡是轉向某個URL。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.