基礎教程WML Script語法基礎

2021-08-30 18:47:00 字數 4753 閱讀 4227

wml script是屬於無限應用協議wap應用層的一部分,使用它可以向wml卡片組和卡片中新增客戶端的處理邏輯,目前最新的版本是1.1版。wml script1.1是在歐洲計算機製造商協議會制定的ecmascript指令碼語言的基礎上,經過修改和優化而指定的。它能夠更好的支援諸如移動**類的乍頻寬通訊裝置,在wml程式設計中使用wml script可以有效的增強客戶端應用的靈活性,而且,我們也可以把wml script作為乙個工具使用,開發出功能強大的wap網路應用和無限網頁。本章我們將詳細講解wml script1.1程式設計的基礎預法制時,如基本規則、變數預資料型別、操作賦予表示式等。為了敘述上的簡便,以後我們將「wml script1.1」簡稱「wmlscript 」。

4.1 wml 程式中呼叫wml script函式

經過前兩章的學習,熟悉c語言的讀者可能會認識到,wml 的函式功能、邏輯運算功能等都是十分有限的。而wmlscript提供了豐富的函式功能,我們在wap應用開發可以使用wmlscript來增強wml程式設計。因此,wmlscript成為擴充套件wml程式設計能力的主要開發工具。

4.2 wmlscript的主要優點及其位元組碼直譯器

wmlscript具有一套定義好的位元組碼和乙個直譯器參考結構。無線網路傳輸中wmlscript的資料均以二進位制格式進行傳輸,所以,使用者可以使用乍頻寬通訊通道,從而能夠保持客戶端手機只需要最小限度的記憶體。ecmascript修改後得到的wmlscript能夠更快、更小、更容易的編譯程式為位元組碼形式。所有這些特點,是wmlscript具備了wml所不能具備的很多優點和功能。

4.2.1 使用wmlscript的主要優點

wmlscript的設計宗旨是為wmlscript系統提供一般的指令碼處理能力,使用wmlscript我們可以進一步補充基於xml的wml語言的程式設計功能,開發針對乍頻寬的網路應用及內容,如文字、影象、選擇列表等,我們可以使用簡單的格式編寫出更靈活和更具可讀性的使用者介面。wmlscript具備的wml所不能具備的優點和功能,主要包括如下幾個方面: (1)檢查使用者輸入的合法性:

(2)擴充套件使用者瀏覽器的功能,比如允許程式設計師開發手機的**呼叫、傳送簡訊息、儲存**號碼、管理**簿或sim卡等;

(3)生成使用者端的確認、提示、警告資訊或操作對話方塊,並使之快速顯示在瀏覽器上;

(4)在使用者瀏覽器的更改後,能夠對瀏覽器端的軟體和引數進行擴充套件與配置;

(5)最大程度克服客戶端的乍頻寬通訊連線限制,並提供豐富的程式功能;

(6)補充wml並使之實現針對微型移動終端裝置的多種服務,如支援高階使用者介面、增加客戶端智慧型、提供使用者瀏覽器外圍功能的訪問能力,以及在伺服器與客戶端瀏覽傳輸資料是減少頻寬占用等。

4.2.2 wmlscript的位元組碼直譯器

在wmlscript的位元組碼直譯器解釋之前,wmlscript語言編寫的文字格式的程式將被首先編譯為二進位制格式的**。編譯時,編譯器通常先將wmlscript程式分成若干個編輯單位,每個單位的程式都包含一定數量的語句行和wmlscript函式,然後,wmlscript的編譯器將按照這些編譯單位,逐一將wmlscript程式作為輸入內容,而把對應的位元組碼作為輸出內容。當使用者通過wap手機呼叫wmlscript程式時,編譯器的編碼功能即被啟用、執行。

4.3 wmlscript基本規則

wmlscript在許多基本規則方面沿用了wml的做法。不過,由於wmlscript是以c語言為藍本而指定的,所以它的語法特徵和c語言非常相像。如果大家對c語言比較熟悉,那麼學習和掌握這部分內容應當是比較容易的。

4.3.1 wmlscript與url

與wml一樣,wmlscript也沿用了www和html訪問資源的url、http等規範,並擴大了url使用的範圍。在wmlscript中,不僅超連結、檔案路徑即檔名可以作為url處理,外部函式、訪問控制資訊等也可以作為url處理。

