分析一个实例程序。程序如下:
<?xml version="1.0"?>
<!doctype wml public "-//wapforum//dtd wml 1.1//en" "http://www.wapforum.org/dtd/ wml_1.1.xml">
<wml>
<card id="card1" ontimer="#card2" title="toolkit demo">
<timer value="50"/>
<p align="center">
<br/> <br/> <br/>
<big>
<!-- write your card implementation here. -->
welcome to ...
</big>
</p>
</card>
<card id="card2" ontimer="#card3" title="toolkit demo">
<timer value="50"/>
<p align="center">
<br/> <br/>
<b>
the nokia<br/>
</b>
<u>
wireless application protocol
</u>
...
</p>
</card>
<card id="card3" title="toolkit demo">
<p align="center">
<br/> <br/> <br/>
<big>; <i>
toolkit!
</i>
</big>
</p>
</card>
</wml>
该程序运行后将在wap手机屏幕上依次显示3屏信息。先显示“welcome to ...”,然后显示“the nokia wireless application protocol...”,最后显示“toolkit!”。显示时每屏都有标题“toolkit demo”,相邻两屏之间延时为50,其单位大小为1/10秒,延时50即5秒。
通过以上示例我们可以了解到wml程序的结构形式及组成:
(1) 语法。wml的语法与html极为相似,仍然是一种标记语言,并且延续了xml的语法规则。具体的语法规则我们后面会详细介绍的。
(2) 文件声明。所有的wml程序必须在文件的开头处声明xml文件类型,包括xml的版本,wml的文档类型、所用规范等。声明形式如下:
<?xml version="1.0"?>
<!doctype wml public "-//wapforum//dtd wml 1.1//en" "http://www.wapforum. org/dtd/wml_1.1.xml">
(3) 标签。在wml语言中需要使用标签(tag),其使用形式与html和xml等标记语言中的形式是完全一致的。
(4) 元素。wml的元素(element)用于描述卡片组(deck)的标记信息及结构信息。一个元素通常由一个首标签、内容、其他元素及一个尾标签组成,具有下述两种结构之一:
<首标签> 内容 </尾标签>
或
<标签/>
元素包含的内容中还可以有元素,这些元素也是由首标签、相应内容、其他元素及尾标签组成。不包含内容的元素称为空元素,它退化成一个单独的标签。或者说,单独的标签也是一个元素。
(5) 属性。wml与xml一样,其标签可以包含很多属性。属性用于给标签提供必要的附加信息,且属性内容通常在起始标签内使用。不过,属性内容不会被浏览器显示,它只作为参数为标签提供必要的信息。
指明属性值的时候,需要把该值用引号括起来,可以是单引号或者双引号,引号通常成对嵌套使用。属性名称必须小写。例如:<card id="card1" ontimer="#card2" title="toolkit demo">。
而且,单引号的属性中还可以包含双引号的属性。实体字符也可作为属性值。实体字符是指诸如&、<、>、'、"的特殊字符,在wml程序中显示这类字符需要特殊处理,后面我们介绍具体方法。
(6) 注释。wml程序中也可以加入注释。注释内容用于给开发人员顺利阅读源代码提供方便,它不会被浏览器显示出来。注释内容在标签中以感叹号(!)引出,并用小于号(<)和大于号(>)括起来,注释内容两端各加两个减号,即采用<!--注释内容-->的形式。例如:<!-- write your card implementation here. -->。需要说明的是,wml程序中不支持注释的嵌套。
(7) 文档结构。wml文档是由“卡片(card)”和“卡片组(deck)”构成的,一个deck是一个或多个card的集合。当客户终端发出请求之后,wml即从网络上把deck发送到客户的浏览器,这时用户就可以浏览deck内包含的所有card,而不必从网上单独下载每一个card。程序中的第一个card是缺省的可见的card。
注意,deck是一副纸牌的意思,这里是指一叠卡片,所以我们本书把它翻译为“卡片组”。另外,card指的是wap手机屏幕大小的网页,尽管有时一个card可能需要多屏才能显示完,但我们也可以把它翻译为“页面”,不过这样与html中的“页面”不易区分,所以我们还是采用“卡片”的译法。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器