完成WAP
服务器的搭建和WAP浏览器的安装后,接下来就是真正“动手”的时候了——用WML语言去编写WAP网页或应用,再通过
服务器和浏览器进行调试。从本章开始,我们会系统性地学习WML语言。这一章先打基础,下一章再全面展开WML的语法、标签和规则。
2.1 WML的简单例子及编辑、测试方法
WML,全称是无线标记语言(Wireless Markup Language),它基于XML,是XML的一个子集。简单来说,它能显示文字、图像等数据,是由WAP论坛(http://www.wapforum.org)专门为无线设备提供交互界面而设计的,目前版本是1.1。这些设备包括移动电话、呼机和个人数字助理(PDA)等。
2.1.1 WML与WAP设备
要想用好WML,开发人员最好先了解一下它要服务的设备——那些支持WML的无线设备,到底有什么特点。
一般来说,这类设备有几个共同特征:
- 体积比普通个人计算机小得多;
- 内存有限,CPU性能也有限;
- 通讯带宽窄,时延还长。
拿移动电话和PDA来说,具体表现包括:
- 屏幕上通常能显示2到12个字符,每行约12个字符,而且还会留出一行用于功能按键提示;
- 支持数字和字符输入;
- 用户可以用箭头键或数字键进行选择;
- 支持ASCII可打印码;
- 通常有两个可编程功能键(Accept键和Options键),一般放在屏幕下方靠近键盘的位置;
- 还有一个Prev导航键。
之所以花篇幅介绍这些设备特征,是为了让开发者理解WML语言的设计出发点——它要解决的问题,本质上就是在资源受限的终端上,高效地呈现内容和实现交互。
2.1.2 使用文本编辑器编写WML程序
编写WML程序和写HTML一样,本质上就是纯文本编辑。你可以用任何文本编辑器,比如Windows系统自带的“记事本”。当然,也可以用专门的工具,比如Nokia WAP Toolkit(具体用法后面会提到)。这里先介绍第一种方法。
在Windows中,点击“开始” -> “程序” -> “附件” -> “记事本”,打开编辑窗口,就可以开始写代码了。举个例子,输入下面这个简单程序:
```
Hello World!!
```
输入完成后,保存为`hello.xml`文件。注意,扩展名必须是`.xml`,而不是`.txt`。
2.2 WML程序结构
上一节给出了一个简单的WML程序。有HTML编程经验的读者应该能看出来,WML和HTML在结构、形式上有很多相似之处。下面我们就结合一个实例,来拆解一下WML程序的结构和组成。
2.2.1 WML的元素和标签
在分析实例之前,有必要先说明一下WML的元素和标签。和HTML一样,WML的主要语法构成就是元素和标签。元素是符合DTD(文档类型定义)的文档组成部分,比如`title`(文档标题)、`IMG`(图像)、`table`(表格)等等。元素名不区分大小写。标签则用来规定元素的属性和它在文档中的位置,用小于号(`<`)和大于号(`>`)括起来,即“`<标签名>`”的形式。
标签分为单独出现的标签和成对出现的标签。大多数标签是成对出现的,由首标签和尾标签组成,分别称为起始标签和终止标签。首标签格式为“`<元素名>`”,尾标签格式为“`元素名>`”。成对标签用于界定元素的范围,比如`
`和``标签用于界定黑体字的范围,中间的内容会以黑体显示。单独标签的格式为“`<元素名/>`”,作用是在相应位置插入一个元素,比如`
`标签表示在该位置插入一个换行符。
2.2.2 WML程序结构形式及组成的实例分析
了解了上述知识后,我们再来看一个更完整的实例程序:
```
Welcome to....
The Nokia
Wireless Application Protocol
...
Toolkit
```
这个程序运行后,会在WAP手机屏幕上依次显示3屏信息:先显示“Welcome to ...”,然后显示“The Nokia Wireless Application Protocol ...”,最后显示“Toolkit!”。每屏都有标题“Toolkit Demo”,相邻两屏之间延时为50,单位是1/10秒,也就是5秒切换一次。
通过这个实例,可以总结出WML程序的结构形式及组成:
1. **语法**:WML和HTML极为相似,本质上仍然是一种标记语言,并且延续了XML的语法规则。具体语法会在后续学习中遇到。
2. **文件声明**:所有WML程序必须在文件开头声明XML文件类型,包括XML版本、WML文档类型、所用规范等。声明形式如下:
```
```
3. **标签**:WML中使用标签(Tag),其形式与HTML和XML中的标签完全一致。
4. **元素**:WML的元素(Element)用于描述卡片组(Deck)的标记信息或结构信息。一个元素通常由首标签、内容、其他元素及尾标签组成,具有两种结构之一:
- `<首标签>内容尾标签>`
- `<标签/>`
元素包含的内容中还可以嵌套其他元素。不包含内容的元素称为空元素,它就是一个单独的标签。
5. **属性**:WML的标签可以包含很多属性。属性用于给标签提供必要的附加信息,通常在起始标签内使用。属性内容不会被浏览器显示,只作为参数为标签提供信息。指明属性值时,需要用引号括起来,单引号或双引号都可以,通常成对嵌套使用。属性名称必须小写。例如:`
`。单引号内的属性还可以包含双引号。实体字符(如`&`、`<`、`>`、`'`、`"`)也可以作为属性值,在WML程序中显示这类字符需要特殊处理,后面会具体介绍。
6. **注释**:WML程序中可以加入注释。注释内容用于为开发人员阅读源代码提供方便,不会被浏览器显示。注释格式为``,例如:``。需要注意的是,XML程序中不支持注释嵌套。
7. **文档结构**:WML文档由“卡片(Card)”和“卡片组(Deck)”构成。一个Deck是一个或多个Card的集合。客户端发出请求后,WML会从网络把整个Deck发送到客户浏览器,用户就可以浏览Deck内包含的所有Card,而不必从网上单独下载每一个Card。程序中的第一个Card是默认可见的Card。这里需要说明一下:“Deck”原意是一副纸牌,这里借指一叠卡片,所以译为“卡片组”。“Card”指的是WAP手机屏幕大小的页面,尽管有时一个Card可能需要多屏才能显示完,但与HTML中的“页面”概念容易混淆,因此我们统一称之为“卡片”。
12下一页阅读全文
本文转载于:https://www.jb51.net/article/8388.htm 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。