WML2.0 教程

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

  • XHTML Basic [ XHTMLBasic ]
  • CSS 移动配置文件 [ CSSMP ]
  • WML1.0 的独特语义 [ WML1.0 ]

WML2 针对指定功能有限的设备(例如移动电话和其他无线移动终端)上的演示和用户交互进行了优化。

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

W3C 定义的 XHTML Basic 是 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 配置文件的语法和语义。 用户不应该知道 WML1 兼容性是如何实现的。

WML2 语言结构:

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

(1) XHTML 基础:

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

(1a) XHTML 基本元素:

a abbr 首字母缩略词 地址 基本块引用 br 标题 引用代码 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 输入元选项 p 选择样式文本区域

(2) XHTML 模块化元素:

该元素组由未包含在 XHTML Basic 中的 XHTML 模块中的精选元素组成。 包含大多数元素是为了兼容 WML1。 其中包含一个元素作为增强功能,适合有限的手机功能。

(2a) XHTML 模块化以向后兼容 WML1:

b big ismall(来自演示模块)u(来自遗留模块)fieldset optgroup(来自表单模块)

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

hr

(3) WML 扩展元素:

某些元素是从 WML1 引入的,因为 XHTML Basic 或 XHTML Modularization 中未提供等效功能。 其中包含一个用于增强 WML1 功能的元素。

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

wml:access wml:anchor wml:card wml:do wml:getvar wml:go wml:noop wml:oneevent 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 属性用于指定用户代理如何解释片段标识符。 wml的使用详情:go任务和prev任务中使用-xml-fragments。

wml:card 元素:

wml:card 元素指定文档正文的片段。 多个 wml:card 元素可以出现在单个文档中。 每个 wml:card 元素代表一个单独的演示和/或与用户的交互。

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

head 头部元素:

该元素保存文档的标题信息,如元元素和样式表等。

title 标题元素:

该元素用于放置文档标题

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

WML2 任务

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

  • 执行任务
  • 上一个任务
  • 下一个任务
  • 刷新任务

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 基本形式公共标识符,还可以包括 XHTML 基本 DTD 的 URI,如下所示:

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

WML2 样式表

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

外部样式表:

可以使用特殊的 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 元素在文档中定位样式信息。 该元素与链接一样,必须位于文档标题中。

下面显示了内部样式表的示例:

<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