一同事测试WAP,发现了终端对某些标签,某些属性有不支持的情况,为了确定终端是否应该支持这些标签以及属性,特意研究了下规范,并在wapforum查了一下,颇费了番周折。想想做wap这么久了,这些常识性的东东居然没有形成一个文档,实在说不过去,请教专家不得解,呵呵,自己动手,丰衣足食,主席说的是真理。
1.关于WAP2.0
什么是WAP2.0?我没有找到他的正式定义,在无线网络发展初期,为了适合于无线网络的传输以及狭小屏幕上的显示,WAP forum定义了一整套的协议,比如WTCP,WDP,WSP,WTP,WML等等,在那时,无线网络和我们平台访问的互联网之间几乎是隔绝的,一个网站如果要同时供给互联网和无线网络浏览,就需要维护两套版本。为了让两者能够兼容,WAP forum采用了跨平台的XHTML作为标记语言,这样就使得无线互联网和有限互联网可以兼容。WAP forum对WAP2.0并没有给出一个标准的定义,但是他提出了为满足WAP2.0所需要满足的规范,这些规范既包括终端的规范,也包括网关的规范,总计93个。这93个规范中,大部分1.X的协议栈已经包括,在WAP2.0中引入的有:
1)HTTP协议:相关规范是WAP-223-HTTPSM-20001213.pdf,WAP-223-HTTPSM-20001213-a.pdf,WAP-229_001-HTTP-20011031-a.pdf,WAP-229-HTTP-20010329-a.pdf
2)XHTML-MP:相关规范是WAP-277-XHTMLMP-20011029-a.pdf
3)WAP CSS:相关规范WAP-239-101-WCSS-20020430-a.pdf和WAP-239-WCSS-20011026-a.pdf
4)传输层协议:相关规范WAP-225-TCP-20010331-a.pdf
5)安全层协议(TLS):相关规范WAP-219_100-TLS-20011029-a.pdf,WAP-219-TLS-20010411-a.pdf
可见WAP2.0从协议到描述语言,逐渐向有限互联网靠拢。
中国移动很早就将网关升级成wap2.0,提供相关业务,并制定了wap2.0终端规范,规范中明确指出,WAP2.0终端必须支持XHTML MP和WCSS。对于协议栈,则要求是一个IP-->W-TCP-->TLS/SSL-->WAP-HTTP-->WAE这样的结构。
2.XHTML-MP
XHTML-MP是XHTML Mobile Profile的缩写,相应的规范是WAP-219_100-TLS-20011029-a.pdf(貌似中国移动马上要改成OMA-TS-XHTMLMP-V1_2-20050118-C.pdf)。
XHTML-MP是XHTML1.0的完全子集,他是以XHTML BASIC为基础,加入了一些来自XHTML1.0的元素和属性。规范上明确指出,XHTML-MP是XHTML Basic的超集(Superset),也就是说,XHTML MP支持所有XHTML Basic的元素和属性,他是为了那些由于资源首先而无法完全支持XHTML的元素和属性的客户端说设计的。
XHTML Basic中的元素包括:
1)structure模块:body,head,html,title
2)Text模块:abbr,acronym,address,blockquote,br,cite,code,dfn,div,em,h1,h2,h3,h4,h5,h6,kbd,p,pre,q,samp,span,strong,Var
3)Hypertext模块:a
4)List模块:dl,dt,dd,ol,ul,li
5)Basic Forms:form,input,label,select,option,textarea
6)Basic Table:caption,table,td,th,tr
7)Image:img
8)Object:object,param
9)Metainformation:meta
10)Link:link
11)Base:base
这些元素的具体定义及属性定义在[XHTML Mod]中,网址http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/。
里面有很多属性都是comon.attrib,dtd也对这个comon.attrib做了定义(5.1节),他是Core+l18N+Events+Style,具体的属性主要是id,class,title,lang,style以及Events。
比如,P标签属于text模块,我们从5.2.2节可以看到,P仅有common属性,那么P是不支持align属性的,这点同html4.0不同,html4.0中P的属性列表中还包括align属性。
再比如,table标签,从5.6.1节可以看出,除了common属性,还支持summary和width属性
除了XHTML BASIC,XHTML MP还扩展了如下元素:
1)Forms模块的部分支持(DTD中的5.5.2):支持该模块的fieldset和optgroup元素
2)Legacy模块的部分支持(DTD中的5.22节):支持OL元素(只支持start属性),支持li元素(只支持value属性)
3)Presentation模块的部分支持(DTD中的5.4.1节):支持b,big,hr,i,small元素
4)Style sheet模块支持(DTD中的5.17节):style元素
5)style属性模块支持(DTD中的5.18节):style属性(style属性定义了某个元素的风格表单,同CSS有关)