WAP 1.0端末(EZウェブ旧世代機, オープンウェーブ社海外端末)では以下のように処理されます。
WML 1.1に変換されます。
"
」は実体参照に置換えられます。ここで挙げていないタグは、全て無視されます。
lang属性(xml:lang属性も可)の値を、言語情報として取得します。
内容を文書の題名として取得します。
尚、<title>要素を記述していない場合の題名は不定な文字列となります。
<
」「>
」及び「"
」は実体参照に変換する必要があります。href属性で指定されるURLを相対URLの基準とします。
尚、正当な仕様では相対URLが出てくる前に一回だけ記述出来る事になっており、しらぎくモバイルシステムでもこれに違背した場合は相対URLの扱いを保障出来ません。
内容を含めて削除されます。
携帯電話向けのコンテンツには利用されないため、<map>要素は全部削除されます。
id属性を検出した場合、その地点を分割点(後述)とします。
<dl>, <ul>及び<ol>要素内では、以下のように扱います。
余白取りのために、リストアイテム要素で無い要素をリスト要素の直下に置いている場合、その扱いは不定になります。
これらの場合は、一番内側のリスト要素の直下になるまで閉じていない要素を閉じ(正当なリストアイテム要素を含む)、その上でリストアイテムを開始するなどします。
WML 1.1にはリスト要素が定義されておりません。
このため、要素の入れ個数に応じて行頭に「 」を適宜挿入し、必要に応じてマーカを付けるなどの措置を執っております。
全て<p mode="wrap">要素に置換されます。
また、属性に関して、以下の読替を行います。
開始タグの箇所に<br />要素が挿入され、上記の読替えによるタグは出力されません。
当然、align属性も無効になります。
その他の属性は削除されます。
<blockquote>要素の前後に、以下のメッセージが付与されます。
<blockquote>要素タグは一切出力されません。
但し、内容となるテキストに対して、行頭に必ず「> 」が付与されるようになっております。
<blockquote>要素にtitle属性が付与されていない場合は、以下の出力になります。
<p align="left" mode="wrap"> *以下引用。</p>
title属性が付与されている場合は、以下の出力になります。
<p align="left" mode="wrap"> *<i>○○</i>より。</p>
<blockquote>終了タグの直後には、以下のように出力されます。
<p align="left" mode="wrap"> *引用ここまで。</p>
上記の通り、<blockquote>要素にはその直前直後に引用を表すメッセージが自動的に付与され、これを忌避する事は出来ません。
このため、<blockquote>要素を字下げの目的で利用している場合は問題が生じ得る事をお含み置き下さい。
WML 1.1ではテキストは全て<p>要素となっていなければなりません。
<div>要素及び<center>要素は、そこから先で出力する<p>要素のalign属性値を変更する働きのみとなります。
尚、変更前と変更後で変わらない状態で<p>要素を改めて出力する場合、一旦<p>要素を閉じずにその箇所に<br />要素を出力します。
WMLでは<form>要素に対応する機能を実現する事は極めて難しいものとなっております。
このためしらぎくモバイルシステムでは、WAP 1.0端末には<form>要素は一切出力しませんでしたが、第3.180版(平成17年 9月 9日)以降から擬似的にフォーム機能を実現する処理を追加しました。
WAP 1.0端末では、入力フォームから入れられた値を変数に収納し、それを送信するクエリに反映させると言う方式を採っております。
これに関しての詳細は割愛させて頂きますが、しらぎくモバイルシステムでは以下のように処理が分かれます。
変数の初期は処理は単一のカードに変換されます。
このカードはフォームに入る前に自動的に処理されます。
また、<input type="reset">要素を指定した場合も、このカードにジャンプする事で変数が初期化されます。
フォーム本体のカードの冒頭に、クエリ送信に関する指定を記述します。
具体的には、以下のように変換されます。
WMLの<input>要素に変換されます。
有効な属性はname, value, istyleのみです。
istyle属性は値に合わせたformat属性に変換されます。
同一のname属性を持つ<input type="radio">要素を一纏めにして、<select>要素に変換します。
このとき、<input type="radio">要素直後の文字列を<option>要素の内容とします。
「はい」「いいえ」を内容とする二つの<option>要素を持つ<select>要素に変換します。
このとき、checked属性がついているものは「はい」が先行し、そうで無いものは「いいえ」が先行します。
端末のacceptソフトキーに反映させます。
具体的には<do type="accept">要素となります。
この要素の内容は<form>要素のmethod属性値などにより異なったものとなります。
また、以下の点にご注意下さい。
また、この要素はWML文書本体外に移動されるため、当該要素があった位置には「○○はACCEPTキーを押して下さい」と言う文字列が置かれます。
端末のsoft1ソフトキーに反映させます。
具体的には<do type="soft1">要素となります。
この要素の内容は変数初期化カードへのURLをhref属性値に持つ<go>要素となります。
また、以下の点にご注意下さい。
また、この要素はWML文書本体外に移動されるため、当該要素があった位置には「○○はSOFT1キーを押して下さい」と言う文字列が置かれます。
内容の連続する改行・タブ・半角空白を一纏めにして、それをvalue属性値とする<input type="text">要素に変換します。
istyle属性は有効ですが、値に合わせたformat属性に変換されます。
WMLの<select>要素に変換します。
multiple属性は無視します。
内容の<optgroup>要素の開始・終了タグは無視します。
また、内容の<option>要素でselected属性がついているものは、先頭に移されます。
WMLの<option>要素に変換します。
value属性が無い場合は、要素の内容をvalue属性値とします。
現ヴァージョンでは開始タグ・終了タグとも無視します。
但し、<input type="radio">要素及び<input type="checkbox">要素が<label>要素に含まれている場合には、当該要素の直後の文字列をこの要素の終了タグまで認識するものとします。
具体的な処理結果に関しては、別文書・WAP 1.0端末でのフォーム変換変換処理例に挙げておりますのでご覧下さい。
WAP 1.0機では、以下の制約があります。
フォームの入力欄(<input>要素など)の前後の文字列は出力されない場合があります。
確実に表示させたい場合は、フォームの入力欄とは別のブロックレヴェル要素に記述するようにして下さい。
例えば、
<p>キーワード: <input type="text" name="w"></p>
と言う記述に於いて、キーワード:
が表示されない場合があります。
この場合、
<dl>
<dt>キーワード</dt>
<dd><input type="text" name="w"></dd>
</dl>
とすると、確実に表示出来るようになります。
<p align="left" mode="nowrap">要素に変換されます。
「<p align="left" mode="nowrap"> ------------</p>」に変換されます。
尚、「-」の数は端末から送られてくる画面の行当りの文字数によります。
<br />要素に置換します。
以下の要素に関しては、<i>要素に置換されます。
また、以下の要素に関しては、<b>要素に置換されます。
name属性は分割点(後述)になります。
href属性値に関しては、以下のようになります。
https://
スキームかftp://
スキームが与えられている場合。mailto:
が与えられている場合。tel:
スキームが与えられている場合。rel="external"
」属性が付いている場合(平成17年 8月26日)。<a>要素に「rel="external"
」属性が付いている場合はサイト内の画像で無い限り、サイト外にあるリソースと見なします。
従って、「rel="external"
」属性を付けた場合、サイト内部のページであっても、当該ページを表示させるCGIのURLには変換されず、そのまま出力されます。
当該ページを表示させるCGIへのURLに変換します。
尚、フラグメント名も指定している場合は、指定されたフラグメントが付与されます。
<object>要素はtype属性が静止画像(image/gif
, image.jpeg
及びimage/png
)で且つdata属性がある場合に限り有効となります。
<object>要素で静止画像を扱う場合は、内容(次の</object>タグまでの記述)からタグを全て取去ったものをalt属性値とし、data属性値をsrc属性値とする<img>要素に変換して<img>要素処理に引き渡します。
<img>要素は、設定により以下のようになります。
強制的にブロックレヴェル要素化されます。
画像をインライン表示にする設定にしていなければ、強制的にブロックレヴェル要素化されます。
すなわち、インラインの画像は前後で強制的に改行されます。
具体的には、開いている段落/見出し要素及びアンカーを一旦閉じて、<img>要素を<p align="cneter" mode="wrap">要素の内容にして出力したあと、一度閉じた要素を再度開きます。
<img>要素外での処理は行なわれません。
尚、画像をインライン表示にする/しない設定のデフォルト設定は、以下のようになっております。
いずれの場合も設定ファイルで画像をインライン表示にする/しない設定の切替が可能になっております。
この他、src属性値に関して以下のような処理が行われます。
当該JPEG画像を機種により振分けるCGIへのURLに変換します。
当該GIF画像を機種により適切なものに変換するCGIへのURLに変換します。
テーブルに関しては、一旦<dl>要素に変換して処理されます。
WML 1.1には、フラグメントの概念がありません。
代りに、カードと言う概念があります。
この為、フラグメントIDに関しては、カード分割と言うやり方で対処するものとします。
分割された場合、分割点より前に分割されたコンテンツがあればそこへのリンクが自動的に附加されます。
同様に後にも分割されたコンテンツがあれば、リンクが生成されます。
<a>要素及び<img>要素でCGIへのURLに変換する場合、以下のようになります。
全て相対URLとなります。
CGIに引渡すリソース名の指定はクエリ値となります。
尚、実機に対してエクストラパスを用いた場合は、クエリでパラメータを指定するURLへリダイレクトとなります。
また、フラグメント名はカラー端末ではURL末尾に附加され、白黒専用端末では分割ファイルの選択用のパラメータとしてクエリに組込まれます。