WML2.0 教程



WML2 是一种语言,它扩展了以下内容的语法和语义

  • XHTML Basic [XHTMLBasic]
  • CSS Mobile Profile [CSSMP]
  • WML1.0 的独特语义 [WML1.0]

WML2 针对在功能有限的设备(如手机和其他无线移动终端)上指定呈现和用户交互进行了优化。

本教程详细介绍了无线标记语言 (WML) 版本 2。本教程将 WML 的 2.0 版称为 WML2。

W3C 定义的 XHTML Basic 是 XHTML 的一个适当子集,XHTML 是 HTML 在 XML 中的重新制定。

WML2 的基本目标

WML2 有五个主要目标

  • 向后兼容性:WML2 应用程序也应该在旧设备上运行。

  • 与现有和不断发展的互联网标准的融合:XHTML Basic [XHTMLBasic] 和 CSS Mobile Profile [CSSMP]

  • 优化来自小型、有限设备的访问:支持 WAP 的设备通常体积小且电池供电,并且内存和 CPU 能力相对有限。因此,WML2 应该足够优化以在这些设备上运行。

  • 允许创建不同的用户界面:WAP 使能够创建具有最大灵活性和供应商增强用户体验能力的人机界面 (MMI)。

  • 体系结构的国际化:WAP 针对国际使用常见的字符代码。这包括面向最终用户的国际符号和象形图集,以及面向内容开发人员的本地使用字符编码。

WML2 愿景

WML2 的愿景是创建一种语言,该语言使用 WML1 的独特语义扩展 XHTML Basic 和 CSS Mobile Profile 的语法和语义。用户不应该知道如何实现 WML1 兼容性。

WML2 语言结构

WML2 是一种新的语言,具有以下组件

(1) XHTML Basic

此元素组用于 W3C 融合。对于某些元素,添加了 WML 扩展属性以实现 WML1 功能。

(1a) XHTML Basic 元素

a abbr acronym address base blockquote br caption cite code dd dfn div dl dt em form h1 h2 h3 h4 h5 h6 head kbd label li link object ol param pre q samp span strong table td th title tr ul var

(1b) 带有 WML 扩展属性的 XHTML Basic 元素

body html img input meta option p select style textarea

(2) XHTML 模块化元素

此元素组由 XHTML Basic 中未包含的 XHTML 模块中的选定元素组成。大多数元素都包含在内是为了与 WML1 保持兼容。包含一个元素作为适合有限手机功能的增强功能。

(2a) 用于与 WML1 向后兼容的 XHTML 模块化

b big i small(来自演示文稿模块)u(来自旧版模块)fieldset optgroup(来自表单模块)

(2b) 用于功能增强的 XHTML 模块化元素

hr

(3) WML 扩展元素

某些元素来自 WML1,因为 XHTML Basic 或 XHTML 模块化中未提供等效功能。包含一个元素是为了增强 WML1 功能。

(3a) WML 扩展元素(用于 WML1 兼容性)

wml:access wml:anchor wml:card wml:do wml:getvar wml:go wml:noop wml:onevent wml:postfield wml:prev wml:refresh wml:setvar wml:timer

(3b) WML 扩展元素(用于功能增强)

wml:widget

WML 文档结构模块

结构模块中的以下元素用于指定 WML2 文档的结构

  • body
  • html
  • wml:card
  • head
  • title

body 元素

wml:newcontext 属性指定在加载文档时浏览器上下文是否初始化为定义良好的状态。如果 wml:newcontext 属性值为“true”,则浏览器必须在导航到此卡片时重新初始化浏览器上下文。

html 元素

xmlns:wml 属性引用 WML 命名空间,例如:http://www.wapforum.org/2001/wml。

wml:use-xml-fragments 属性用于指定用户代理如何解释片段标识符。有关在 go 任务和 prev 任务中使用 wml:use-xml-fragments 的详细信息。

wml:card 元素

wml:card 元素指定文档主体的一部分。多个 wml:card 元素可以出现在单个文档中。每个 wml:card 元素表示与用户的单独呈现和/或交互。

