XHTML对于无线开发意味着什么?
WAP2.0将XHTML指定为下一代无线访问协议的内容编写语言。XHTML Mobile Profile是XHTML的一个子集,为各种移动设备编程提供了一种多用途的和有效的方法。用这门语言编写的内容也适合在PC环境里显示。本文会探讨XHTML Mobile Profile,将其放在更大的XHTML框架里,后者包括了XHTMLMod、XHTML Basic和WML2。
XHTML、XHTMLMod和XHTML 基础
W3C已经把XHTML 1.0定义为官方的Web标示标准,从而取代了HTML。基于HTML 4.0的XHTML其实就是就入了模块化并严格遵从XML规范的HTML 4.1。通过为不同的设备类型的Web页面提供清晰的结构,XHTML作为一个XHTML的应用程序,是移动Internet和固定Internet相集成的关键一步。你可以参考我们先前的文章,以获得更多关于XHTML的信息。
W3C所推荐XHTMLMod详细说明了XHTML的抽象模块化(abstract modularization)。它能够细分和扩展XHTML,还能让XML标准规范指定定义明确的XHTML元素集,有些类型的设备需要支持这些集合。从本质上讲,XHTML Modularization按照功能把XHTML 1.0拆分成了多个抽象模块。把这些模块结合起来就能够构成像XHTML Basic这样的XHTML子集。使用XHTMLMod,你就可以通过组合XHTML模块从而构成新的文档类型,而不再需要对基本XHTML元素的排列组合实现这一点。
XHTML Basic是移动版本的XHTML 1.0。不是所有的XHTML元素都是大量移动设备的有限显示屏、内存和处理能力所需要的,这些设备包括移动电话、PDA、传呼机和顶置盒等等。XHTML Basic利用XHTML的模块化创建了一种文件类型,这种文件类型由来自XHTML 1.0的最小模块集组成。通过将这些模块集和图像、表单、基本表格和对象支持接合起来,XHTML Basic提供了一种XHTML文档类型,不仅能够为小型设备提供足够的实现方法,而且能够为这样的(小型)设备提供丰富的内容编写方法。和WAP1.x内容编写语言WML相比而言,这样的文档类型用途会更广。
XHTML Basic几乎提供了HTML移动设备专用子集(cHTML、WML和HTML 4.0移动访问的指导原则)的所有标准特性。这些特性包括对基本文档格式化、表单、超链点、基本表格、图像和meta信息的支持。从本质上讲,XHTML Basic就是去掉了诸如框架(frame)这样能力的XHTML 1.0,对于只有有限显示能力的移动设备来说,这些框架与其相关度不是很大。其他没有被包括进XHTML Basic的XHTML 1.0重要特性还有样式元素(但是你还是可以链接到外部的样式表)、脚本元素和事件元素。而且只有基本表格和表单获得了其支持。
XHTML Mobile Profile
XHTML Mobile Profile是WAP论坛为WAP2.0所定义的内容编写语言。XHTML Mobile Profile是为不支持XHTML的全部特性且资源有限的Web客户端所设计的。它以XHTML Basic为基础,加入了一些来自XHTML 1.0的元素和属性。这些内容事实上就包括了一些其他表示元素和对内部样式表的支持。和XHTML Basic一样,XHTML Mobile Profile是严格的XHTML 1.0子集。
图A显示的是XHTML 1.0、XHTML Basic和XHTML Mobile Profile三者之间的关系。和WAP层叠样式表(WAP CSS)的结合,让XHTML Mobile Profile能够为大量支持WAP2.0的移动设备的内容表示提供了多用途的环境。
XHTML 1.0、XHTML Basic和XHTML Mobile Profile三者之间的关系
Mobile Profile规范,WAP-277-XHTMLMP-20011029-a,根据XHTMLMod 所定义的模块定义了XHTML Mobile Profile的文档类型。表A和B列出了包括进XHTML Basic里的模块和元素以及其他XHTML 1.0模块,这些都是XHTML Mobile Profile文档类型。
被包括进XHTML Mobile Profile还有其它模块和元素,以及XHTML的基本元素、XHTML Mobile Profile、WAP-277-XHTMLMP-20011029-a等。
用于XHTML Mobile Profile 的MIME媒体类型是application/vnd.wap.xhtml+xml。它应该获得应有的关注,虽然XHTML Mobile Profile文档不是一定要和application/vnd.wap.xhtml+xml媒体类型相关联。可以换用Text/html。
对于相容文档(conforming document),必须有一个带有公共标识符的DOCTYPE声明。例如:
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
在媒体类型text/html被使用的时候,这个声明能够被用来辨别XHTML Mobile Profile的文档。
给XHTML Mobile Profile文档编写样式
XHTML Mobile Profile有一个主要特性没有被XHTML Basic包括进来:样式元素的使用。WAP应用程序(WAE)的用户代理能够支持支持XHTML Mobile Profile文档的样式表,这是通过支持WAP CSS(代理人)以及其他样式语言(可选)实现的。让XHTML Mobile Profile文档具有样式可以使用外部的样式表,或者使用内部的样式信息,也可以使用如下所述的内嵌样式。
和WAP CSS文档相关联
要和XHTML Mobile Profile文档的WAP CSS样式相关联,你就要使用特殊的XML处理指令或者链接元素(位于文档报头里),如下面的例子所示:
以下是代码片段:
<?xml-stylesheet href="http://xxx.xx.com/example.css" media="handheld" type="text/css" ?>
或者
<head>
<link href="example.css" type="text/css" rel="stylesheet"/>
...
</head>
把样式表信息嵌入到XHTML文档自身
要嵌入文档样式信息,你要使用样式元素(位于文档报头里),见下面的例子:
<head>
<style type="text/css">
p { text-align: center; }
</style>
...
</head>
让样式编写本地化
样式元素也可以被用来指明文档主体里单个元素的格式化,见下面的例子:
<p style="text-align: center">...</p>
WML对XHTML Mobile Profile的扩展
XHTML Mobile Profile没有包含诸如导航帮助、上下文和“onenter”事件,后者出现在WML 1.x里。WML2是XHTML Mobile Profile和一些WML特性的组和,只要使用WML命名空间(“wml:”),这些WML特性就能在WML2里使用。但是,这个WML命名空间是可选的。其结果是大多数浏览器(Openwave除外)能够支持XHTML Mobile Profile,而不需要任何WML命名空间,还能对WML 1.x提供本地支持。
结论
通过使用改善样式控制元素从而扩展XHTML Basic,XHTML Mobile Profile提供了一种环境,这种环境对于大量移动和消费类设备而言是足够灵活和高效的。XHTML Mobile Profile是XHTML 1.0的严格子集,所以用这门语言编写的内容也会适用于PC环境的显示。