日期:2014-05-17  浏览次数:20621 次

关于XHTML MP,XHTML Basic,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://user.zlog.cn/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环境的显示。