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 的完整規範

廣告

© . All rights reserved.