曝光台 注意防骗
网曝天猫店富美金盛家居专营店坑蒙拐骗欺诈消费者
换成WML格式。但无论怎样,你也需要了解WML,这样才能将XML文档转换成WML文档。
14.3.1 怎样将第一份文档传送到电话上
同We b上的其他浏览器一样,可以从U R L上请求访问W M L文档。也同所有的H T M L浏览器
626使用XML 高级编程
下载
一样,W M L浏览器也可以通过某种途径输入U R L,其具体的实现机制则取决于浏览器。因为通
过电话键盘输入长长的U R L十分不方便,因此浏览器厂商为用户提供了配置浏览器的其他方法。
但无论怎样,电话上的网络浏览器也并不意味着你可以“打电话”访问网站并得到传输回的内
容。毕竟它还是We b,它的工作方式也同We b相似。
14.3.2 WML文档的结构
H T M L将文档分为< h e a d >和< b o d y >,整个文档作为一个网络页面同时传送。同H T M L不同,
W M L将其信息组织结构比喻为卡片组/卡片( d e c k / c a r d)。卡片组表示组成某一特定U R L上的资
源的卡片集合(卡片组的作用同H T M L页面差不多)。W M L元素在一个文档中传输一个或多个卡
片(卡片同H T M L中的帧不同的是,卡片通常不同时显示)。同单独下载许多小文档相比,在卡
片组中包括一组卡片可以节省网络时间。下面是一个W M L文档整体结构的范例:
程序清单1 4 - 3
为了更仔细地研究一下,我们从上面这个文档的头部开始看。WA P网关在文档传给移动电
话前要对其进行确认,所以文档到达网关时必须提交文档头:
为了节约篇幅,下面的例子中都不再有文档头,但它实际上是存在的。由于网关对文档进
行确认,劣质文档或无效文档会被拒绝传送给客户。因此,在将文档传给无线网络之前对其进
行校验无疑是正确的。
文档头后紧跟根元素—< w m l >,后面的< h e a d >和< t e m p l a t e >元素是可选项,因此最小的
第14章无线应用协议使用627 下载
W M L是一个只有一个卡片的文档。
这里提到的< h e a d >元素同H T M L文件中的< h e a d >元素功能相同,都包括了文档的各种信息。
H T M L文档中的< m e t a >元素包含了M e t a信息。< t e m p l a t e >元素则可以用于所有卡片共享的元素。
例如, < t e m p l a t e >元素可以指定事件绑定器—如对卡片集中所有卡片都使用的d o和o n e v e n t
(不久我们就会遇到这种情况)。在一个卡片中定义的元素可以被指定优先级,使其优先级高于
同一类型元素的优先级。
< c a r d >元素是W M L中最重要的元素。卡片中包含了确定页面内容的文本和输入元素。根据
屏幕的大小不同,每个卡片或者在一个屏幕上显示,或者在较小的屏幕上分成几个小部分显示。
下面的卡片包含两个表格域,客户可以根据其使用的设备功能强弱选择在一个屏幕上显示两个
表格域或在两个屏幕上各显示一个表格域:
程序清单1 4 - 4
每个< c a r d >元素用一个i d号识别,从而使用户可以在卡片集中的卡片之间浏览。当U R L请求
浏览一个卡片集时, 卡片的i d号被看作是片段标志( fragment identifier )。例如,
h t t p : / / w w w. w r o x . c o m / w a p / m a i n . w m l # a u t h o r将显示带有作者标志的卡片。如果一个文件中包含一
个以上的卡片并且没有片段标志,用户代理(应用程序)将会最先处理第一个卡片。
卡片的通常使用方法是:一般第一张卡片用做主卡,其余的卡片包含一些帮助信息或用户
发出请求时显示的子菜单。在H T M L网页上,所有这些信息都在同一页面上显示,如果分割成许
多页面则会导致额外的网络数据传输。卡片集实际上是一个传递众多小网页—卡片的储存器。
< c a r d >元素的t i t l e属性指明了卡片的标题。一些浏览器显示标题的方式同H T M L浏览器显示
< t i t l e >元素的方法相似—在页面的上部显示。但也有一些浏览器处理t i t l e属性的方法和H T M L
处理t i t l e属性一样—将t i t l e属性作为工具条或元素标题。但不管怎样你应该使用t i t l e属性,因
为不管它以何种方式显示,它对用户都有帮助。上面的程序的显示将如图1 4 - 4所示(具体的显
示形式随电话型号而变化)。
628使用XML 高级编程
下载
在显示屏幕小的电话上,浏览器将一个卡片分成几个叫做域的小
部分。域没有相应的元素表示,但W M L规范中指定如果有< i n p u t >或
< s e l e c t >元素,那么域就由这个元素前面的字符和元素本身组成。为
了保证浏览器对卡片的分割位置恰当,使用< f i e l d s e t >元素设定必须
一起显示的文字。o r d e r e d属性定义了卡片中各个域的相互关系,并
且可以用于在浏览器中显示卡片内容(但大部分浏览器忽略了这个
属性)。
表1 4 - 1列出了文档结构中的元素和属性。
表1 4 - 1
元素是否必须有属性
< w m l > 必须有i d
c l a s s
x m l : l a n g
< h e a d > 可选i d
c l a s s
< t e m p l a t e > 可选i d
c l a s s
o n e n t e r f o r w a r d
o n e n t e r b a c k w a r d
o n t i m e r
< c a r d > 必须有i d
c l a s s
x m l : l a n g
t i t l e
newcontext = (true|false)
ordered = (true|false)
o n e n t e r f o r w a r d
o n e n t e r b a c k w a r d
o n t i m e r
14.3.3 通用属性
同X M L的其他许多应用一样, W M L有一些在大多数元素上都定义的通用属性。在W M L中,
这些属性是i d、c l a s s和x m l : l a n g。i d属性是XML ID的一种属性类型,为卡片集中每个元素分配
一个唯一的名称。c l a s s属性将一个元素连接到一个或多个等级上。这样,多个元素可以有一个
相同的等级名称,卡片集中享有相同等级名称的所有元素可以看作是属于同一等级。这一点同
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:
XML高级编程下(41)