WML标签速查手册

结构相关标签 语法及属性
<wml>
<wml xml:lang="lang" >
   content
</wml>

WML元素的共有属性主要有3个,即id、class和xml:lang属性。
WML的所有元素都有两个核心属性,即标识(id)和类(class)属性。它们主要用于服务器 方的信息传输。其中,id属性用于定义元素在卡片组中的唯一标识,即它的名称;class属 性用于给当前元素定义一个或更多的类(class)。与卡片组一样,类(class)也是有名字的,而 且多个元素可以使用一个类(class)名。具有相同类名的单一卡片组中的所有元素均可被看作 相同类的一个部分。类名是区分大小写的。如果在class属性列表中,一个元素具有多个唯一的类名,那么该元素可以看作这些类中的一部分。具有同一属性的多个类名必须用两个 以上的空格间隔,WML程序执行时将忽略其中多余的类名及其属性。 另外,在WML程序,所有包含文本的元素均具有“xml:lang”属性。该属性用于指定
当前元素及其属性所用的描述语言,如英国英语、美国英语、法语、德语等,并可以为用 户浏览器选择显示文本的语言提供依据。

<card>
<card id="name"
   title="label"
   newcontext= "boolean"
   style= "style"
   onenterforward= "url"
   onenterbackward= "url"
   ontimer= "url" >
content
</card>

card 元素各属性的功能及用法介绍如下:
(1) id。用于指定 card 的名字。该名字是程序导航定位的依据,可以用作程序段锚点, 比如<go href="#cardname"/>。其中的 cardname 便是由 id 指定的卡片名。
(2) title。用于为卡片指定一个简短的标题或说明信息。
(3) newcontext。用于指定 WAP 手机浏览器当用户重新进入的时候是否需要初始化卡片 中所有的内容。它有 true 和 false 两种选择,当指定 newcontext="true"时,卡片的所有内容 在用户重新进入时将进行初始化,并清除历史记录;否则,指定?? newcontext="false"时,将不进行初始化,也不清除历史记录。默认状态下的设置值为false。另外,newcontext仅当作为 go 任务的一部分时才可被执行。
(4) ordered。用于向用户手机的浏览器指明卡片内容的组织形式,以便让浏览器根据自 身特点及卡片内容组织及时安排显示布局。它有两种布尔值的设置,即 true 和 false。 当 ordered="true"时,浏览器将按照线性顺序显示卡片各区域的内容。这个线性顺序通 常是大多数用户所习惯采用的信息浏览顺序,比如发送 E-mail 信息时,我们依次需要 E-mail 收件人地址、主题及 E-mail 内容,这个逻辑顺序就属线性顺序。 当 ordered="flase"时,浏览器将根据用户选择或指定的顺序来显示内容。这种情况主要 适用于显示用户选项、无序组件或用户输入的简单数据记录等。
(5) onenterforward。onenterforward 事件仅当用户使用 go 任务或类似于 go 的任务定位 和浏览卡片时才可发生,即如果用户执行 go 任务,则浏览器就会定位<go>标签中指定超链 (href)的 URL 地址,并打开 URL 指定的卡片。card 元素中的 onenterforward 属性是 onevent 元素的一个简短格式,用于直接指定 onenterforward 事件的 URL 地址。
(6) onenterbackward。该属性可以指定其相应事件的??? URL??? 地址。如果用户浏览时执行 prev 任务,那么浏览器就会定位到该属性所指定超链(href)的 URL 地址,并打开 URL 指定 的卡片。onenterbackward 属性也属于 onevent 元素的一个简短格式。
(7) ontimer。当指定时间 timer 过期的时候,用户浏览器就根据 ontimer 属性指定的 URL 打开相应的卡片。它也属于 onevent 元素的一个简短格式。

<template>
<template onenterforward="url"
   onenterbackward="url"
   ontimer= "url" >
content
</template>
*template 元素用于为当前卡片组中的所有卡片定义一个模板,统一规定卡片的某些参数。
<head>
<head>
content
</head>

