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