WML语法全接触.docx

上传人:b****8 文档编号:27936540 上传时间:2023-07-06 格式:DOCX 页数:44 大小:46.29KB
下载 相关 举报
WML语法全接触.docx_第1页
第1页 / 共44页
WML语法全接触.docx_第2页
第2页 / 共44页
WML语法全接触.docx_第3页
第3页 / 共44页
WML语法全接触.docx_第4页
第4页 / 共44页
WML语法全接触.docx_第5页
第5页 / 共44页
点击查看更多>>
下载资源
资源描述

WML语法全接触.docx

《WML语法全接触.docx》由会员分享,可在线阅读,更多相关《WML语法全接触.docx(44页珍藏版)》请在冰豆网上搜索。

WML语法全接触.docx

WML语法全接触

WML语法全接触

目录

一卡片、卡片组及其属性1

1.1共有属性1

1.2WML程序的文件头1

1.3wml标签1

1.4template标签1

1.5card标签2

1.6access(访问权限)标签3

1.7meta(头)标签4

二任务及其标签5

2.1go任务5

2.2prev(返回)任务5

2.3refresh(刷新)任务5

2.4noop任务6

2.5TaskShadowing(任务屏蔽)任务6

三时间及其标签7

3.1do标签7

3.2ontimer事件8

3.3onenterforward事件8

3.4onenterbackward事件8

3.5onpick事件9

3.6onevent标签9

3.7postfield标签9

四变量设置标签与变量设置的有关规定10

4.1setvar标签10

4.2变量设置10

五用户输入处理标签11

5.1input标签11

5.2select标签12

5.3option标签13

5.4optgroup标签15

5.5fieldset标签16

六锚、图像、定时器及其标签19

6.1anchor与a标签19

6.2img标签20

6.3timer标签20

七文本格式化及其标签22

7.1增强标签22

7.2br标签22

7.3p标签22

7.4td标签22

7.5tr标签23

7.6table标签23

一卡片、卡片组及其属性

标签和标签是WML的主要语法,它们决定了WML编程的基本原则。

这里我们将从WML的标签、标签、属性等方面详细讲解WML的编程方法。

读者应当了解WML标签与标签的区别。

WML的标签通常有一个首标签、内容、其它标签及一个尾标签组成。

也就说,单独的标签是一个标签,成对出现的标签与其包含的内容也构成一个标签。

标签牵涉及标签,标签又涉及属性。

我们这里从卡片、卡片组的组成、相关标签、标签技术性等编程角度进行分析和讲解。

1.1共有属性

wml标签的共有属性主要有3个:

id、class和xml:

lang属性。

wml的所有标签都有两个核心属性,即标识(id)和类(class)属性。

它们主要用于服务器方的信息传输。

其中,id属性是该标签在卡片组中的唯一标示,即它的名称;class属性用于给当前标签定义一个或更多的类(class)。

与卡片组一样,类(class)也是有名字的,而且多个标签可以使用一个类(class)名。

具有相同类名的单一卡片组中的所有标签均可被看作相同类的一个部分。

类名是区分大小写的。

如果在class属性列表中,一个标签中有多个唯一的类名,那么该标签可以看作这些类中的一部分。

具有同一属性的多个类名必须用两个以上的空格间隔,WML程序执行时将忽视其中多余的类名及其属性。

另外,在WML程序,所有包含文本的标签均具有“xml:

lang”属性。

该属性用于指定当前标签及其属性所用的描述语言,如英国英语、美国英语、法语、德语等,并可以为用户浏览器选择显示文本的语言提供依据。

1.2WML程序的文件头

合法的WML卡片组均属合法的WML文件,因此它必须包含WML的声明及文件类型的声明。

典型的WML程序的文件头包括以下两行程序:

xmlversion="1.0"encoding="gb2312"?

>

DOCTYPEwmlPUBLIC"-//wapforun//DTDWML1.3//EN""http:

//www.wapforum.org/DTD/wml_1.3.xml">

编写WML程序时,我们必须写入这两行程序,并放在程序的开始处。

其中"-//wapforun//DTDWML1.3//EN"是标准通用标记语言SGML的公共标示;"http:

//www.wapforum.org/DTD/wml_1.3.xml"是WML程序文档类型的标示。

文档类型标示也可以是"text/vnd.wap.wml"或“application/vnd.wap.wmlc”,其中前者制定WML的原文类型,后者指定WML程序编译后代码类型。

1.3wml标签

