WML

WML

無線標記語言是一種標記語言, 與HTML標準通用標記語言下的一個套用)類似。它基於可擴展標記語言(標準通用標記語言下的一個子集)。WML是專門為手持式移動通信終端(手機)設計的,HTML 是為個人計算機(電腦)設計的。

基本介紹

  • 中文名:無線標記語言
  • 外文名:Wireless Markup Language
  • 外國語簡稱:WML(常作檔案擴展名)
簡史,詳細說明,Deck / Card 元素,文本元素,文本格式化標籤,錨元素,圖像元素,事件元素,任務元素,輸入元素,變數元素,檔案結構,WML字元集,WML注釋,WMLScript,網頁製作環境,

簡史

1996年~1998年的那個時間點,手機的記憶體、計算能力、螢幕的解析度都不足以支持HTML,因此產生了WML,目的是減少瀏覽器占用的記憶體和計算時間。由於WML編寫的內容面向的是手機,在電腦上瀏覽時需要安裝專用的瀏覽器。
1990年代後期,網際網路在個人電腦上成功的普及,帶來了信息革命。受其鼓舞,移動通信產業界推動著一場新的變革,將網際網路的內容搬到手持設備上。當時,行動電話的計算能力、記憶體以及顯示屏的解析度還非常有限,業界認同有必要制定一套技術,將網際網路各個層面的通信協定簡化,全球資訊網的網頁標記語言也需要簡化。
在這個背景下,1997年6月,由諾基亞、愛立信、摩托羅拉和無線星球(Unwired Planet)共同組建了WAP論壇,制定整套的無線套用通訊協定
1998年發布WML 1.0版,1999年發布WML1.1版,2000年發布WML1.2版。WML1.1得到了廣泛的支持。WAP論壇在2002年與其他標準化組織合併為OMA(OPEN MOBILE ALLIANCE 開放移動聯盟),WML向XHTML以及XHTML MP演進。2007年,Android發布以後,出現了明顯的區分:即智慧型手機支持XHTML,而功能手機支持WML。

詳細說明

與HTML 編寫的內容相比,WML消耗的記憶體和CPU時間更少,因此,WML更適合行動電話等手持移動設備。HTML語言寫出的內容,在電腦上用瀏覽器進行閱讀,而WML語言寫出的檔案則是專門用在手機上的、需要使用手機中的WAP瀏覽器來閱讀。WML也向使用者提供人機互動界面,接受使用者輸入的查詢等信息,然後向使用者返回他所想要獲得的最終信息。在電腦上能夠顯示WML網頁的瀏覽器不多,歐朋瀏覽器是一個例子。
WML從 HTML 繼承而來,但在語法上它較 HTML 更嚴格。
用WML編寫的頁面稱為 DECK。DECK 是由一套 CARD 構造的。WML的語法跟XML一樣,WML是XML的子集。WML支持的元素有:Deck / Card 元素;文本元素;文本格式化標籤;錨元素;圖像元素;事件元素;任務元素;輸入元素;變數元素等元素。

Deck / Card 元素

開始標籤作用
<access>
定義關於 deck 的訪問控制項的信息。
<card>
定義 deck 中的一個 card。
<head>
包含關於文檔的信息。
<meta>
定義有關文檔的元信息。
<template>
為 deck 中的所有 card 定義代碼模板。
<wml>
定義 WML deck (WML 根)
<!-->
定義注釋。

文本元素

開始標籤作用
<br>
定義一個換行。
<p>
定義一個段落。
<table>
定義表格。
<td>
定義一個表格單元(表格數據)。
<tr>
定義一個表格行。

文本格式化標籤

開始標籤作用
<b>
定義粗體的文本。
<big>
定義大號的文本。
<em>
定義著重文本。
<i>
定義斜體的文本。
<small>
定義小號的文本。
<strong>
定義強調文本。
<u>
定義下劃線文本。

錨元素

開始標籤作用
<a>
定義一個錨(連結)。
<anchor>
定義一個錨(連結)。

圖像元素

開始標籤作用
<img>
定義圖像。

事件元素

開始標籤作用
<do>
在用戶點擊螢幕上的一個單詞或短語時激活一個任務。
<onevent>
包含了當某些事件發生時所執行的代碼。
<postfield>
包含了連同 <go> 標籤被送往伺服器的信息。

任務元素

開始標籤作用
<go>
表示跳轉到新卡片的動作。
<noop>
表示不進行任何動作(noop 指的是 "no operation")。
<prev>
表示返回前一個訪問過的卡片。
<refresh>
刷新指定的卡片變數。如果有變數顯示在螢幕上,此任務也會刷新螢幕。

輸入元素

