织梦CMS - 轻松建站从此开始!

罗索

当前位置: 主页>杂项技术>Web>

关于WML的常见问答

落鹤生 发布于 2011-06-09 09:41 点击:次 
WML代表“Wireless Markup Language”。WML就是无线标记语言(Wireless Markup Language),内置于移动设备中的微型浏览器能够解释这种标记语言。虽然它和HTML语言很相像,但WML其实是XML的一个应用子集。
TAG:

1. 简单说WML代表什么?

WML代表“Wireless Markup Language”。WML就是无线标记语言(Wireless Markup Language),内置于移动设备中的微型浏览器能够解释这种标记语言。虽然它和HTML语言很相像,但WML其实是XML的一个应用子集。

2. 什么是WML

    WML代表Wireless Markup Language,就象HTML对普通的Web浏览器一样。有人说它是基于XML,但是更准确地说WMLXML的一个应用。虽然在语法上和HTML相似,但更多的是XML。如果准备从HTMLWML,但是没有任何的XML知识,将会发现WML“非常”严格。就像HTMLWML被读取并且通过WAP设备中的浏览器解释,然后显示在屏幕上。对于WAP设备,浏览器,或者用户代理,通常叫做微型浏览器。微型浏览器的功能是受到WAP设备的限制的。
   
为什么使用WML而不是使用广泛的HTML原因是由于WAP的工作方式以及WAP是为一个“窄小”的无线世界工作的。在NetscapeOpera或者IE上显示HTML需要更强的计算能力。计算能力某种意义上是移动设备中的电能。由于移动设备中的电能是有限的,所以WML在发送给WAP设备之前,通常要经过转换和压缩。所以WAP使用的是WML
   
读者也许可能想到WML非常简单,甚至不能处理HTML中的多媒体类型。这个不是问题。标记语言(WMLHTML等等)没有操作设备的权限,例如播放声音或者显示动画。仔细地观察HTML,就会发现没有一个HTML标签能够显示动画或者播放音乐。限制是来自于运行标记语言的浏览器。毕竟在大多数情况下,是谈论移动电话。但是这个限制应该随着无线Internet的发展而逐渐取消。

3. WMLHTML有什么区别?

    虽然WML看起来十分像HTML,但是在技术上两者的差别还是很大的。WML是为微型浏览器所设计的HTML的一个子集。WML的标准定义是基于XML的。

4. Phone.com HDMLWML有什么区别?现在有电话支持 HDML?

    HDMLHand-held Devices Markup Language)是Phone.com开发的。它使得Web页面可以在移动电话上显示,其标准的公布先于WAP标准。Motorola NeopointQualcomm 等等公司的电话使用Phone.com的浏览器,它支持HDML。最新的UP.Browser支持HDMLWAP

5. 为什么使用WML而不是HTML

    首先是WAP协议要求使用WML。可能已经有能够支持HTMLWAP设备,但是那不是真正的。有一些和无线设备很像的WAP设备支持HTML,但它们也不是直接使用HTML(例如:Microsoft Mobile Explorer支持HTMLWML)。MME设备只是将两个分离的部分做到了一起。当然也有HTML的变种,例如 iMode 浏览器使用Compact HTML。简单的说,如果谈论WAP设备,那么标记语言就是WML
   
有很多理由说明选择WML而不是HTML。现在最重要的一个原因就是WMLHTML相比需要很小的带宽。随着无线技术的提高,带宽会越来越宽。这个原因可能不再是主要原因,但是在达到这么高带宽之前需要许多年的时间。
   
另外一个就是HTML需要相对来说比较强的处理器。处理器的能力意味着需要更强的能量。在无线设备中能量来自于电池。而一个低处理能力的处理器就意味着电池的使用时间可以更长。
   
另外,HTML的确需要一个很大的显示屏幕。移动电话上的屏幕显然不能满足要求。当然也许会有一个大屏幕的移动电话,但是这样它就离移动更远(也就是说越不像移动电话)。即使iMode支持彩色和一个类似HTML的显示,它的尺寸已经是你可以方便携带的最大尺寸。

6. 为什么对于无线设备要专门设计一种特别的语言才能访问Internet ?

    许多年来,HTML标记越来越丰富,越来越庞大。此外,浏览器对各种HTML标记的支持也大不相同。这种状况已经与当初想建立一个简单的标准相背离。
   
移动设备(例如:移动电话)具有小屏幕、内存少、缺少方便的输入设备和带宽窄的特点。这种状况驱使WAP讨论组发展一种新的为无线设备所使用的语言,WML就此诞生了。

7. 无线设备也能支持HTML格式吗?

    从技术的角度上来说答案是肯定的。既然HTML是为普通PC浏览器所编写的,也可以使用微型浏览器来浏览一个HTML页面,但是可能没有效果。因为移动电话不知道如何显示该文件。这样通常导致微型浏览器出现混乱。并且HTML页面通常都比较大,它会把移动设备“撑坏”的。

8. 如何将HTML转换成WML

    当考虑转换HTML时,要想到WML是为小屏幕设计的,不可能像HTML那么丰富多采。任何转换都将忽略很多HTML标记和许多内嵌的脚本。只有一些简单的HTML页面可以被满意地转换。转换可以使用工具包如:Spyglass Prism,也可以通过在线的WAP网关过滤。

9. 用什么可以浏览到WML页面?

    首先需要一个具有WAP功能的手机,例如:Nokia 71110Ericsson R320等等。用于PC机的桌面WML浏览器也很多,例如:WinWapWapMan等等。