WML的wml标签用于定义一个卡片组,并通过标签包含和封装该卡片组中的所有卡片及信息。

它的语法格式如下:

lang="lang">content

其中xml:

lang="lang"用于指定文档所用语言,语言"lang"的值属于nmtoken型数据。

wml标签中包含的内容中除了文本、图像等信息之外,还可以包含head、template及card标签。

其中head、template标签如果包含的话则只可包含一次,而card标签必须至少包含一次。

1.4template标签

为了节省资源,可以把每个Card中都要用到的Task设置在模板中,供当前Deck中所有Card使用,假如个别Card不需要该模板内容,可以Override掉它(详见任务屏蔽)。

template标签用于为当前卡片组中的所有卡片定义一个模板,统一规定卡片的某些参数。

模板中的事件处理功能则可将这些参数自动应用于同一卡片组中的所有卡片。

不过,我们也可以使其中某几个卡片不采用模板规定的形式,方法是在该卡片中定义一个同名的事件来替代模板块中相应的事件。

template标签通过标签包含所需内容而实现模板功能的,其语法格式如下:

content

template标签包含的内容中,除了卡片的一般参数外,还可以包含任意多次的do标签和onevent标签。

template标签属性的功能及用法说明如下:

1)onenterforward。

该属性指定超链接一个URL地址,当用户的浏览器中进入当前卡片时,浏览器将据此打开该URL指定的卡片或事件。

2)onenterbackward。

与上一属性类似,该属性也可以指定相应卡片或事件的URL地址。

如果用户浏览时执行prev任务,那么浏览器就会打开该URL指定的卡片或事件。

3)ontimer。

指定一个URL,当指定时间timer过期的时候,浏览器根据指定的URL打开相应的卡片。

1.5card标签

WML的卡片组是由一个或多个卡片(card)构成的,每个卡片都包含有一套用户和浏览器交互操作的配置及模式。

用户对交互操作的需求是多样性的,所以卡片定义时也必须是多样性的。

为此WML提供了card标签,通过标签定义一个卡片的各种属性、包含内容。

它的语法格式如下:

content

card标签中包含的内容中除了文本、图像信息之外,还可以包含onevent、timer、do和p标签。

其中,timer标签只可使用一次,其余3种可使用多次。

而且,如果card标签包含onevent标签或timer标签的话,那么onevent标签必须放在最前面,timer标签放在onevent标签的后面,随后才可以使用do或p标签。

这个优先顺序是不能乱的。

card标签属性的功能及用法介绍如下:

1)id。

用于指定card的名字,该名字是程序导航定位的依据,可以用作程序段锚点,比如,其中的cardname便是由id指定的卡片名。

2)title。

用于为卡片指定一个简单的标题或说明信息。

3)newcontext。

用于指定当用户进入本card时,是否清除以前保留的信息,包括变量,堆栈里的历史记录,重新设置手机状态等。

它有true和false两种选择,当指定为ture时,卡片的所有内容在用户进入时将进行初始化,同时清除历史记录;指定为false时,将不进行初始化设置,也不清除历史记录。

默认状态下的设置值为false。

另外,newcontext仅当作为go任务的一部分时才可被执行。

4)ordered。

用于向用户手机浏览器指明卡片内容的组织形式,以便让浏览器根据自身特点及卡片内容组织及时安排显示布局。

它有true和false两种值,当为true时,浏览器将按照逻辑顺序显示卡片各区域的内容,这个逻辑顺序通常是大多数用户所习惯采用的信息浏览顺序;当为flase时,浏览器将根据用户选择或指定的顺序来显示内容,这种情况主要是用于显示用户选项、无序组建或用户输入的简单数据记录等。

5)onenterforward。

仅当用户使用go任务或类似于go的任务来定位和浏览卡片时onenterforward事件才可发生,即如果用户执行go任务,则浏览器就会定位标签中指定超链接的URL指定的卡片。

card标签中的onenterforward属性是onevent标签的一个简单格式,用于直接指定onenterforward事件的URL地址。

6)onenterbackward。

该属性可以指定其相应事件的URL地址。

如果用户浏览时执行prev任务,那么浏览器就会定位到该属性所指定的超链接URL地址并打开URL指定的卡片。

onenterbackward属性也属于onevent标签的一个简单格式。

7)ontimer。

当指定时间timer过期的时候,用户浏览器就根据ontimer属性指定的URL打开相应的卡片。

它也属于onevent标签的一个简单格式。

