WAP - WML 语法
WAP架构的最顶层由WAE(无线应用环境)组成,WAE由WML和WML脚本语言组成。
WML 脚本语言用于设计通过无线设备(例如移动电话)发送的应用程序。 这种语言照顾小屏幕和低传输带宽。 WML 是 XML 的一种应用,它是在文档类型定义中定义的。
WML 页面称为卡片组。 它们被构造为一组卡片,通过链接相互关联。 当从手机访问 WML 页面时,页面中的所有卡片都会从 WAP 服务器下载到手机上显示内容。
WML 命令和语法用于显示内容以及在卡片之间导航。 开发者可以使用这些命令在手机上声明变量、格式化文本以及显示图像。
WAP 程序结构
WML 程序通常分为两部分 − document prolog 和 body。 考虑下面的代码 −
<?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>