head 元素用于指定卡片组的头,即与卡片组整体有关的信息,包括 meta 数据和 access控制信息。它通过<head>和</head>两个标签进行定义.head 元素包含的内容(content)中,应至少有一次 meta 元素或 access 元素。

<access>
<access domain="domain"
   path="path" />

access 元素是由一个单独的标签即<access>标签实现的元素,用于定义 WML 整个卡片 组的操作权限,即访问控制参数。access 元素必须在 head 元素内和其他的 meta 信息一起声明,而且每个卡片组只能有一个 access 元素。
access 元素属性的功能及用法如下:
(1) domain。用于指定可对卡片组进行操作的 URL 域,默认域是当前卡片组所在的域。 domain 的目的是限制访问,用户浏览时浏览器将根据 domain 值所规定的每个子部分的值来得 出 与 之 匹 配 的 地 址 , 并 访 问 该 地 址 对 应 的 卡 片 或 事 件 。 比 如 , <access domain="mywapnet.com"/>规定了 access 的域值为 mywapnet.com,所以,用户链接到“http:// www.mywapnet.com/”时将是有效的,而链接到“http://www.mywap.com/”或“http://www.mywapnet.net/”等地址时则是无效的。
(2) path。用于指定卡片组操作的其他卡片组所在的根目录。默认目录是“/”,即当前卡片组所在的根目录。默认目录的规定使得所有在 domain 域下的卡片组都可以操作当前卡 片组。path 的值是访问时需要匹配的路径,它的工作原理与 domain 十分相似,需要与路径的每个子路径相匹配,否则均属无效。比如,<access path="/internal"/>指定了 access 的路径值为“/internal”时,则只有路径“/internal/”是有效的、符合匹配要求的,诸如“/internal-wml”、 “inter/”的其他路径则是无效的。

<meta> <meta name="name"|http-equiv="name"
   content="value"
   forua= "true | false" />

meta 元素用于定义 WML 卡片组相关的通用 meta 信息。该元素是由一个单独的标签即<meta/>标签实现的元素.
name 属性和 http-equiv 属性只能选择使用一个;content 属性是必选的,其值根据属性而定;scheme 属性目前尚不支持;forua 属性为可选属性。
各属性功能及用法说明如下:
(1) content。该属性用于指定 meta 信息的性质的值,是必选的。
(2) name。用于指定 meta 信息性质的名称。用户浏览器通常忽略已经命名的 meta 数据,网络服务器也拒绝发送包含该属性所指定 meta 数据名称的内容。
(3) http-equiv。该属性用于替代 name 属性,可将 meta 数据转为 WSP 或 HTTP 协议的响应头。
(4) forua。该属性用于指定那些开发者希望传送至用户浏览器的性质。它有 true 和 false 两个取值,如果取 false,则卡片组在发送往客户端以前必须由中间代理去除 meta 元素信息,这是因为传输的协议可能改变;若取值为 true,则 meta 数据必须如实送往用户的浏览器。默认状态下,该属性的值为 false。
(5) scheme。该属性用于指定解释 meta 信息性质值的形式或结构,具体的形式或结构因 meta 数据的类型不同而不同。



任务相关标签 语法及属性
<timer>
<timer name="variable"
   value="value" />

timer 元素用于设定一个定时器,可以延时显示卡片组、卡片,或实现 WML 程序的等 待操作,或在卡片组和卡片之间实现切换以取得动画效果。一个卡片只能使用一次 timer 元素,也就是说只能设置一个定时器。当用户进入含有定时器的卡片时,定时器即会开始工作,其时间值就会逐渐减少。timer 元素指定的时间值单位为 1/10 秒,时间值必须为正整数,当时间值减少到 0 时,定时器功能就会结束,此时,WML 将激活由 ontimer 元素指定的事件。timer 元素是由单独的<timer/>标签进行定义.

<setvar>
<setvar name="name"
   value="value" />
<anchor>

<a>
<a title="label" >
task
text
</a>
<do>
<do type="type"
   label="label"
   name= "name"
   optional= "boolean" >
task
</do>

