WAP - WML 语法

WAP架构的最顶层由WAE(无线应用环境)组成,WAE由WML和WML脚本语言组成。

WML 脚本语言用于设计通过无线设备(例如移动电话)发送的应用程序。 这种语言照顾小屏幕和低传输带宽。 WML 是 XML 的一种应用,它是在文档类型定义中定义的。

WML 页面称为卡片组。 它们被构造为一组卡片,通过链接相互关联。 当从手机访问 WML 页面时,页面中的所有卡片都会从 WAP 服务器下载到手机上显示内容。

WML 命令和语法用于显示内容以及在卡片之间导航。 开发者可以使用这些命令在手机上声明变量、格式化文本以及显示图像。

WAP 程序结构

WML 程序通常分为两部分 − document prologbody。 考虑下面的代码 −

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">
<wml>
   <card>

   ...
   </card>
   ...more cards...
</wml>

该文本的第一行表示这是一个 XML 文档,版本为 1.0。 第二行选择文档类型并给出文档类型定义 (DTD) 的 URL。 该 DTD 给出了 WML 的完整 XML 定义。 引用的 DTD 是在 WAP 1.1 中定义的,但此标头随 WML 的版本而变化。 必须准确复制标头,以便工具包自动生成此序言。

正文包含在 <wml>...</wml> 标记对内,如上所示。 WML 文档的主体可以由以下一项或多项组成 −

  • Deck

  • Card

  • 显示内容

  • 导航说明

WML 命令

WML中使用的命令总结如下 −

格式化

命令 描述
<p> 段落
<b> 粗体
<big>
<em> 强调
<I> 斜体
<small>
<strong> 强烈强调
<u> 带下划线
<br> 换行符

插入图像

<img src="image-path/image - name" alt="Picture not available" />

使用表格

命令 描述
<table> 表的定义
<tr> 定义行
<td> 定义列
<Thead> 表格标题

变量

声明为 −

<setvar name="x" value="xyz"/>

用作 −

$ identifier or
$ (identifier) or
$ (Identifier; conversion)

表单

命令 描述
<select> 定义单个或多个列表
<input> 用户输入
<option> 定义可选列表中的选项
<fieldset> 定义一组输入字段
<optgroup> 在可选列表中定义选项组

任务元素

命令 描述
<go> 代表切换到新卡的动作
<noop> 表示什么都不应该做
<prev> 代表返回上一张卡片的动作
<refresh> 刷新一些指定的卡片变量。

事件

各种事件如下 −

命令 描述
<do> 定义 do 事件处理程序
<onevent> 定义一个onevent事件处理程序
<postfield> 定义后字段事件处理程序
<ontimer> 定义 ontimer 事件处理程序
<onenterforward> 定义一个 onenterforward 处理程序
<onenterbackward> 定义一个 onenterbackward 处理程序
<onpick> 定义 onpick 事件处理程序

示例 WML 程序

将以下 WML 代码保存到服务器上的 info.wml 中。 如果您的服务器启用了 WAP,那么您可以使用任何 WAP 设备访问此页面。

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">
<!-- WML prolog.declaration of file type and version>

<wml>
<!-- Declaration of the WML deck>
<card id="info" newcontext="true">
<!-- declaration of a card in deck>
<p align="center"><b>Information Center</b></p>
<!--paragraph declaration to display heading>
<p>
<!--paragraph declaration to display links>
<a href="Movie.wml">1. Movies info.</a>
<a href="Weather.wml">2. Weather Info.</a>
<!--declaration of links for weather and movies>
</p>
</card>
<!-- card end>
</wml>
<!-- program end>