示例:

xmlversion=“1.0”encoding=“gb2312”?

>

DOCTYPEwmlPUBLIC"-//WAPFORUM//DTDWML1.3//EN""http:

//www.wapforum.org/DTD/wml13.dtd">

  

StartHere.

  

--overridethesametaskintemplate-->

CardAccept

  

CardAccept2

1.6access(访问权限)标签

access标签是由一个单独的的标签标签实现的标签,用于设置有访问当前Deck权限的列表。

如果Deck内不包含AccessElement信息,该Deck下的AccessElement处于无效状态,其他所有的Deck都可以访问该Deck。

access标签必须在head标签内和其它的meta信息一起声明,而且每个卡片组只能有一个access标签。

其语法格式如下:

……

access标签属性的功能及用法如下:

1)domain。

用于指定对卡片组进行操作的URL域,默认域是当前卡片组所在的域。

domain的目的是限制访问,用户浏览时浏览器将根据domain所规定的值来得出与之匹配的地址,并访问该地址对应的卡片或事件,其值为一个URL。

假如设置,那么而

2)path。

用于指定本卡片组操作的其它卡片组所在的根目录。

默认目录是“/”,即当前卡片组所在的根目录。

默认目录的规定使得所有在domain域下的卡片组都可以操作当前卡片组。

path的值是访问时需要匹配的路径,它的工作原理与domain十分相似,需要与路径的每个子路径相匹配,否则均属无效。

例如设置,那么"/internal/wml"将获得访问权限,而"/internal-wml"就没有。

示例:

做如下设置

那么以下几个Url具有访问权限:

以下的几个Url没有访问权限:

1.7meta(头)标签

meta标签用于定义WML卡片组相关的通用meta信息。

该标签是由一个单独的标签即标签实现的标签,其语法格式如下:

name属性和http-equiv属性只能使用一个;content属性是必选的,其值根据属性而定;scheme属性目前尚不支持;forua属性为可选属性。

各属性功能及用法说明如下:

1)content。

该属性用于指定meta信息性质的值,是不必选的。

2)name。

用于指定meta信息性质的名称。

用户浏览器通常忽略已经命名的meta数据,网络服务企业拒绝发送包含该属性所指定meta数据名称的内容。

3)http-equiv。

该属性用于替代name属性,可将meta数据转为WSP或HTTP协议的响应头。

4)forua。

该属性用于开发者指定使用其编写的代码的浏览器应该具有的性质。

它有ture和false两个取值,如果取false,则卡片组在发往客户端以前必须用中间代理去除meta标签信息,这是因为传输的协议可能改变;若取值为true,则meta数据必须如实送往用户的浏览器。

默认的状态下,该属性的值为false。

5)scheme。

该属性用于指定解释meta信息性质值的形式或结构。

具体的形式或结构因meta数据的类型不同而不同。

二任务及其标签

WML允许我们在程序中指定一些任务,当某些特定的事件激活时,即可执行这些任务,从而完成需要的操作。

例如,我们可以设定任务,当用户按下相应的功能键时,浏览器就可以打开指定的卡片组或卡片。

目前,WML提供了4个任务标签,即go、prev、noop和refresh,它们主要与do标签和onevent标签中指定的事件相响应。

本节我们就对任务的这些标签做一详细介绍。

2.1go任务

go任务是通过go标签来声明的,go标签是通过标签进行定义的。

go标签主要用来定义浏览器需要导航的URL地址。

如果该地址是一个WML卡片或卡片组的名字,则浏览器就会打开并显示相应的卡片、卡片组;否则,浏览器就会执行该URL指定的任务或事件等。

在历史堆栈中,go任务执行的是一个推进(push)操作,它执行时浏览器浏览的URL地址将送入历史记录列表中,以备它用。

go标签中可以包含任意次的setvar标签或postfield标签。

go任务的语法格式如下:

content

其中属性的功能及用法介绍如下:

1)href属性用于指定目标URL地址,比如让浏览器显示的卡片的地址及名称等。

此属性是必选的,其它属性为可选。

2)sendreferer属性用于指定是否传递调用用href指定URL的卡片(即本卡片)的URL,也是当前页的URL,即HTTP头中HTTP_REFERER。

有两种选择:

true或false。

其中,默认值为false。

3)method属性用于指定表单是以get的方式还是post的方式递交,以便通用网关接口CGI处理。

默认值为get,但如果没有指定method属性,而之间存在postfield标签,则WAP手机浏览器会自动以post方式传递。