do 元素提供了一个通用的事件处理机制,使得用户可以参与当前卡片的事件处理。它通过<do>和</do>标签将用户交互和某一个任务联系在一起。用户交互可以是用户按下的功能键、选择的菜单项,也可以是用户的声音提示。当用户激活这些交互功能时,用户浏览器就会执行与 do 元素相关联的任务。
do 元素各个属性的功能及用法讲解如下:
(1) type。用于指定 do 元素的类型(type),也即需要关联、绑定的用户交互事件,是必选属性。用户浏览器接到这些事件后,就会激活它们并执行相应的操作与处理。如果在一个卡片中定义了多个 do 元素并拥有同样 type,那么用户必须为每个 do 指定不同的事件名才行,否则就会发生判断混乱的错误。
do 元素典型的类型(type)及执行条件介绍如下:
① accept。当用户选择或按下相应功能键(ACCEPT)、选项、命令或按钮时,浏览器接受或激活当前所作选择。
② prev。激活 PREV 键时,浏览器将导航到历史记录中的前一个卡片。
③ help。激活 HELP 功能键或相应帮助按钮、命令时,浏览器显示与当前内容相关的帮助信息。
④ reset。激活 RESET 功能键或相应按钮、命令时,清除或重置当前卡片组或浏览器的状态。
⑤ options。激活 OPTIONS 功能键或相应按钮、命令时,浏览器显示与当前内容有关的选项或附加操作。
⑥ delete。激活 DELETE 功能键或相应按钮、命令时,删除当前项目或选择。
⑦ unknown。如果给出的类型不能为 do 元素所识别,则一律按照 unknown 型处理,相当于类型为空,即 type=" "。
⑧ vnd.* , VND.* 及 其 他 不 同 大 小 写 组 合 [Vv][Nn][Dd].* 。 这 种 类 型 定 义 的 都 是 vnd.co-type,用于激活供应商或用户浏览器自定义的某个特定功能,其中 co 为公司(company)名的缩写。
⑨X-*与 x-*。扩展类型,目前 WML 中还没有使用。
需要说明的是,对于 type 定义的用户交互机制,有些浏览器将该交互映射成功能按键,有些则映射成上下文独立的选项或操作。具体操作时,用户应当根据交互操作的有关
提示,或浏览器、WML 程序的有关说明选择功能键、按钮或命令。
(2) label。该属性指定的文本字符串可以标识用户的交互事件。例如,当把某一任务绑定在 ACCEPT 键上之后,并设置了 label 属性,比如 label="gome",那么浏览器就会将 label 的值“gome”显示在屏幕上;如果不指定,浏览器则会显示默认的“OK”字符串。为了保证能在较小的手机屏幕上显示出来,label 的属性值最多不能超过 6 个字符。不过这可能因 WAP 手机品牌、型号不同而稍有不同,有的手机要求最多不能超过 5 个字符。而且,如果手机浏览器不支持动态标签显示,那么它就会忽略 label 属性。
(3) name。该属性用于指定 do 元素所绑定事件的名称。如果多个 do 元素指定了相同的 name,那么它们绑定的事件同属一个。如果卡片一级与卡片组一级中的 do 元素指定了相同的事件名,那么卡片一级的事件将被优先执行,卡片组一级的事件将被忽略。
WML 规定,在同一卡片或同一模板中,不得指定具有相同事件名(name)的两个或两个以上的 do 元素。
另外,如果 name 属性值为空,则相当于没有指定 name 属性,这时 do 元素执行的事件或操作由 type 的属性值决定。
(4) optional。指定浏览器是否忽略 do 元素及其包含的任务。有两个可选值:true 和 false。如果值为 true,则浏览器将忽略当前 do 元素,即不执行它所绑定的任务。反之,若值为 false,则执行 do 元素。

<onevent>
<onevent type="type" >
task
</onevent>
<go>
<go href="url"
   sendreferer="boolean"
   method= "method"
   accept-charset= "charset"