10. 在哪里可以学到更多的关于XML的知识?

    可以访问站点:www.w3c.org/xml。在该网站上有许多关于XML的知识有详细的讲解。

11. WML的一般语法是什么?

    WML非常像XML。和HTML相比其语法规则更加严格,从而保证当微型浏览器解析和解释的时候不会有太多的错误信息。
   
HTML一样,WML使用“<”和“>”组成的格式化标签。许多标签都是以<tag>开头,以</tag>结尾。在开头或者结尾中包含的部分叫做元素。有些标签叫做空元素,只有标签,没有内容,如:<tag/>
   
许多元素有属性来描述应其中还有那些内容。属性名字必须小写,并且属性值必须使用双引号括起来。有些属性是必须的,有些是可选的。一般的属性标签格式就像:<tag attribute1="value">
   
变量可以在WML卡片中定义,它们的一般格式是 $(variablename)
   
一个WML页面有一个专门的格式,它必须以XML的文档声明为开头:

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM/DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

    所有的页面中的元素,都必须在<wml></wml>标签之间。

12. 什么是一个“deck”?

    一个WML文档有许多卡片(cards)组成。一个卡片是一系列完整的WML代码。这些卡片被称为一个“deck”。卡片和“deck”的概念就有点像HTML中的锚标记<a name="#achor1">和一个HTML页面。也就是说卡片是“deck”中的一个组成部分。也可以把“deck”称为WML中的页面。它们之间的关系可以比做一副扑克牌。整副扑克牌就是deck,而每一张牌就是card

13. 什么是WML的“deck”?

    WML的“deck”或者WML文件是指decks。每个deck包含一个或者更多的card。每个deck都以<wml>开始和结束。并且每个card都以<card>开头或者结束。
   
WML微型浏览器处理WML文件或者deck的时候,它阅读整个deck,并且在deck内的各个card之间进行导航。当装入deck的时候,deck里面所有的card都已经装入到内存中,直到浏览器装入另外的deck
   
如果熟悉 HTML中的<a name>标签。WML<card>标签将是非常类似的:

<wml>

<card id="start_menu">
...some code...
</card>

<card id="purchase">
...some more code...
</card>

</wml>

    deckcard可以按照这种方式调用:[deckname][#cardname]。如果deckname省略,那么浏览器就会查找当前内存里的cardname名字的card。如果使用了deckname#cardname,那么浏览器将装入deckname的整个deck,然后跳入到#cardname。这个和HTML的工作方式很像。

14. WML是大小写敏感的吗?

    是的!要注意WAP 1.1使用小写的标签。

15. 如何显示一个美元符号?

    使用两个在一起的美元符号来表示,即“$$”。

16. 想显示价格的格式该怎么办?

    $”是一个特殊的字符,使用“$$”来显示一个“$”。

    例如:

<p>
    The price is $$11.20
</p>

17. fieldset标签有什么作用?

    编写WML页面的时候要考虑到设备的屏幕很小。如果试图想把一个大的form在一个屏幕里面显示,就要指定那些标签保持在一个屏幕中。那么fieldset标签将这些标签捆绑在一个屏幕上。

18. postfield标签有什么作用?

    postfield标签使允许提交参数到服务器端。注意有些早期的模拟器还不支持该标签,这将给开发工作带来麻烦!

19. WML有类似HTML<mailto>标签吗?

    没有。但是你可以使用WML表单和服务端脚本来得到同样的效果。

20. 无法让<input/>格式正常工作是怎么回事?

    至少Nokia WML Reference没有讲清楚有关<input/>标签的用法。format参数控制着用户输入数据的类型和长度。
   
注意到不是所有的WAP 1.1浏览器都接受所有的格式化代码。例如:Nokia 7110就支持得不是很好。Mitsubishi Trium在处理“*f”代码的时候有点问题,“*”必须为1或者更大。专门的格式化代码如下:

A

AZ的任何大写字母,没有数字或其他字符。

a

az的任何小写字母,没有数字和其他字符。

N

任何09的数字。

X

AZ09的任何字符。

x

az09的任何字符。

M

任何字符,输入默认从大写开始。

m

任何字符,输入默认从小写开始。

*f

(星号)意味着任何数字(包括0),f是格式的代码。

nf

意味着恰好要输入的字符个数。n19f是格式代码。

\

是转义输出字符。

    格式化字符可以组合使用来表示一种特定的格式输入。但是强制一定的输入应当避免在用户出错的时候没有提示信息。如果输入是不正确的,该填写的区域一般仍保持空白,直到让用户知道应该输入什么。如果只想输入数字,使用“*N”那么将直接转跳到数字输入模式。如果只想输入大写的字符,使用“*M”转跳到大写输入模式。现举一些例子:
   
N 只接受一个数字字符。
   
*N 接受任何数字字符。
   
NN 只接受2个数字字符,不多不少。
   
ANN 接受一个大写字符(没有数字),后面跟着两个数字,不多不少。
   
X*N 表示可以接受一个字符(没有数字)后面跟着任意多的数字字符。
   
NNN\-NNN\-NNNN”表示接受美国的电话号码格式,例如:“123-456-1234”。
   
2N\:2N\:2N 表示接受时间格式,例如:“12:02:34”。
   
NNNNNNNNN 表示接受9个数字字符。
   
9N 同样表示接受9个数字字符。 

    maxlength参数控制着输入字符的总个数。

21. 如何防止一个空的field

    在大多数情况下需要知道用户确实是输入了一些内容在field中,不能让这些内容为空。这个可以通过在服务端的检测来完成,也可以通过WML来完成。
    (win2ks)

本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201106/14538.html]
本文出处:CSDN博客 作者:win2ks
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容