WML2.0チュートリアル
WML2は、次の構文とセマンティクスを拡張する言語です。
- XHTML Basic [ XHTMLBasic ]
- CSS Mobile Profile [ CSSMP ]
- Unique semantics of WML1.0 [ WML1.0 ]
WML2は、携帯電話やその他のワイヤレスモバイル端末などの機能が制限されたデバイスでのプレゼンテーションとユーザーインタラクションを指定するために最適化されています。
このチュートリアルでは、Wireless Markup Language(WML)バージョン2の詳細を説明します。このチュートリアルでは、WMLのバージョン2.0をWML2と呼びます。
W3Cによって定義されたXHTMLBasicは、XHTMLの適切なサブセットであり、XMLでのHTMLの再定式化です。
WML2の基本的な目標:
WML2には5つの主要な目標があります。
Backward compatibility: WML2アプリケーションは古いデバイスでも実行されている必要があります。
Convergence with existing and evolving Internet standards: XHTML Basic [XHTMLBasic]およびCSSMobile Profile [CSSMP]
Optimisation of access from small, limited devices:WAP対応デバイスは一般に小型でバッテリー駆動であり、メモリとCPUパワーが比較的制限されています。したがって、WML2は、これらのデバイスで実行できるように十分に最適化する必要があります。
Allowance for the creation of distinct user interfaces: WAPを使用すると、ベンダーがユーザーエクスペリエンスを向上させるための最大限の柔軟性と機能を備えたMan Machine Interface(MMI)を作成できます。
Internationalisation of the architecture:WAPは、国際的に使用される一般的な文字コードを対象としています。これには、エンドユーザー向けの国際的な記号とピクトグラムセット、およびコンテンツ開発者向けのローカルで使用される文字エンコードが含まれます。
WML2ビジョン:
WML2のビジョンは、XHTMLBasicおよびCSSMobileプロファイルの構文とセマンティクスをWML1の独自のセマンティクスで拡張する言語を作成することです。ユーザーは、WML1の互換性がどのように達成されるかを認識してはなりません。
WML2言語構造:
WML2は、次のコンポーネントを備えた新しい言語です。
(1)XHTML Basic:
この要素グループは、W3Cコンバージェンス用です。一部の要素では、WML1機能を実現するためにWML拡張属性が追加されています。
(1a)XHTMLの基本要素:
abbr頭字語アドレスベースブロック引用符brキャプション引用コードdddfn 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基本要素:
body html img input meta option p select style textarea
(2)XHTMLモジュール化要素:
この要素グループは、XHTMLBasicに含まれていないXHTMLのモジュールから選択された要素で構成されます。ほとんどの要素は、WML1との互換性のために含まれています。限られたハンドセット機能に適合する拡張機能として、1つの要素が含まれています。
(2a)WML1との下位互換性のためのXHTMLモジュール化。
b big i small(プレゼンテーションモジュールから)u(レガシーモジュールから)fieldset optgroup(フォームモジュールから)
(2b)機能拡張のためのXHTMLモジュール化要素:
時間
(3)WML拡張要素:
XHTMLBasicまたはXHTMLModularizationでは同等の機能が提供されていないため、一部の要素はWML1から取得されます。WML1機能を強化するための要素が1つ含まれています。
(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
ボディ要素:
wml:newcontext属性は、ドキュメントがロードされたときにブラウザコンテキストが明確に定義された状態に初期化されるかどうかを指定します。wml:newcontext属性値が「true」の場合、ブラウザはこのカードに移動するときにブラウザコンテキストを再初期化する必要があります。
html要素:
xmlns:wml属性は、たとえばhttp://www.wapforum.org/2001/wmlのようにWML名前空間を参照します。
wml:use-xml-fragments属性は、フラグメント識別子がユーザーエージェントによってどのように解釈されるかを指定するために使用されます。goタスクとprevタスクでのwml:use-xml-fragmentsの使用の詳細については。
wml:card要素:
wml:card要素は、ドキュメント本文のフラグメントを指定します。複数のwml:card要素が1つのドキュメントに表示される場合があります。各wml:card要素は、個々のプレゼンテーションやユーザーとのやり取りを表します。
wml:card要素のnewcontext属性値が「true」の場合、ブラウザはこのカードへのナビゲーション時にブラウザコンテキストを再初期化する必要があります。
頭の要素:
この要素は、メタ要素やスタイルシートなどのドキュメントのヘッダー情報を保持します。
タイトル要素:
この要素は、ドキュメントのタイトルを付けるために使用されます
NOTE:WML開発者は、XHTMLドキュメントスタイル、つまり本文の構造を使用することも、カードのコレクションを使用することもできます。ボディ構造を使用する場合、ドキュメントはボディ要素を使用して作成されます。body要素には、ドキュメントのコンテンツが含まれています。カードのコレクションが使用される場合、ドキュメントは1つ以上のwml:card要素を使用して作成されます。
WML2タスク
WML2.0では、次のタスクが定義されています。これらのタスクはWML1.0と非常によく似ています
- 移動タスク
- 前のタスク
- ヌープタスク
- 更新タスク
WML2イベント:
WML2では、次のイベントタイプが定義されています。
Intrinsic event: ユーザーエージェントによって生成されたイベントで、WML1.0と同様の次のイベントが含まれます
- ontimer
- onenterforward
- onenterbackward
- onpick
Extrinsic event:外部エージェントによってユーザーエージェントに送信されたイベント。WML 2仕様では、外部イベントのクラスは指定されていません。WML外部イベントクラスの一例として、WTAイベントがあります。
WML2ドキュメントタイプ:
WML2ドキュメントは、MIMEメディアタイプ「application / wml + xml」で識別されます。タイプ「application / xhtml + xml」を使用して、XHTMLBasicを含む任意のXHTMLベースのマークアップ言語からドキュメントを識別できます。
DOCTYPE宣言には、XHTML Basic Formal Public Identifierを含めることができ、以下に指定するようにXHTML BasicDTDの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処理命令またはリンク要素を使用してドキュメントに関連付けることができます。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のデフォルトスタイルシート:
WML2.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要素の完全なリストへのリンクです。WMLで始まるいくつかの要素を除いて、ほとんどの要素はXHTML仕様で使用できます。これらの要素はWMLに固有です。
ここでは、XHTML仕様と同じ意味を持つすべての要素があります。
WML2タグリファレンス概要:
XHTMLとWML1.0を知っていれば、WML2.0を学ぶことは何もないと結論付けることができます。
さらに詳しく知りたい場合は、ここでWAP2.0およびWML2.0の完全な仕様を見つけることができます。