本页内容是《WML设计-入门篇》同时我们还提供济宁地区的网站建设,百度,雅虎,google的推广,点金,商友,等营销软件
请输入关键字:

标题搜索 内容搜索  

你现在所在的位置->首页->XML专区->WML设计-入门篇

WML设计-入门篇

时间:[2005-11-4 10:33:08]     作者:未知

WML设计-入门篇
作者:佚名    文章来源:不详    点击数:     更新时间:2005-8-6
    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原始码:
   
<wml>
<head>
<meta http-equiv="cache-control" content="max-age=0"/>
</head>
<template>
<do type="options" label="help">
<go href="help.wml"/>
</do>
</template>
<card>
This is a card.
</card>
</wml>  

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

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

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

图表 1、标的内文属性
元素 包含 
<head> 无或包含一个 
<template> 无或包含一个 
<card> 包含一个或一个以上 


这样的规格制定方式,在XML中是以Document Type Definition  DTD来定义的,因此WML也有它语法对映的DTD格,我们抽取其中制定wml标的部份来看:
<!ELEMENT wml ( head?, template?, card+ )> 


XML的文件构成,如果以分析的角度来看,便如同一个树状的资料结构: 

 

wml标包含了head、template与card三个标,每个标或字串在这资料结构中,被视为一个节点,而身为最顶端的节点-<wml>,即为整个树状结构资料的WML文件的根,这是WML文件的第一个标开头。接下来,wml标所能包含的内文可以是依顺序head、template与card标,在DTD中的语法中,你应该很容易了解它的意义与使用方法,在上面的DTD语法中ELEMENT後所接的便是欲描述的标,构成的标名旁加“?”表示“无或包含一个”,而“+”表示“包含一个或一个以上”,若旁边没加任何符号,则表示“正好一个”,你可以参考图表1来了解其间的关。 

WML的显示 

wml标中head与template是非必要性的标,我们稍後再讨论;而card标是整个WML文件内容的主要所在,如同HTML语法中的body标一般,所有可见的内容都在这里;card所能包含的文字与图型控制标,与HTML语法类似。这些文字控制标该怎麽应用呢?例如:
  <card id="main" title="Hello World">
<p>
<i>Hello WAP World.</i>
</p>
<p>
This is my first <br/><b>WML</b> example.
</p>
</card> 


下面则是WML显示幕上你可能看到的情形

card里包含了两个p标(功用在於区分段落),所以被包含的“Hello WAP world”与“This is my first WML example”便会被分段开来;而i标与b标所包含的文字分别会以斜体与粗体显示。上面所谈到的标都是文字格式化的标,与HTML类似,共有:
标 用途解释 
em 将字体强调 
strong 将字体加强强调 
i 将字体变成斜体 
b 将字体变成粗体 
u 将字体加上底线 
big 使用较大的字体 
small 使用较大的字体 


分页的文件格式

但是,card不同於body标的地方是html标只能包含一个body,而wml标却能包含一个以上的card标,这样设计上的差异主要是WML文件的显示器通常是行动电话之类的小型显示幕,受限於显示空间,而将WML文件(Deck)设计成可以包含多个页面(card)的格式。这样的设计格局:

这样的设计格局,显示出WML文件以数张牌构成,而以将文件的构成称为一副牌;因此WML的显示端,同时间只会显示一个牌面,为了牌面间的外换,WML藉由链结来达成,与HTML的内部链结切换方式一样;这样的设计无非是为了在小型的显示器上有较好的浏览效果。

在下面是一个例:
  <?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<!-- Main menu for WML examples -->
<wml>
<card id="card1">
<p>
Links Demo: 
</p>
<p>
Go to <a href="#card2">card2</a> of this deck.
<br/>
Go to another <a href="deck.wml">deck</a>.
</p>
</card>
<card id="card2">
<p>
Go back to <a href="#card1">card1</a> of this deck.
</p>
</card>
</wml> 


下面是它的执行结果,同样的,也是与WML显示器有关,呈现方式也不一定: 




a是表示超链结的标,而其属性href则是指向超链结位置,而以 "#card_id"的href值,则表示该deck中的某个id相符的card,选取这个超链结便会切换到该card;这样的切换方式也与HTML类似,所以也不难猜到你可以用href=”url_link#card” 来指向某WML中的某个card。

第一阶段的WML教学到此结束,WML与HTML不光是单方面的资料浏览功能,而是要有与HTML功能相近的表单功能来达成与使用者的双向沟通能力,下一篇教学文章我们将会把重点放在这里。

【声明】本站刊载的《WML设计-入门篇》一文如果有侵害你权益的情况,请联系我们。我们将及时采取措施。
QQ:44637339 Email:just6@163.com Tel:13355163107 Lining studios

友情链接

本页内容是《WML设计-入门篇》 返回顶部
© 2001-2017 Lining studios 济宁速创科技有限公司, All Rights Reserved
 Processed Time:62.500ms