如果 wml:card 元素的 newcontext 属性值为“true”,则浏览器必须在导航到此卡片时重新初始化浏览器上下文。

head 元素

此元素保留文档的标题信息,如 meta 元素和样式表等。

title 元素

此元素用于放置文档标题

注意:WML 开发人员可以使用 XHTML 文档样式(即正文结构),也可以使用卡片集合。当使用正文结构时,使用 body 元素构建文档。body 元素包含文档的内容。当使用卡片集合时,使用一个或多个 wml:card 元素构建文档。

WML2 任务

WML2.0 中定义了以下任务。这些任务与 WML1.0 非常相似

  • go 任务
  • prev 任务
  • noop 任务
  • refresh 任务

WML2 事件

WML2 中定义了以下事件类型

  • 内在事件:用户代理生成的事件,包括以下与 WML1.0 类似的事件

    • ontimer
    • onenterforward
    • onenterbackward
    • onpick
  • 外在事件:某些外部代理发送到用户代理的事件。WML 2 规范未指定任何外在事件类。WML 外在事件类的一个示例可能是 WTA 事件

WML2 文档类型

WML2 文档由 MIME 媒体类型“application/wml+xml”识别。“application/xhtml+xml”类型可用于识别来自任何基于 XHTML 的标记语言的文档,包括 XHTML Basic。

DOCTYPE 声明可以包含 XHTML Basic 正式公共标识符,也可以包含 XHTML Basic DTD 的 URI,如下所示

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">

使用 WML2 的样式表

样式表可用于设置 WML2 文档的样式。样式信息可以通过三种方式与文档关联

外部样式表

可以使用特殊的 XML 处理指令或 link 元素将外部样式表与文档关联。XML 处理指令的使用也可以使用。

在以下示例中,XML 处理指令用于关联外部样式表“mobile.css”。

<?xml-stylesheet href="mobile.css" 
                    media="handheld" type="text/css" ?>

在以下示例中,link 元素用于关联外部样式表“mystyle.css”

<html>
<head>
<link href="mystyle.css" type="text/css" rel="stylesheet"/>
...
</head>
...
</html>

内部样式表

可以使用 style 元素在文档中定位样式信息。此元素与 link 一样,必须位于文档标题中。

以下显示了一个内部样式表的示例

<html>
<head>
<style type="text/css">
p { text-align: center; }
</style>
...
</head>
...
</html>

内联样式

您可以使用style属性为单个元素指定样式信息。这称为内联样式。

在以下示例中,内联样式信息应用于特定的段落元素

<p style="text-align: center">...</p>

WML2 默认样式表

这是一个 WML 2.0 的示例样式表

body, card, div, p, center, hr, h1, h2, h3, h4, h5, h6,
address, blockquote, pre, ol, ul, dl, dt, dd,
form, fieldset, object { display: block }
li      { display: list-item }
head    { display: none }
table   { display: table }
tr      { display: table-row }
td, th  { display: table-cell }
caption { display: table-caption }
th      { font-weight: bolder; text-align: center }
caption { text-align: center }
h1, h2, h3, h4, h5, h6, b, strong { font-weight: bolder }
i, cite, em, var,address { font-style: italic }
pre, code, kbd, pre { white-space: pre }
big     { font-size: larger}
small   { font-size: smaller}
hr      { border: 1px inset }
ol      { list-style-type: decimal }
u       { text-decoration: underline }

WML2 元素

这是所有 WML2 元素的完整列表的链接。大多数元素都可以在 XHTML 规范中找到,除了少数以WML:开头的元素。这些元素特定于 WML。

所有具有相同含义的元素都在此说明它们在 XHTML 规范中的含义。

WML2 标签参考

总结

我们可以得出结论,如果您了解 XHTML 和 WML1.0,那么您无需学习 WML2.0。

如果您有兴趣进一步阅读,那么您可以在此处找到 WAP2.0 和 WML2.0 的完整规范

广告