无线应用程序通常包括标准 HTML 和特定于浏览器的专用标记的组合代码。为了移植到基于 XML 的技术基础设施并标准化应用程序代码,World Wide Web Consortium (W3C) 开发并增强了一种新标准,叫做 Extensible Hypertext Markup Language (XHTML)。
现有标记语言如下:
· HTML —— 用于 Internet 的标记语言。
· XML —— Standard Generalized Markup Language (SGML) 的限制形式。它削减了 SGML 的许多复杂性,但保留了 SGML 的强大功能和流行特性。
· WML —— WAP 规范中描述的标记语言。该语言用于无线和手持设备。
· XHTML —— 基于 HTML 4.0,但在语言规则中组合了模块性和严格的标准化。应用程序开发人员必须在不同设备上开发符合设备的小屏幕尺寸和有限处理能力的 Web 页面。
· XHTML Basic —— XHTML 的简单版本,用于具有有限处理能力的设备,比如个人数字助理 (PDA)、智能表和寻呼机。
· XHTML Mobile Profile —— WAP 规范的标准化语言,XHTML Mobile Profile 以 XHTML Basic 为基础,并添加了诸如表示元素和内部样式表等功能。
许多人熟悉 HTML 及其在开发 Web 页面和 Web 站点方面的用途。HTML 原来是作为某重要政府项目的一部分开发的,用来在计算机之间转移数据。自 20 世纪 90 年代以来,开发人员已经用这个定义松散的标准化 HTML 创建了各种 Web 应用程序。然而,系统开发人员和架构师感兴趣的是布局和表示模块,而不仅仅是将信息从点 A 转移到点 B。XML 已经成为定义允许在系统之间交换信息的数据和层次结构的标准方法,但浏览器仍然是基于 HTML 的。XHTML 的到来增强了 XML 的语法和逻辑语言符号。
XHTML 的主要优点如下:
· 应用程序是向前兼容的,因为它们符合严格的方针和规范。
· 任何浏览器都可以访问和查看编写良好的 XHTML 应用程序,并生成一致的用户体验和流程。
· 开发 Web 应用程序不再需要一组复杂的代码段;相反,它只需要一组协商好的软件技术。设计格式良好的应用程序在更大程度上是科学,而不是粗制滥造。
与使用 HTML 相比,使用 XHTML 进行开发的主要不同点在于:
· 所有标记元素都必须为小写。
· 所有元素都必须有开始和结束标记。必须指定段落的开始和结束、缩进或元素的有序列表。
· XHTML 允许嵌套,但必须是对称的。如果对称不完整,Web 浏览器可以通融,但 XHTML 会发出错误。
|
|
网络技术通常朝着更快速度和更大数据转移能力的方向发展和移动。随着时代的发展,移动设备将能够提供更好的用户显示、内存、电池利用率和网络功能。集成两种不同的应用程序领域 —— 无线和有线的 Internet 内容 —— 是组织内部技术计划的重要策略方法。
XHTML 的许多特征使其成为无线应用程序开发的不错选择。其中的优点包括:
· 更容易的应用程序开发和维护。具有 HTML、PHP 或 Java# 语言经验的 Web 开发人员可以比较快地开始开发无线应用程序。Web 技术新开发人员可以边学习 XHTML Mobile Profile,边编写标记代码。
· 更好的性能。使用 HTML 的开发人员可以使用不确定的编码样式,但 XHTML 强制所有开发遵循固定的语法结构。例如:
Example.html
<p> Sample HTML code line one
<p> Sample HTML code line two
Example.xhtml
<p> Sample XHTML code line one </p>
<p> Sample XHTML code line two </p>
因为 HTML 允许编码样式的不确定性,所以健壮的应用程序必然是庞大而复杂的。但是,小小的移动设备无法承担这种奢侈。因为它们的内存容量有限,因此需要较小的内存占用和 CPU 能力要求。XHTML 允许实现更好的性能。
· 一致的用户外观。每个现有的手持设备都有自己的处理、内存和显示能力。用严格的 XML 语法规则开发应用程序要求所有应用程序都具有相同的外观。对于每个文档,Document Type Definition (DTD) 定义每个标记的含义和使用。
· 内容和表示的分离。XHTML 通过使用 Cascading Style Sheet (CSS) 将内容和表示层分离开。CSS 定义 Web 页面组件,比如字体、段落、文本大小和强调样式(比如粗体和斜体)。可以更改 Web 页面布局而不会影响应用程序内容,因此可以为许多设备创建一个应用程序,而不是为每个设备开发不同的布局。
· 开发 Web 和无线的能力。因为可以同时为有线和无线应用程序开发应用程序,所以开发生命周期是并行进行的。这种省时的方法能够以指数级增加无线 Internet 应用程序的数目和缩短为新系统开拓市场的时间。
· XML 开发。XHTML 定义了用于访问数据的模块化可扩展模型。应用程序开发是灵活且结构化的,可以对其进行扩展以使用其他专用标记语言,比如 SMIL、XForms 和 SyncML。
· 可更改的格式。XHTML 标准是基于 XML 的。因此,可以使用另一种基于 XML 的技术,Extensible Stylesheet Language Transformations (XSLT) 来解析和转换内容。
|
|
并非 WML 中的所有功能都存在于 XHTML MP 中。如果熟悉 WML 但不熟悉 XHTML MP,可能出现下列问题:
· 定时器。定时器允许您测量时间。它们通常用于终止会话或刷新 Web 页面的内容。定时器单位是一秒的 1/10。可以使用 <timer> 标记和 ontimer 事件在 WML 中创建定时器。不幸的是,XHTML MP 不支持 <timer> 和 ontimer,不过有解决的办法。为了达到同样的目的,可以使用 HTTP refresh 功能,如 清单 1 所示。
< head> < > content="10;URL=http://www.somedevelopmentlocation.com/" http-equiv="refresh" <meta <head>> |
· 事件。XHTML MP 不支持事件。WML 使用四种不同的事件类型:ontimer、onpick、 onenterforward 和 onenterbackward。当定时器到期并希望将特定的代码段与要执行的事件相关联时,使用 ontimer 事件。使用 onpick 事件与 WML 标记来指定选择列表中的一项。当用户以正常前进方向访问 Web 卡时,会触发 onenterforward 事件。类似地,当用户单击 Back 按钮以访问 Web 卡时,会触发 onenterbackward。在 XHTML MP 中,可以通过使用 HTTP refresh 功能容易地实现 ontimer 事件,但其他 WML 事件在 XHTML MP 中没有互补功能。结果,如果这些事件是强制执行的,则应用程序必须使用 WML。
· 卡片组和卡片。 XHTML MP 不支持 <deck> 和 <card> 元素标记。如果不熟悉概念,可以这样解释:一个或多个卡片(card)形成一个卡片组(deck),并能够通过单个请求将其下载到无线设备。然后,用户可以访问应用程序的各种页面,针对不同的卡片(即页面)作出不同的请求。在用户未知的情况下,卡片已经以批请求格式被下载。使用卡片组和卡片减少服务器请求数目,并通过限制服务器请求的往返次数提高总体性能。要在 XHTML MP 中模拟相同的功能,必须使用多部分消息。多部分消息 是一种通过在单个事务中列出所有请求来对服务器提出多个请求的方法。卡片组和卡片的使用是最大化多个无线应用程序性能的关键元素,但最终用户并不知道底层技术实现。
· 可编程软键。软键是允许编写特定函数或动作的 WML 特性。要请求任何常用的特性,用户可以单击无线设备或电话的左软键或右软键。许多 Web 应用程序把接受与在移动电话浏览器中按左软键相关联,因为左软键常用于 “是” 或 “确定”。其他类型的软键允许导航或访问 Internet。可以使用 <do> WML 元素标记来实现软键。
· 变量。XHTML MP 的未来版本可能支持变量和脚本。该功能将允许能够使用数学和复杂的编程技术(比如循环)的更复杂更高级的应用程序。
· 客户端脚本。WML 具有客户端脚本语言 WMLScript。通常用于验证用户数据,如 清单 2 所示。XHTML MP 不支持客户端脚本。可行的解决方案是在服务器上实现所有必需的功能,即不是在无线设备上验证用户数据,而是将数据发布到服务器上。如果用户数据无效(不在可接受的值范围之内),应用程序应将应用程序用户重定向到 Web 页面以更正无效的数据值。将来,XHTML 可能会包括一种客户端脚本语言,但这并不确定。
< < > } WMLBrowser.go(?answers.wml#results?): { else WMLBrowser.go(?answers.wml#exception?): data.?): the with issue some was ?There WMLBrowser.setVar(?exception?, ) test to criteria Some ( if validateMyField(data) function extern> |
· 发布数据。 锚链接 允许在不同的无线 Web 卡之间导航。当用户选择特定的锚链接时,他们访问当前或其他卡片组中的另一个 WML 卡。锚链接可用于将数据发布到应用服务器,如 清单 3 所示。
< < > the to anchor> Data Send go> value="$(identification)" <postfield method="get" <go <anchor> <br <input tutorial. Welcome name? your is What> |
因为 XHTML MP 不能用锚链接处理发布数据,所以可以使用 Submit 按钮功能,参见 清单 4。
< < > the value="Send Data" method="get" <input your MP form> p> type="submit" ><br far?<br so tutorial enjoying you Are name?<br What?s <p> action="xhtml_mp_tutorial_proc.asp" <form> |