開始標籤作用
<fieldset>
用於對卡片中的相關元素進行分組。
<input>
定義輸入欄位(用戶可在其中輸入文本的文本域)。
<optgroup>
定義可選列表中的一組選項。
<option>
定義可選列表中的選項。
<select>
定義可選列表。

變數元素

開始標籤作用
<setvar>
在 <go>、<prev> 或 <refresh> 任務中把變數設定為指定的值。
<timer>
定義卡片計時器。

檔案結構

WML的頁面通常叫做桌面(DECK),由一組互相連結的卡片(CARD)組成。當行動電話訪問一個WML頁面的時候,頁面的所有CARD都會從WAP伺服器下載到設備里。CARD之間的切換由電話內置的計算機處理,不需要再到伺服器上取信息了。CARD里可以包含文本、標記、連結、輸入控制、任務(TASK)、圖像等等。CARD之間可以互相連結。
文檔的實體包含在<wml>...</wml>標記中,文檔里每個CARD又包含在<card>...</card>標記中,然後實際的文欄位落則包含在...
標記中。
簡單例子:
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www. wappu .cn/DTD/wml_1.1.xml">
<wml>
<card id="HELLO" title="HELLO">
Hello world!
</card>
</wml>
顯示結果如下:
------ HELLO ------
Hello World!

WML字元集

WML是XML的子集,繼承了XML的字元集設定。WML文檔預設的字元集是UTF-8。
要顯示中文,有兩種辦法。最簡單的辦法就是在文檔頭使用encoding,即把第一行改為:
<?xml version="1.0" encoding="gb2312"?>
然而令人喪氣的是,這種方法有些手機和模擬器並不支持(將來會的),所以第2種方法更普遍:不改變字元集設定,但是在寫中文的時候採用UNICODE代表中文字元,如:
<b>通訊錄</b>
代表:
通訊錄
WML元素:標記(Tag)和屬性
WML的主要內容是文本,由於標記會降低與手持設備的通訊速度,所以WML標準里僅僅使用了很少一部分。用於表格和圖像的的標記幾乎都被排除了。
與XML一樣,在WML語言中,所有元素都放在符號"<" 和 ">"中,並且包含一個開始標誌、一個結束標誌和一個內容標誌,或者使用自身結束的控制標記。就象這樣:
<tag>內容</tag> 例如:Hello World!
<tag/> 例如:
和 <go href="#done"/>
WML同樣支持在標誌中標出屬性。屬性是標誌的附加信息,與元素的內容不一樣,它並不在螢幕上顯示出來。屬性通常在元素的開始標誌後指定。如上面最後一個例子。
由於WML是XML的一種套用,因此所有的WML標記和屬性都是大小寫敏感的(<wml>跟<WML>完全不同),而且所有的標記都必須正確地結束。WML要求屬性的值必須放在雙引號或單引號內。單引號可放在屬性標誌內或雙引號內。字元亦可作為屬性的值。

WML注釋

XML支持這樣的注釋格式:
<!--這句話你在手機上看不到-->
這些注釋在瀏覽器中並不顯示出來。
WML不支持嵌套元素注釋。
連結(URL)
WML外部引用方式跟HTML相同
http://www. wappu. cn/index.wml 或
http://www. wappu. cn/index.wml#login
內部引用,如果next是當前DECK中的一個CARD時,可以用這種方式:
#next
提供連結功能的WML元素有2個:<go>(參見任務)和<anchor>(參見事件)。
CDATA
XML支持CDATA的概念,以顯示不需要解釋的文本。下面的例子使用CDATA元素在WML頁面中顯示WML命令文本。
<! [CDATA [ <card name="bogus">this is data
</card> ] ]>
瀏覽器視窗將顯示如下內容:
<card name="bogus">this is data
</card>

WMLScript

WML 使用 WMLScript 在客戶端運行簡單的代碼。WMLScript 是一種輕量級的 JavaScript 語言。不過,WML腳本並不嵌在 WML 頁面中。WML頁面僅僅含有對腳本URL 的引用。WML腳本在 WAP瀏覽器運行之前,需要先在伺服器上被編譯為位元組編碼。

網頁製作環境

WML檔案本身就是文本檔案,所以編輯不成問題,順手的編輯器都可以用。
WML編寫的頁面,最終需要在手機上測試,而我們又不能總在手機上進行測試,因為速度太慢,所以需要模擬器。歐朋瀏覽器支持WML頁面的顯示,可以當模擬器使用。另外,W3C官網網為開發人員提供免費語法檢測服務。除了此以外,開發過程中還需要圖形製作轉換器(用來製作WAP格式的圖形檔案)、字元轉碼器(漢字<=> UNICODE)等等。

相關詞條

熱門詞條

聯絡我們