為此,wmlscript採用了wml的變通方法,即改進html命名資源為值的方式,採用程式段錨點(fragment anchor)的形式來處理資源定位。程式段錨點根據文件url規則進行定義,並按照程式段識別符號前加井字型大小(#)的方式書寫。使用程式段錨點,wmlscript程式可以在wmlscript編譯單位內可任意指定的函式,並可在呼叫該函式的同時傳遞所需的引數。

4.3.2 詞法結構

wmlscript程式設計中的詞法結構並不複雜,我們下面就從大小寫敏感、空格、換行、注釋即保留字等方面講解相關的具體規則。

(1)內容型別。wmlscript的內容型別主要針對檔案形式和二進位制形式兩種情況,型別結構可以在伺服器端進行指定,具體形式為:

文字形式:text/vnd.wap.wmlscript;

具體指定方法我們在第4章已經介紹過,這裡不再重述。

(2)大小寫敏感。wmlscript1.1是一種大小寫敏感的指令碼語言。它所設計的各種關鍵字、變數和函式名都必須合理的使用大小寫。

(3)空格和換行。一般情況下,wmlscript程式值形式將忽略所有的空格、製表符合換行符等。但如果把這些特殊字元通過**進行表述,或者作為字串進行處理時,wmlscript將不再忽略它們。了如,字串"oct28,2001"中含有空格,該空格在執行時就不會被忽略,它與不含空格的字串"oct28,2001"是不同的。

(4)注釋。與wml程式設計一樣,在wmlscript指令碼程式中也可以加入注釋內容。注釋內容不被程式執行,且注釋不能巢狀。wmlscript的注釋方法有兩種:

其一,行注釋。即使用雙斜行號(//)引導以一行內容,這一行內容全部作為注釋內容。如:

//這是以行注釋,由雙斜槓號開始到結束都是注釋。

其二,塊選擇。即以符號「/*」開始,而以符號「/*」結束的期間所有內容都是注釋內容。如:

/*這就是塊注釋,加在中間的內容就是注釋內容*/

(5)資料型別與直接編碼。wmlscript允許將4種型別的資料直接編碼並可巢狀並可嵌如在程式之中。直接編碼的4中資料型別為:整數、浮點數、字串和布林值。另外,「無效性」值也可直接編碼」 1. 整數。當以十進位制、十六進製制或八進位制方式使用整數時,可對這類整數進行直接編碼。

程式設計序時,十進位制的數字均不以0開頭,只包含0~9的數值串;十六進製制的資料以ox或者ox開頭,只包含0~9、a~f或者a~f的字串;八進位制的數均以0開頭,只包含0~7的數字串。

2.浮點數。浮點數通常定義為含有小數點的數字,可以包含小數和指數部分。浮點數的形式較多,可以使十進位制的整數或浮點數,可以是分數,也可以是指數;但乙個浮點數必須至少有乙個數。

指數是以e或e開頭,後面跟著乙個整數。指數是以10為底冪。例如:e0時10的零次冪,例如:e0時10的另次冪,e-2時10的負2次冪集等於0.01。指數可以帶符號,正好( )或者減號(-),它們分別代表是正指數和負指數。

3.字串。字串是指定義在成對的雙引號("")或單引號(『 』)之間的內容。

由於wmlscript只允許使用成對的雙引號或但引號來定義字串,所以程式中使用乙個單引號或乙個雙引號時就會出現編譯錯誤。

考慮到有些特殊字元不能在字串中直接顯現出來,所以wmlscript提供了轉譯序列來表示這些特殊字元。

4.布林型。它只是ture和false兩個數值,用於表示wmlscript中的「真值」或「假值」。布林型資料可參與異、或等運算,具體規則我們後面介紹。

5.無效型。也稱為「空型別」,它是wmlscript支援的乙個表示無效值的量,以invalid表示。

該兩與c語言中的null類似。

4.保留字。wmlscript中定義有乙個保留字集合,含有一些表示特殊意義的單詞這些次不能另外定義,也不能最為其他識別符號。wmlscript中的保留字如下:

另外,wmlscript還為將來的版本預留了一些保留字,主要有:

case finally catch import class private const public debugger

sizeof default struct do super enum switch export throw

extends try

wmlscript還有一些沒有使用的保留字:

delete null in this lib void new with

7.識別符號。wmlscript的識別符號可以指定或命名3種元素:變數、函式和標註。識別符號不能以數字開頭,但能一段下劃線(-)開頭,而且,識別符號不能是wmlscript的保留字。例如,timeofday、speed 、quality、home_address、_myname、__、varo等都是合法的識別符號;而以數字或非短下劃線的特殊符號開頭的字串,以及保留字等都屬於不合法的標誌賦,如while、for、if、my~name、$sys、123、3piecs、take.this等。

由於wmlscript是嚴格區分大小寫的,所以字母相同但大小寫不同的識別符號不是同乙個標識,例如,work和work就是不同的識別符號。

8.命名空間。wmlscript提供了比較自由的命名空間,同一識別符號可以同時用作不同的目的。例如,作為某一函式名稱的識別符號,還可以同時用作變數名、函式引數、程式標註等,使用時他們的屬性或值等並不相互影響。在下面的簡單的例程中,mytest這一識別符號即用作了函式名,又用作了變數名、函式引數名、函式引數名、常量名。顯然,wmlscript的這一特定為我們編寫程式提供了很大的方便。

4.3.3 wmlscript程式的基本書寫規則

wmlscript程式的基本書本寫規則:

1.程式由若干語句或函式組成,函式有由若干語句組成;

3.函式體之間必須使用成對的花括號()括起來,而且函式結束時在右花括號(})的後面還要加上分號(;);函式說明部分,如函式名、函式型別、函式引數等要放在花括號()辦含內容,這類語句通常

php基礎教程 語法

php 指令碼可放置於文件中的任何位置。php 指令碼以 結尾 此處是 php php 檔案的預設副檔名是 php php 檔案通常包含 html 標籤以及一些 php 指令碼 下面的例子是乙個簡單的 php 檔案,其中包含了使用內建 php 函式 echo 在網頁上輸出文字 hello world...

php基礎教程(二) 基礎語法

1 php書寫方式 php 指令碼可放置於文件中的任何位置 php 檔案的預設副檔名是 php php 指令碼以 結尾 此處是 php php 與問號之間不能有空格 單行注釋 單行注釋 多行注釋 多行注釋 echo 2 phpinfo phpinfo 使用 phpinfo 3 echo string...

XSL基礎教程

xsl基礎教程 一 http www 128.ibm.com developerworks cn xml ccidnet xslfund index1.html xsl基礎教程 二 http www.ibm.com developerworks cn xml ccidnet xslfund inde...