- WML 教程
- WML - 首页
- WML - 概述
- WML - 环境
- WML - 语法
- WML - 元素
- WML - 注释
- WML - 变量
- WML - 格式化
- WML - 字体
- WML - 图片
- WML - 表格
- WML - 链接
- WML - 任务
- WML - 输入
- WML - 提交数据
- WML - 服务器脚本
- WML - 事件
- WML - 定时器
- WML - 模板
- WML - DTD
- WML2 - 教程
- WML 参考
- WML - 实体
- WML - 标签参考
- WML 有用资源
- WML - 快速指南
- WML - 有用资源
- WML - 讨论
WML - 概述
WAP(无线应用协议)架构的最顶层由WAE(无线应用环境)组成,WAE包含WML和WML脚本语言。
WML代表Wireless Markup Language(无线标记语言)
WML是XML的一种应用,它在文档类型定义中定义。
WML基于HDML,并进行了修改,以便可以与HTML进行比较。
WML考虑了小型屏幕和低带宽传输。
WML是在WAP规范中定义的标记语言。
WAP网站是用WML编写的,而网站是用HTML编写的。
WML与HTML非常相似。两者都使用标签,并以纯文本格式编写。
WML文件的扩展名为“.wml”。WML的MIME类型为“text/vnd.wap.wml”。
WML支持客户端脚本。支持的脚本语言称为WMLScript。
WML 版本
WAP论坛发布了最新版本的WAP 2.0。WAP 2.0中定义的标记语言是XHTML Mobile Profile (MP)。WML MP是XHTML的子集。一个名为WCSS(WAP CSS)的样式表已与XHTML MP一起推出。WCSS是CSS2的子集。
大多数新发布的手机型号都支持WAP 2.0。因为WAP 2.0向后兼容WAP 1.x,所以支持WAP 2.0的移动设备可以显示XHTML MP和WML文档。
WML 1.x是一种较早的技术。然而,这并不意味着它没有用,因为许多只支持WML 1.x的无线设备仍在使用。WML的最新版本是2.0,它是为了向后兼容而创建的。因此,WAP网站开发者无需担心WML 2.0。
WML 卡组和卡片
HTML和WML之间的一个主要区别在于,HTML的基本导航单元是页面,而WML的基本导航单元是卡片。一个WML文件可以包含多个卡片,它们构成一个卡组。
当从手机访问WML页面时,页面中的所有卡片都将从WAP服务器下载。因此,如果用户转到同一卡组的另一个卡片,移动浏览器无需向服务器发送任何请求,因为包含该卡组的文件已存储在无线设备中。
您可以在卡片中放置链接、文本、图像、输入字段、选项框和许多其他元素。
WML 程序结构
以下是WML程序的基本结构
<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" "http://www.wapforum.org/DTD/wml12.dtd"> <wml> <card id="one" title="First Card"> <p> This is the first card in the deck </p> </card> <card id="two" title="Second Card"> <p> Ths is the second card in the deck </p> </card> </wml>
这行文本的第一行说明这是一个XML文档,版本为1.0。第二行选择文档类型并提供文档类型定义(DTD)的URL。
一个WML卡组(即页面)可以包含一个或多个卡片,如上所示。我们将在后续章节中详细了解WML文档结构。
与HTML 4.01 Transitional不同,文本不能直接包含在<card>...</card>标签对中。因此,您需要在<p>...</p>中放入内容,如上所示。
WAP 网站设计注意事项
无线设备的显示屏和键盘大小有限。因此,在设计WAP网站时,务必考虑这一点。
在设计WAP网站时,您必须确保内容简洁易用。您应始终记住,没有标准的微浏览器行为,并且数据链路可能相对较慢,大约为10Kbps。但是,使用GPRS、EDGE和UMTS,根据您所在的位置,这种情况可能不会持续很长时间。
以下是设计服务时应牢记的一般设计技巧
将WML卡组和图像大小保持在1.5KB以下。
保持文本简短且有意义,并尽可能预先编码选项,以最大限度地减少用户数据输入的痛苦体验。
保持URL简短且易于记住。
最大限度地减少菜单级别,以防止用户迷路以及系统速度变慢。
使用标准的布局标签,例如<big>和<b>,并以逻辑方式组织您的信息。
不要过度使用图形,因为许多目标设备可能不支持它们。