WAP - WML 语法



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

WML 脚本语言用于设计发送到无线设备(如手机)上的应用程序。此语言考虑了小屏幕和低带宽传输的特点。WML 是 XML 的一种应用,在文档类型定义中定义。

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

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

WAP 程序结构

WML 程序通常分为两部分:文档序言主体。考虑以下代码:

<?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> 定义 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>
广告