WML(無線傳輸標記語言,Wireless Markup Language)是一種指令碼語言, 它比HTML 編寫的內容要消耗網路瀏覽器更少的記憶體和CPU時間, 使得WML對廣域網路和行動裝置來說更加友好。整合的行動裝置(靈通電話, smartphone), 如 Handspring Treo 600, Palm Tungsten W 或者象 Motorola MPX
200 這樣的基於靈通電話的裝置, 它們相對於傳統PDA的好處常常來自於使用者的偏好。
一.簡介
WML(Wireless Markup Language -
無線傳輸標記語言)。它是一種從 HTML 繼承而來的標記語言,但是 WML 基於 XML,因此它較 HTML 更嚴格。 WML 被用來建立可顯示在 WAP
瀏覽器中的頁面。用WML編寫的頁面被稱為 DECKS。DECKS 是作為一套 CARDS 被構造的。 這種描述語言同我們常聽說的HTML語言同出一家,都屬於XML語言這一大家族。WML的文法跟XML一樣,WML是XML的子集。 HTML語言寫出的內容,我們可以在我們的PC機上用IE或是Netscape等瀏覽器進行閱讀,而WML語言寫出的檔案則是專門用來在手機等的一些無線終端顯示屏上顯示,供人們閱讀的,並且同樣也可以向使用者提供人機互動介面,接受使用者輸入的查詢等資訊,然後向使用者返回他所想要獲得的最終資訊。
二.詳細說明
WML(無線傳輸標記語言,Wireless Markup Language)是一種指令碼語言, 它比HTML 編寫的內容要消耗網路瀏覽器更少的記憶體和CPU時間, 使得WML對廣域網路和行動裝置來說更加友好。整合的行動裝置(靈通電話, smartphone), 如 Handspring Treo 600, Palm Tungsten W 或者象 Motorola
MPX 200 這樣的基於靈通電話的裝置, 它們相對於傳統PDA的好處常常來自於使用者的偏好。 使用者是更喜歡攜帶一件整合了行動電話和PDA功能的多功能裝置, 還是一個行動電話和一個PDA? 將聲音和資料功能整合進一件裝置裡有一些迷人的好處, 例如可以從地址簿上給一個號碼打電話, 那上面有你全部連絡人的電話號碼而不僅僅是你用鍵盤敲入的, 因為靈通電話可以和你的電腦同步。 另外, 靈通電話將成熟的作業系統,
如Palm OS, Symbian, Linux 或者 Windows, 和可上網的行動裝置聯絡在一起, 這就提供了一種平台使得公司可以移動化公司專屬應用程式, 允許地區內的使用者訪問最新的資料。 傳統的基於專有作業系統的行動電話的螢幕常常太小而不能顯示有意義的資料,同時沒有無線上網功能的PDA又經常不能完全符合技術規範, 使得它們無法有效地處理移動資料。
三.WMLScript
WML 使用 WMLScript 在用戶端運行簡單的代碼。WMLScript 是一種輕量級的 JavaScript 語言。不過,WML指令碼並不嵌在 WML 頁面中。WML頁面僅僅含有對指令碼
URL 的引用。WML 指令碼在 WAP 瀏覽器運行之前,需要先在伺服器上被編譯為位元組編碼。 建立網頁製作環境 WML檔案本身就是文字檔,所以編輯不成問題,順手的編輯器都可以用。 當然,由於目前的瀏覽器(opera瀏覽器可以)還都不能顯示
WML頁面,而我們又不能總在手機上進行測試(速度太慢),所以需要模擬器。現在象NOKIA、ERICSSON、MOTOROLA等手機製造商都生產了相應的產品,你只要下載就行了。當然除了模擬器以外,還需要圖形製作轉換器(用來製作WAP格式的圖形檔案)、字元轉碼器(漢字<=> UNICODE)等等,本站工具及論壇頁面均有說明。
四.WML檔案結構
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 。wapforum 。org/DTD/wml_1.1.xml">
<wml>
<card id="HELLO" title="HELLO">
Hello world!
</card>
</wml>
顯示結果如下:
------ HELLO ------
Hello World!
DECK裡面各個組成部分的具體解釋在本教程的其他部分有說明。
五.WML字元集
WML是XML的子集,繼承了XML的字元集設定。WML文檔預設的字元集是UTF-8。
要顯示中文,有兩種辦法。最簡單的辦法就是在文檔頭使用encoding,即把第一行改為:
<?xml version="1.0" encoding="gb2312"?>
然而令人喪氣的是,這種方法有些手機和模擬器並不支援(將來會的),所以目前第2種方法更普遍:不改變字元集設定,但是在寫中文的時候採用UNICODE代表中文字元。
例子代碼如下:
<?header("Content-type: text/vnd.wap.wml; charset=UTF-8");echo "<?xml version=\"1.0\"?>";?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"><wml><head> <meta http-equiv="cache-control" content="no-cache"/></head><?include("./include/convert_iconv.inc.php");$convert = new convert();$lanmu1="佳節傳情";$lanmu1url="show.php?type=1";$lanmu2="生日祝福";$lanmu2url="show.php?type=2";$lanmu3="我猜我猜猜猜";$lanmu3url="show.php?type=3";$lanmu4="哈哈笑話";?><card title="<?echo $convert->toUTF8("網路簡訊")?>"><p><br/><a href ="<? echo urldecode($convert->toUTF8($lanmu1url)) ?>"><? echo $convert->toUTF8($lanmu1) ?></a><br/><a href ="<? echo urldecode($convert->toUTF8($lanmu2url)) ?>"><? echo $convert->toUTF8($lanmu2) ?></a><br/><a href ="<? echo urldecode($convert->toUTF8($lanmu3url)) ?>"><? echo $convert->toUTF8($lanmu3) ?></a><br/><? echo $convert->toUTF8("溫馨提示:瀏覽時記下您需要下載的簡訊內容編號,退出WAP瀏覽器,選擇“下載”菜單並輸入編號後即可下載完整內容!每條收費2元") ?><br/></p></card></wml>