content
</go>
go 任务是通过 go 元素来声明的,而 go 元素是通过标签进行定义的。go 元素主要用来定义浏览器需要导航的 URL 地址。如果该地址是一个 WML 卡片或卡片组的名字,则浏览器就会打开并显示相应的卡片、卡片组;否则,浏览器就会执行该 URL 指定的任务或事件等。在历史堆栈中,go 任务执行的是一个“推进(push)”操作,也就是说,它执行时浏览器浏览的 URL 地址将送入历史记录列表中,以备它用。
其中属性的功能及用法介绍如下:
(1) href。该属性用于指定目标 URL 地址,比如让浏览器显示的卡片的地址及名称等。该属性是必选的,其他属性为可选。
(2) sendreferer。该属性用于指定是否传递调用 href 所指定的 URL 的卡片的 URL,也就是当前页的 URL,即 HTTP 头中的 HTTP_REFERER。有两种选择:true 或 false。其中默认值为 false。
(3) method。与 HTML 中的表单 FORM 的 method 属性一样,该属性用于指定表单是以 get 的方式还是 post 的方式递交,以便为通用网关接口 CGI 处理。默认值为 get,但如果没有指定 method 属性,而之间存在 postfield 元素,则 WAP 手机浏览器会自动以 post 方式传递。
(4) accept-charset。当 Web 服务器处理来自浏览器的输入信息时,该属性可指定服务器进行数据编码时必须采用的字符集列表。也就是说,该属性指定的字符集将替代 HTTP 头里指定的字符集,以便作为服务器选用字符集的标准。比如,accept-charset="UTF-8,US-ASCII, ISO-8859-1"指定了 3 种字符集。
go 任务包含的内容(content)里面通常含有 postfield 和 setvar 元素.
其中,setvar 元素用于指定当触发某一事件时,给变量赋值。而 postfield 元素指定了处理用户请求时,浏览器向源服务器(origin server)传输的信息,name 和 value 属性都是必选的。
<prev>
<prev>
content
</prev>

prev 任务是由 prev 元素实现的。该元素通常是一个单独的标签即<prev/>,不过有时也 可由<prev>和</prev>一对标签进行定义。它用于指定将浏览器导航至历史堆栈中的前一个 URL?? 地址。在浏览器操作的历史堆栈中,prev 任务执行的是“取出(pop)”操作 ,将前一 URL 地址取出,并把当前 URL 地址推进历史堆栈。如果历史堆栈中没有前一 个 URL 地址,则 prev 元素不执行任何任务。

<noop>
<noop/>

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

<refresh>
<refresh>
content
</refresh>

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



控件相关标签 语法及属性
<input>
<input name="variable"
   title="label"
   type= "type"
   value= "value"
   default= "default"
   format= "specifier"
   emptyok= "boolean"
   size= "n"
   maxlength= "n"
   tabindex= "n" />
<select>
<select title="label"
   multiple="boolean"
   name= "variable"
   default= "default"
   iname= "index_var"
   ivalue= "default"
   tabindex= "n" >
content
</select>
<option>
<option title="label"
   value="value"
   onpick= "url" >
content
</option>
<optgroup>
<optgroup title="label" >
content
</optgroup>
<fieldset>
<fieldset title="label">
content
</fieldset>


输出效果标签 语法及属性
<img>
<img alt="text"
   src="url"
   localsrc= "icon"
   align= "alignment"
   height= "n"
   width= "n"
   vspace= "n"
   hspace= "n" />
<table>
<table align="alignment"
   title="label"
   columns= "n"/>
<td>
<td>content</td>
<tr>
<tr>
<td>content</td>
</tr>
<b>
<b>
text
</b>
<big>
<big>
text
</big>
<br>
<br/>
<em>
<em>
text
</em>
<i>
<i>
text
</i>
<p>
<p align="alignment"
   mode="wrapmode" />
<small>
<small>
text
</small>
<strong>
<strong>
text
</strong>
<u>
<u>
text
</u>


特殊字符 ?
&lt;

< (less than)

&gt;

> (greater than)

&apos;

' (apostrophe)

&quot;

" (quote)

&amp;

& (ampersand)

$$

$ (dollar sign)

&nbsp;

Non-breaking space

&shy;

Soft hyphen

 
posted on 2008-08-20 09:18  胡晓伟  阅读(686)  评论(0编辑  收藏  举报