WAP建站W(wǎng)ML語言語法基礎(chǔ)教程第3/6頁
更新時間:2007年03月14日 00:00:00 作者:
通過以上實例我們可以了解到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)容在標簽中用感嘆號(?。┮觯⒂糜?lt;!--注釋內(nèi)容-->的形式。例如:<!-- Write your card implementation here.-->。需要說明的是,XML程序中不支持注釋的嵌套。
7)文檔結(jié)構(gòu)。WML文檔是由“卡片(Card)”和“卡片組(Deck)”構(gòu)成的,一個Deck是一個或多個Card的集合。當客戶端發(fā)出請求之后,WML即從網(wǎng)絡(luò)上把Deck發(fā)送到客戶瀏覽器,這是用戶就可以瀏覽Deck內(nèi)包含的所有Card,而不必從網(wǎng)上單獨下載每一個Card,程序中的第一個Card是缺省得可見的Card。
注意:Deck是一副紙牌的意思,這里是指一疊卡片,所以我們在這里稱之為它為“卡片組”。另外,Card指的是WAP手機屏幕大小的網(wǎng)頁,盡管有時一個Card可能需要多屏才能顯示完,但我們也可以把它翻譯成“頁面”,不過這樣與HTML中的頁面容易混合。因此我們在這里稱之為卡片。
2.2.3 WML程序的基本結(jié)構(gòu)
以上我們簡單分析了WML的程序結(jié)構(gòu)及組成,由此大家可以對WML程序有個整體上的初步認識。下面我們給出WML程序的基本結(jié)構(gòu)。
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1xml">
<wml>
<head>
<access/>
<meta..../>
</head>
<card>
Some contents...
</card>
<wml>
該基本結(jié)構(gòu)可以分為以下幾個關(guān)鍵部分:
1)聲明。WML程序有許多Deck組成,對于每一個Deck,在其文檔開頭必須進行XML的聲明和文檔類型DOCTYPE的聲明。
XML聲明總是在文件的第一行,注意前面最好不要有空格或者還行:
<?xml version="1.0"?>
2)緊跟著是DOCTYPE聲明,注意聲明是字母的大小寫不要搞錯:
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1xml">
3)<xml>標簽。該標簽用于包含和定義WML的一個Deck。它有一個可選的xml:lang屬性來制定文檔的語言,比如<wml xml:lang="zh">表示文檔語言為中文。
4)<head>標簽。該標簽用于包含和定義Deck的相關(guān)信息。<head>標簽之間可以包含一個<access>標簽和多個<meta>標簽。
5)<access/>標簽。它的一般形式是<access domain="域" path="/路徑"/>,主要用于制定當前Deck的訪問控制信息,有兩個可選的屬性。其中,domain用來制定域,默認值為當前域,path用來制定路徑,默認值為“/”,即跟目錄。由于<access>單獨使用,所以要用“/”結(jié)尾,后面我們還會系統(tǒng)的講解WML的各種標簽,這里即使看不懂也沒關(guān)系,主要有些感性的認識就可以了。
6)<meta...>標簽。它的一般形式是<meta 屬性 content="值" scheme"格式" forua="true|false"/>,用于提供當前Deck的meta信息,包括內(nèi)存數(shù)據(jù)處理方式,以及數(shù)據(jù)傳輸方式和處理方式等。有關(guān)該標簽的詳細內(nèi)容我們后面會專門給出。
7)<card>標簽。一個Deck可以包含多個Card,每個Card的內(nèi)容可能不止一屏顯示。對于每一個Card,WML均使用<card>和</card>進行包含和定義。 <card>同時可以包含多個可選的屬性,如<card id="name" title="label" newcontext="false" ordered="true" onenterforwand="url" pmemterbackward="url" ontimer="url">。至于這些屬性的具體含義及功能,我們將在后面介紹。
相關(guān)文章
無線標記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)
無線標記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)...2007-03-03