WML的簡單例子及編輯、測試方法第1/2頁
更新時間:2007年03月14日 00:00:00 作者:
完成WAP服務(wù)器的建立和WAP瀏覽器的安裝之后,我們接下來就可以使用WML語言來編寫WAP網(wǎng)頁或應(yīng)用,并通過WAP服務(wù)器及瀏覽器進行調(diào)試。從本章開始我們將系統(tǒng)地學(xué)習(xí)WML語言,本章主要講解WML語言的基礎(chǔ)知識,下一章全面講解WML的語法、標簽和規(guī)則。
2.1 WML的簡單例子及編輯、測試方法
無限標記語言WML(Wireless Markup Language)是一種基于擴展標記語言XML(Extension Markup Language)的語言,是XML的子集。它可以顯示各種文字、圖像等數(shù)據(jù),是由WAP論壇(http://www.wapforum.org)提出并專為無線設(shè)備用戶提供交互界面而設(shè)計的,目前版本為1.1版。這些無線設(shè)備包括移動電話,呼機和個人數(shù)字助理PDA(Personal Digital Assistants)等。
2.1.1 WML與WAP設(shè)備
為了更好的了解和使用WML語言,開發(fā)人員應(yīng)對WML使用的設(shè)備和支持WML的設(shè)備的特點、特征有個大概的了解。
一般而言,WML使用的無線設(shè)備通常具有以下特點:
與普通的個人計算機相比,體積較?。?
設(shè)備的內(nèi)存有限,且其CPU性能也有限;
通訊帶寬較窄、時延較長。
以移動電話、PDA為例來講,支持WML的設(shè)備主要具有以下特征:
有一個顯示屏幕,可顯示2.兇址?,每?2各字符;2.兇址型ǔ0ūA舾δ馨磁サ囊恍校?br>支持數(shù)字和字符的輸入;
支持操作者使用箭頭或數(shù)字按鈕進行選擇;
支持ASCII的可打印碼;
通常都有兩個可編程功能鍵,即Accpet鍵和Options鍵,一般安排在接近鍵盤的屏幕下方;
通常有一個Prev導(dǎo)航鍵。
我們介紹WML所使用WAP設(shè)備的目的,是希望讀者通過WAP設(shè)備的特點、特征來了解WML語言的特點,進而對WML編程所要解決的問題有個大概的認識。
2.1.2 使用文本編輯器面寫WML程序
使用WML語言編寫WAP網(wǎng)頁或應(yīng)用時,需要使用一個編輯器進行編輯。與HTML編程一樣,WML編寫的程序也是純文件文本,可以使用任意文本編輯器進行編寫,比如Windows系統(tǒng)中的“記事本(NotePad)”等。也可以使用比如Nokia WAP Toolkie等軟件(有關(guān)此具體的用法會在以后的學(xué)習(xí)過程中提起)。我們先介紹第一種方法,隨后介紹第二種。
如果要使用"記事本(NotePad)"來編寫WML程序,則可以在Windows系統(tǒng)中,單擊“開始”按鈕,然后從出現(xiàn)的菜單中,依次將光標指向“程序”、“附件”、“記事本”,啟動“記事本”程序。屏幕上隨后就會出現(xiàn)它的編輯窗口,從中就可以輸入并編寫WML程序了。
作為舉例,我們可以輸入如下簡單的程序。
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//wapforun//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<xml>
<card id="card1" title="Title">
<P>
<!--Write your card implementation here.-->
Hello World!!
</P>
</card>
</xml>
輸完后將它保存為hello.xml文件。保存時注意文件的擴展名應(yīng)為xml而不是txt。
2.2 WML程序結(jié)構(gòu)
上一節(jié)我們降解了一個簡單的WML程序,具有HTML編程的讀者可以看出,WML程序在結(jié)構(gòu)上形式上與html程序有很多相似之處。下面我們就根據(jù)一個實例來分析一下WML程序的結(jié)構(gòu)及組成。
2.2.1 WML的元素和標簽
分析實例之前,我們有必要對WML的元素和標簽予以簡單說明。與HTML類似,WML的主要語法也是元素和標簽。元素是符合DTD(文檔類似定義)的文檔組成部分,如title(文檔標題)、IMG(圖像)、table(表格)等等,元素名不區(qū)分大小寫。WML使用標簽來規(guī)定元素的屬性和它在文檔中的位置。標簽使用小于號(<)和大于號(>)括起來,即采用“<標簽名>”的形式。標簽分單獨出現(xiàn)的標簽和成對出現(xiàn)的標簽兩種。大多數(shù)標簽是成對出現(xiàn)的,由首標簽和尾標簽組成。首標簽和尾標簽又分別稱為起始標簽和終止標簽。首標簽的格式為“<元素名>”,尾標簽的格式為“</元素名>”。成對標簽用于規(guī)定元素所含的范圍,比?lt;b>和</b>標簽用于界定黑體字的范圍,也就是說<b>和</b>之間包住的部分采用黑體字顯示。單獨標簽的格式為“<元素名/>”,他的作用是在相應(yīng)的位置插入元素。如〈br/〉標簽表示在該標簽所在位置插入一個換行符。
2.2.2 WML程序結(jié)構(gòu)形式及組成的實例分析
了解了上述知識后,下面我們在分析一個實例程序。程序如下:
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapfourm.org/DTD/wml_1.1.xml">
<wml>
<card id="card1" ontimer="#card2" title="Tookit Demo">
<timer value="50"/>
<p aligh="center">
</br></br></br>
<big>
<!--Write your card implementation here.-->
Welcome to....
</big>
</p>
</card>
<card id-"card2" ontimer="#card 3"title="Toolkit Demo">
<timer value="50"/>
<p align="center">
<br/><br/>
<b>
The Nokia<br/>
</b>
Wireless Application Protocol
</u>
...
</p>
</card>
<card id="card3"title="Toolkit Demo">
<p align="center">
<br/><br/><br/>
<big>
<i>
Toolkit
</i>
</big>
</p>
</card>
</xml>
該程序運行后將在WAP手機屏幕依次顯示3屏信息。先顯示"Welcome to ...",然后顯示"The Nokia Wireless Application Protocol...",最后顯示"Tookit!"。顯示時每屏都有標題"Tookit Demo",相鄰兩屏之間延時為50,其單位大小為1/10秒,延時50即5秒。
通過以上實例我們可以了解到WML程序的結(jié)構(gòu)形式及組成:
1)語法。WML與HTML極為相似。仍然是一種標記語言,并且延續(xù)了XML的語法規(guī)則,具體的語法我們會以后的學(xué)習(xí)過程中遇到。
2)文件聲明。所有的WML程序必須在文件的開頭處聲明XML文件類型,包括XML的版本,WML的文檔類型、所用規(guī)范等。聲明形式如下:
<?xml version="1.0">
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
3)標簽。在WML語言中需要使用標簽(Tag),其使用形式與HTML和XML等標記語言中的形式是完全一致的。
4)元素。WML的元素(Element)用于描述卡片組(Deck)的標記信息即結(jié)構(gòu)信息。一個元素通常有一個首標簽、內(nèi)容、其它元素及一個尾標簽組成,具有下述兩種結(jié)構(gòu)之一:
<首標簽>內(nèi)容</尾標簽>
或
<標簽/>
元素包含的內(nèi)容中還可以有元素,這些元素也是有首標簽、相應(yīng)內(nèi)容、其它元素及尾標簽組成。不包含內(nèi)容的元素成為空元素。它為一個單獨的標簽?;蛘哒f,單獨的標簽也是一種元素。
5)屬性。WML與XML一樣,其標簽可以包含很多屬性。屬性用于給標簽提供必要的附加信息,且屬性內(nèi)容通常在起始標簽內(nèi)使用。不過,屬性內(nèi)容不會被瀏覽器顯示,它至作為參數(shù)為標簽提供必要的信息。
指明屬性值的時候,需要把該值用引號擴起來,可以是單引號或者雙引號,引號通常成對嵌套使用。屬性名稱必須小寫。例如:<card id="card 1" ontimer="#card2" title="Toolkit Demo">
而且,單引號的屬性中還可以包含雙引號的屬性。實體字符也可以作為屬性值。實體字符是指諸如&、<、>、'、"的特殊字符,在WML程序中顯示著類字符需要特殊處理,后面我們介紹具體方法。
6)注釋。WML程序中也可以加入注釋。注釋內(nèi)容用于給開發(fā)人員順利閱讀源代碼提供方便,它不會被瀏覽器顯示出來。注釋內(nèi)容在標簽中用感嘆號(?。┮?,并用于<!--注釋內(nèi)容-->的形式。例如:<!-- Write your card implementation here.-->。需要說明的是,XML程序中不支持注釋的嵌套。
7)文檔結(jié)構(gòu)。WML文檔是由“卡片(Card)”和“卡片組(Deck)”構(gòu)成的,一個Deck是一個或多個Card的集合。當(dāng)客戶端發(fā)出請求之后,WML即從網(wǎng)絡(luò)上把Deck發(fā)送到客戶瀏覽器,這是用戶就可以瀏覽Deck內(nèi)包含的所有Card,而不必從網(wǎng)上單獨下載每一個Card,程序中的第一個Card是缺省得可見的Card。
注意:Deck是一副紙牌的意思,這里是指一疊卡片,所以我們在這里稱之為它為“卡片組”。另外,Card指的是WAP手機屏幕大小的網(wǎng)頁,盡管有時一個Card可能需要多屏才能顯示完,但我們也可以把它翻譯成“頁面”,不過這樣與HTML中的頁面容易混合。因此我們在這里稱之為卡片。
2.1 WML的簡單例子及編輯、測試方法
無限標記語言WML(Wireless Markup Language)是一種基于擴展標記語言XML(Extension Markup Language)的語言,是XML的子集。它可以顯示各種文字、圖像等數(shù)據(jù),是由WAP論壇(http://www.wapforum.org)提出并專為無線設(shè)備用戶提供交互界面而設(shè)計的,目前版本為1.1版。這些無線設(shè)備包括移動電話,呼機和個人數(shù)字助理PDA(Personal Digital Assistants)等。
2.1.1 WML與WAP設(shè)備
為了更好的了解和使用WML語言,開發(fā)人員應(yīng)對WML使用的設(shè)備和支持WML的設(shè)備的特點、特征有個大概的了解。
一般而言,WML使用的無線設(shè)備通常具有以下特點:
與普通的個人計算機相比,體積較?。?
設(shè)備的內(nèi)存有限,且其CPU性能也有限;
通訊帶寬較窄、時延較長。
以移動電話、PDA為例來講,支持WML的設(shè)備主要具有以下特征:
有一個顯示屏幕,可顯示2.兇址?,每?2各字符;2.兇址型ǔ0ūA舾δ馨磁サ囊恍校?br>支持數(shù)字和字符的輸入;
支持操作者使用箭頭或數(shù)字按鈕進行選擇;
支持ASCII的可打印碼;
通常都有兩個可編程功能鍵,即Accpet鍵和Options鍵,一般安排在接近鍵盤的屏幕下方;
通常有一個Prev導(dǎo)航鍵。
我們介紹WML所使用WAP設(shè)備的目的,是希望讀者通過WAP設(shè)備的特點、特征來了解WML語言的特點,進而對WML編程所要解決的問題有個大概的認識。
2.1.2 使用文本編輯器面寫WML程序
使用WML語言編寫WAP網(wǎng)頁或應(yīng)用時,需要使用一個編輯器進行編輯。與HTML編程一樣,WML編寫的程序也是純文件文本,可以使用任意文本編輯器進行編寫,比如Windows系統(tǒng)中的“記事本(NotePad)”等。也可以使用比如Nokia WAP Toolkie等軟件(有關(guān)此具體的用法會在以后的學(xué)習(xí)過程中提起)。我們先介紹第一種方法,隨后介紹第二種。
如果要使用"記事本(NotePad)"來編寫WML程序,則可以在Windows系統(tǒng)中,單擊“開始”按鈕,然后從出現(xiàn)的菜單中,依次將光標指向“程序”、“附件”、“記事本”,啟動“記事本”程序。屏幕上隨后就會出現(xiàn)它的編輯窗口,從中就可以輸入并編寫WML程序了。
作為舉例,我們可以輸入如下簡單的程序。
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//wapforun//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<xml>
<card id="card1" title="Title">
<P>
<!--Write your card implementation here.-->
Hello World!!
</P>
</card>
</xml>
輸完后將它保存為hello.xml文件。保存時注意文件的擴展名應(yīng)為xml而不是txt。
2.2 WML程序結(jié)構(gòu)
上一節(jié)我們降解了一個簡單的WML程序,具有HTML編程的讀者可以看出,WML程序在結(jié)構(gòu)上形式上與html程序有很多相似之處。下面我們就根據(jù)一個實例來分析一下WML程序的結(jié)構(gòu)及組成。
2.2.1 WML的元素和標簽
分析實例之前,我們有必要對WML的元素和標簽予以簡單說明。與HTML類似,WML的主要語法也是元素和標簽。元素是符合DTD(文檔類似定義)的文檔組成部分,如title(文檔標題)、IMG(圖像)、table(表格)等等,元素名不區(qū)分大小寫。WML使用標簽來規(guī)定元素的屬性和它在文檔中的位置。標簽使用小于號(<)和大于號(>)括起來,即采用“<標簽名>”的形式。標簽分單獨出現(xiàn)的標簽和成對出現(xiàn)的標簽兩種。大多數(shù)標簽是成對出現(xiàn)的,由首標簽和尾標簽組成。首標簽和尾標簽又分別稱為起始標簽和終止標簽。首標簽的格式為“<元素名>”,尾標簽的格式為“</元素名>”。成對標簽用于規(guī)定元素所含的范圍,比?lt;b>和</b>標簽用于界定黑體字的范圍,也就是說<b>和</b>之間包住的部分采用黑體字顯示。單獨標簽的格式為“<元素名/>”,他的作用是在相應(yīng)的位置插入元素。如〈br/〉標簽表示在該標簽所在位置插入一個換行符。
2.2.2 WML程序結(jié)構(gòu)形式及組成的實例分析
了解了上述知識后,下面我們在分析一個實例程序。程序如下:
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapfourm.org/DTD/wml_1.1.xml">
<wml>
<card id="card1" ontimer="#card2" title="Tookit Demo">
<timer value="50"/>
<p aligh="center">
</br></br></br>
<big>
<!--Write your card implementation here.-->
Welcome to....
</big>
</p>
</card>
<card id-"card2" ontimer="#card 3"title="Toolkit Demo">
<timer value="50"/>
<p align="center">
<br/><br/>
<b>
The Nokia<br/>
</b>
Wireless Application Protocol
</u>
...
</p>
</card>
<card id="card3"title="Toolkit Demo">
<p align="center">
<br/><br/><br/>
<big>
<i>
Toolkit
</i>
</big>
</p>
</card>
</xml>
該程序運行后將在WAP手機屏幕依次顯示3屏信息。先顯示"Welcome to ...",然后顯示"The Nokia Wireless Application Protocol...",最后顯示"Tookit!"。顯示時每屏都有標題"Tookit Demo",相鄰兩屏之間延時為50,其單位大小為1/10秒,延時50即5秒。
通過以上實例我們可以了解到WML程序的結(jié)構(gòu)形式及組成:
1)語法。WML與HTML極為相似。仍然是一種標記語言,并且延續(xù)了XML的語法規(guī)則,具體的語法我們會以后的學(xué)習(xí)過程中遇到。
2)文件聲明。所有的WML程序必須在文件的開頭處聲明XML文件類型,包括XML的版本,WML的文檔類型、所用規(guī)范等。聲明形式如下:
<?xml version="1.0">
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
3)標簽。在WML語言中需要使用標簽(Tag),其使用形式與HTML和XML等標記語言中的形式是完全一致的。
4)元素。WML的元素(Element)用于描述卡片組(Deck)的標記信息即結(jié)構(gòu)信息。一個元素通常有一個首標簽、內(nèi)容、其它元素及一個尾標簽組成,具有下述兩種結(jié)構(gòu)之一:
<首標簽>內(nèi)容</尾標簽>
或
<標簽/>
元素包含的內(nèi)容中還可以有元素,這些元素也是有首標簽、相應(yīng)內(nèi)容、其它元素及尾標簽組成。不包含內(nèi)容的元素成為空元素。它為一個單獨的標簽?;蛘哒f,單獨的標簽也是一種元素。
5)屬性。WML與XML一樣,其標簽可以包含很多屬性。屬性用于給標簽提供必要的附加信息,且屬性內(nèi)容通常在起始標簽內(nèi)使用。不過,屬性內(nèi)容不會被瀏覽器顯示,它至作為參數(shù)為標簽提供必要的信息。
指明屬性值的時候,需要把該值用引號擴起來,可以是單引號或者雙引號,引號通常成對嵌套使用。屬性名稱必須小寫。例如:<card id="card 1" ontimer="#card2" title="Toolkit Demo">
而且,單引號的屬性中還可以包含雙引號的屬性。實體字符也可以作為屬性值。實體字符是指諸如&、<、>、'、"的特殊字符,在WML程序中顯示著類字符需要特殊處理,后面我們介紹具體方法。
6)注釋。WML程序中也可以加入注釋。注釋內(nèi)容用于給開發(fā)人員順利閱讀源代碼提供方便,它不會被瀏覽器顯示出來。注釋內(nèi)容在標簽中用感嘆號(?。┮?,并用于<!--注釋內(nèi)容-->的形式。例如:<!-- Write your card implementation here.-->。需要說明的是,XML程序中不支持注釋的嵌套。
7)文檔結(jié)構(gòu)。WML文檔是由“卡片(Card)”和“卡片組(Deck)”構(gòu)成的,一個Deck是一個或多個Card的集合。當(dāng)客戶端發(fā)出請求之后,WML即從網(wǎng)絡(luò)上把Deck發(fā)送到客戶瀏覽器,這是用戶就可以瀏覽Deck內(nèi)包含的所有Card,而不必從網(wǎng)上單獨下載每一個Card,程序中的第一個Card是缺省得可見的Card。
注意:Deck是一副紙牌的意思,這里是指一疊卡片,所以我們在這里稱之為它為“卡片組”。另外,Card指的是WAP手機屏幕大小的網(wǎng)頁,盡管有時一個Card可能需要多屏才能顯示完,但我們也可以把它翻譯成“頁面”,不過這樣與HTML中的頁面容易混合。因此我們在這里稱之為卡片。
相關(guān)文章
關(guān)于html嵌入xml數(shù)據(jù)島如何穿過樹形結(jié)構(gòu)關(guān)系的問題
html里面引用xml的數(shù)據(jù)島,如何穿過樹形結(jié)構(gòu)的關(guān)系,我不知道這個datafld里面應(yīng)該如何使用xml里面的標簽名稱,如何加前綴,如何從resume得到name子元素2012-12-12WML開發(fā)教程之 WAP網(wǎng)站服務(wù)器配置方法
WML開發(fā)教程之 WAP網(wǎng)站服務(wù)器配置方法...2007-03-03