4)accept-charset属性可指定当web服务器处理来自浏览器的输入信息时,服务器必须采用的字符集列表。

也就是说,该属性指定的字符集替代HTTP头里指定的字符集,以便作为服务器选用字符集的标准。

2.2prev(返回)任务

prev任务是由prev标签实现的。

该标签通常是一个单独的标签,不过有时也可由一对标签进行定义。

它用于指定将浏览器导航至历史推栈中的前一个URL地址。

在浏览器操作的历史推栈中,prev任务执行的是“取出(pull)”操作,将前一个URL地址取出,并把当前URL地址推进历史推栈。

如果历史推栈中没有前一个URL地址,prev标签不执行任何任务。

prev任务的语法格式为:

content

在后一语法格式中,prev标签包含的内容里面一般是setvar标签,具体的用法随后介绍。

2.3refresh(刷新)任务

refresh任务由refresh标签声明,它用于刷新当前的卡片,对卡片内指定的变量进行更新。

其语法格式为:

content

其中包含的内容中一般有setvar标签,其语法格式为,它可指定更新的变量名name,即更新的变量值value。

另外,refresh标签也可以不包含setvar标签,而通过时间限制(timer标签)对卡片进行定时刷新。

2.4noop任务

noop任务由noop标签进行声明,表示什么也不做,是一个空操作,在替代卡片组级的do标签时十分有用。

该标签是一个单独的标签,即标签。

其语法格式为:

noop标签没有属性,下面的简单程序中就包含了noop标签实现得空任务操作:

2.5TaskShadowing(任务屏蔽)任务

WML的Task有两个级别,Deck级和Card级。

通常人们还习惯把设置在某些条件中的任务称为第三级,在这里先不讨论,后面有专门的描述。

DeckLevel:

把通用的Task设置在template中,这个Deck中所有的Card都自动继承并使用这些task。

CardLevel:

只在当前的Card中有效,并替换掉DeckLevel的相同属性的Task。

示例:

  

--上面是一个deck级任务-->

  

Hello,thisisatest

    thesecond

  

--下面这个Card用noop屏蔽了Deck级的任务-->

  

nothinghappendhere

三时间及其标签

WML提供了几个标签,专门用于处理用户浏览器的导航和事件,用户可以利用这些标签给某任务指定关联事件,那么当事件触发时,浏览器就会执行相应的任务,比如URL导航就是通过事件实现的。

而且,事件可以和一个需要完成的任务捆绑在一起。

事件捆绑时一般是通过几种标签及其标签声明来实现的,如go、do和onevent等标签。

下面我们就讲解WML的事件标签及事件。

3.1do标签

do标签提供了一个通用的事件处理机制,使得用户可以参与当前卡片的事件处理。

通过标签将用户交互和某一个任务联系在一起。

用户交互可以是用户按下的功能键、选择的菜单项,也可以是用户的声音提示。

当用户激活这些交互功能时,浏览器就会执行与do标签相关的任务。

其语法格式如下:

task

其中task是与do标签关联的动作,也是条件激活时浏览器即将执行的内容,比如任务为:

在do标签中,用户必须绑定且只能绑定go、prev、noop和refresh四种任务中的一个任务。

go标签用于定位到指定的URL地址,prev标签用于定位并打开前一操作或任务,noop为空操作,refresh用于刷新当前卡片组或任务,有关他们的详细用法后面会陆续介绍。

do标签可以用于卡片一级,也可用于卡片组一级。

当用于卡片一级时,do标签必须包含在card标签中;而用于卡片组一级时,do标签必须包含在template标签中,由此定义的do标签将同时应用于当前卡片组的所有卡片。

此时如果某个卡片不想应用模板中的do标签及其任务,则需使用同名事件处理来替代模板中的do标签的事件处理。

另外,含有空操作任务的do标签,不论它是否被激活,它都不会传送或显示到用户的浏览器中,这在一定程度上可以加快浏览器的工作效率,因为服务器端体它抛弃了一些空任务的判断。

do标签各个属性的功能及用法讲解如下:

1.Type用于指定do标签的类型,也即需要关联、绑定的用户交互事件的类型,是必选属性。

用户浏览器接到这些事件后,就会激活它们并执行相应的操作与处理。

如果在一个卡片中定义了多个do标签并拥有同样type,那么用户必须为每个do指定不同的事件名才行,否则就会发生判断混乱的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 起诉状

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1