WML设计-入门篇    
WML设计-入门篇

Wireless Markup Language - WML是WAP中用来描述与展现资料用的语言,如同HTML与HTTP协定间的定位一般;如果你熟悉HTML相信你会很快入手并爱上它

WML与XML

WML是类似HTML的标语言,不同的是WML基础是Extensible Markup Language (XML),而非HTML的基础Standard Generalized Markup Lanuage (SGML),不过XML也正是SGML的变形;本文我们不讨论SGML与XML的差异,只说明撰写WML所需要的XML基础知识,并首先,我们先来看看下面这个基本的WML原始码:







This is a card.



以"<"与">"所构成的语法,是XML的基本文法,而以<标>开头,包含内文,再以结束的格式,我们称之为标-Tag,XML的基本元素;由於构成WML的语法是基础於XML,因此它与以SGML的HTML有着明显不同,它是大小写有别的,并且大部份的标名称是以小写为主,因此不等於,你也不能以构成一个标元素。而所有的标,若无成对,也就是只有开头的单对标,必须以<标/>格式,表示自已是开头也是结尾,例如HTML中的
在WML就必须是


既然称标为元素,标就如同细胞,集合而构成WML文件,再构成WAP软体系统,而XML的地位就如同DNA一般,定义了所有元素的基本可能型式。首先我们来谈谈WML的DNA-XML的概念。首先,在XML中标是由一个名称构成,例如,我们就称之为card标,视它为一个基本单位-元素,而每个标开头与结尾之间,我们称之为内文;内文之中,可能包含两种基本常见的元素-标与字串;利用标中能再包含标或字串的特性,虽然简单,但却可以构成许多杂的XML文件,如同细胞虽简单,但却构成了杂的人类一般。虽然标如同细胞,同类的细胞大致相同,但是为了能有弹性的特色变化,XML语法中允许你利用属性值(attribute)给予标更细节的说明,例如前面的例子中的meta标使用中,便使用到了http-equiv与content两个属性值;所以你应该很容易了解标属性值的语法便是在开头标的<>内部指定,以空白做为格的“键名-键值”(key-value)对构成,键值必须以双引号或单引号左右包括起来以示区别;在WML规中,标中的某些属性值是必须的,否则是错误的文法,例如前面例子中的go标的href属性。不要将HTML中允许简化而不在键值左右加上引号的坏习惯带来,这在XML文法中是不允许的。

XML虽然规了标的组合方式,但是WML规格会给允每个具有义意的标(如同前面的例中的wml、template、card,等等...)一定的规格,也就是说什麽样的标有什麽样的意义,标能包含什麽样的标,都有其规存在,而不是杂乱无章的;例如,我们拿前面的WML原始码例来看,WML对wml所能包含的内文规就如同以下:

图表 1、标的内文属性
元素 包含
无或包含一个