H"リンク端末での処理。

H"リンク端末では以下のようにオープンネットコンテンツに変換されます。

テキスト処理。

一般。

  • 「<」は仕様に従って「<<」に置換えられます。
  • <pre>要素外での連続する空白, タブ及び改行文字は、全て半角空白一個に纏められます。

HTML文書のタグ変換処理。

ここで挙げていないタグは、全て無視されます。

1. <html>要素開始タグ。

lang属性(xml:lang属性も可)の値を、言語情報として取得します。

  • デフォルトの言語は日本語と見做しております。
  • 現状では、日本語と英語にしか対応しておりません。日本語以外は全て英語のメッセージとなります。
  • <html>要素以外のlang属性は全て無効です

2. <title>要素。

内容を文書の題名として取得します。

尚、<title>要素を記述していない場合の題名は不定な文字列となります。

3. <body>要素開始タグ。

text, bgcolor, link各属性値を、基本表示色のデータとして取得します。

text, bgcolor両属性値は文書本文冒頭に出力する<BODY>要素で指定する前景色, 背景色として、link属性値は<a>要素で表されているアンカーを表示する際の色として利用されます。

  • <BODY>要素はオープンネットコンテンツの要素で、文書の本文冒頭に「<BODY=前景色;BG=背景色>」と記述します。
  • オープンネットコンテンツではカラーコードは十六進六桁に限られますが、W3Cが定めている標準カラー名は十六進六桁に変換されて処理されます。

尚、これらの値は予めスクリプト側でもiモード・ソフトバンク在来機向けに設定出来ますが、<body>要素での指定が優先されます。

どちらでも設定されていない場合、背景色は白, 前景色は黒, 及びリンク色は青がデフォルトとして設定されます

4. <base>要素。

href属性で指定されるURLを相対URLの基準とします。

尚、正当な仕様では相対URLが出てくる前に一回だけ記述出来る事になっており、しらぎくモバイルシステムでもこれに違背した場合は相対URLの扱いを保障出来ません。

6. <map>要素。

携帯電話向けのコンテンツには利用されないため、<map>要素は全部削除されます。

7. id属性。

id属性を検出した場合、その地点を分割点(後述)とします。

8. リスト要素。

<dl>, <ul>及び<ol>要素内では、以下のように扱います。

内容は全てリストアイテム要素となるようにします。
余白取りのために、リストアイテム要素で無い要素をリスト要素の直下に置いている場合、その扱いは不定になります。
  • 端末によって無理矢理リストアイテムにされたり当該要素を削除されたりします。
リストアイテムの開始タグが、リスト要素の直下に無い場合。
リストアイテムの終了タグが正しく終わっていない場合。
これらの場合は、一番内側のリスト要素の直下になるまで閉じていない要素を閉じ(正当なリストアイテム要素を含む)、その上でリストアイテムを開始するなどします。
  • この為、仕様で認められているリストアイテム要素の終了タグ省略も可能になります。
実際の扱い。
オープンネットコンテンツにはリスト要素が定義されておりません。

このため、要素の入れ個数に応じて行頭にホワイトスペースを適宜挿入し、必要に応じてマーカを付けるなどの措置を執っております。

9. <h○>要素, <p>要素, <address>要素及び<pre>要素。

全て前後に改行文字を入れます。

また、属性は全て無視されます。

尚、<h○>要素に関しては、表示色及びテキスト配置を予めスクリプト設定で指定でき、表示色を指定している場合は自動的に要素値?とする<C>要素が付与され、テキスト配置が指定されている場合は自動的にalign属性が付与されます。

  • <C>要素は、オープンネットコンテンツの要素で「<C=XXXXXX></C>(XXXXXXは文字の表示色を六桁の十六進数)」と表します。
  • カラーコードについては、十六進数六桁しか受付けないため、W3C標準のカラー名はカラーコードに変換するようにしております(例:<font color="red"><C=FF0000>)。

10. <blockquote>要素。

<blockquote>要素の前後に、以下のメッセージが付与されます。

  • <html>要素にてlang属性値に「ja」を含んでいない場合は、以下のメッセージは英語になります。

<blockquote>要素タグに対応するものは一切出力されません。

但し、内容となるテキストに対して、行頭に必ず「> 」が付与されるようになっております

  • <bloakquote>要素を字下げの機能を実現する目的で使わないようにして下さい

<blockquote>開始タグ直前。

<blockquote>要素にtitle属性が付与されていない場合は、以下の出力になります。

 *以下引用。

title属性が付与されている場合は、以下の出力になります。

 *○○より。
  • 但し、<cite>要素に関する表示色をスクリプト設定で指定している場合は、以下のようになります。
     *<C=XXXXXX">○○より。

<blockquote>終了タグ直後。

<blockquote>終了タグの直後には、以下のように出力されます。

 *引用ここまで。

重要事項。

上記の通り、<blockquote>要素にはその直前直後に引用を表すメッセージが自動的に付与され、これを忌避する事は出来ません。

このため、<blockquote>要素を字下げの目的で利用している場合は問題が生じ得る事をお含み置き下さい。

11. <div>要素, <center>要素及び<marquee>要素。

改行文字が出力されます。

属性などは一切無視されます。

12. <form>要素。(平成18年 1月23日)

H"リンクでは<form>要素に対応する機能を実現する事は極めて難しいものとなっております。

このためしらぎくモバイルシステムでは、H"リンクには<form>要素は一切出力しませんでしたが、第3.728版(平成18年 1月23日)以降から擬似的にフォーム機能を実現する処理を追加しました。

フォーム機能の概要。

まず、H"端末では端末側サーヴァはCGI/WWWサーヴァに対して常にgetメソッドでアクセスします。

従いまして、postメソッドを実現する事は出来ません

  • CGIサーヴァがソケット機能を用いれば、CGIサーヴァの代理アクセスでpostメソッドを実現する事は可能ですが、今回はソケット機能の可否を仮定していないため実装しておりません。
  • しらぎくモバイルシステムでは、H"リンクに対しては、method属性を無視して常にGETメソッドで処理するものとしております。

また、端末と端末側サーヴァの間では、電子メールを拡張した独自のプロトコルでデータをやり取りします。

H"端末では、端末側サーヴァはCGI/WWWサーヴァに対して利用者の入力をpdxdataと言うクエリに変換して送信します。

  • リンク機能を実現する<SEL>要素で指定された番号が入力された場合は、入力された数字がpdxdataに入れられ、且つリクエストURLが当該<SEL>要素で指定されたアドレスに変更されます。
  • その他の場合は、入力された文字列がpdxdataに入れられ、リクエストURLはコンテンツヘッダにあるFrom:フィールド(本来はコンテンツ送信元を意味しますが、レスポンスの送り先でもあります)に書かれているURLが指定されます。

言い換えると、一回のアクセスで一個のデータのみが送信出来る事となります。

このため、しらぎくモバイルシステムではフォームの各項目ごとにページを分割し、送信ページを発行するようにします。

最終的な投稿までは、特別なクエリに入力内容を入れる事で保持し、最終的な投稿の時点(通常のデヴァイスで言えばサブミットボタンが押下される時点)でこのクエリにて保存された入力内容を正式なクエリに変換するものとします。

また、H"リンクでは入力機構も単純な文字列入力と選択肢入力(カラー対応端末のみ。白黒端末では単純な文字列入力の機構で番号入力が可能)しか実装されていないため、これらの二つの機構のみで必要なフォームを実現する事となります。

具体的には、以下のように変換されます。

基本的な要素。

H"リンクでは、基本的な要素として、<input type="text">要素と<select>要素の二つに統一します。

これら以外のフォーム関連要素は、原則的にこれらの要素に変換する事で等価的に実現します。

<input type="text">要素
単純な文字列入力を行うページを発行します。

データ送信先に入力データを処理するCGIのアドレスを指定する事で、送信後にCGIが適切にデータを処理します。

<select>要素
直下の<option>要素をアンカーに見立てたリスト形式にします。

このとき、アンカーのURLはフォームデータを処理するCGIのアドレスとなります。

尚、いずれの場合も処理CGIは、通常のCGIに特別なクエリを与える事で指定します。

つまり、フォームデータを扱うためだけのCGIは存在しません。

基本的な要素に変換される要素。
<input type="password">要素
<input type="text">要素にそのまま変換します。
<input type="radio">要素
同一のname属性を持つ<input type="radio">要素を一纏めにして、<select>要素に変換します。

このとき、<input type="radio">要素直後の文字列を<option>要素の内容とします。

<input type="checkbox">要素
「はい」「いいえ」を内容とする二つの<option>要素を持つ<select>要素に変換します。

このとき、checked属性がついているものは「はい」が先行し、そうで無いものは「いいえ」が先行します。

<input type="hidden">要素
<input type="submit">要素で送信されるURLにクエリの形で附加します。
<input type="submit">要素
<input type="reset">要素
いずれもフォームの最後にアンカーの形で設置されます。

アンカーのリンク先は以下のようになります。

これらの要素は例え存在しない場合でも、強制的に附与されます。

  • 複数ある場合は一番初めの要素のvalue属性値をアンカーにします。
  • name属性は無効となります。
<textarea>要素
内容の連続する改行・タブ・半角空白を一纏めにして、それをvalue属性値とする<input type="text">要素に変換します。

istyle属性は有効ですが、値に合わせたformat属性に変換されます。

<label>要素
現ヴァージョンでは開始タグ・終了タグとも無視します。

但し、<input type="radio>要素及び<input type="checkbox>要素が<label>要素に含まれている場合には、当該要素の直後の文字列をこの要素の終了タグまで認識するものとします。

注意。

H"リンクでは、以下の制約があります。

  • 大き過ぎるフォーム(<form>要素の内容が1200バイトを越えた場合)は表示出来ない場合があります。この場合、「お使いの端末では大き過ぎて表示出来ない」旨が表示されます。
  • <input type="submit">及び<input type="reset">要素は、一つのみ反映されます。また、これらの要素はクエリとして送信されません。
  • フォーム内の各項目において、「0」を入力すると前の項目に戻るようになります。従いまして、「0」と言うデータを入力する事は出来ません。
  • フォーム内(<form>要素内)のフラグメント(id属性及び<a>要素のname属性)は一切無効となります。
  • フォーム処理中に送信URLが長くなり過ぎると、データが切り落とされる場合があります

13. <hr>要素。

------------」に変換されます。

尚、「-」の数は端末から送られてくる画面の行当りの文字数によります。

15. 論理インライン要素(<a>要素を除く)。

以下の要素に関しては、予め表示色をスクリプト設定で指定している場合は当該色を要素値?に持つ<C>要素に置換され、指定されていない場合は開始・終了タグとも削除されます。

  • <cite>要素。
  • <code>要素。
  • <dfn>要素。
  • <em>要素。
  • <kbd>要素。
  • <q>要素。
  • <samp>要素。
  • <strong>要素。
  • <var>要素。
  • 尚、<q>要素に関してはスタイル指定の有無に拘らず当該要素を「"」で囲みます。

以下の要素に関しては、開始・終了タグとも削除されます(スタイルを事前指定する事は出来ません)。

  • <abbr>要素。
  • <acronym>要素。
  • <span>要素。

尚、いずれの要素も、属性は全て無効となります。

17. <a>要素。

name属性は分割点(後述)になります。

  • この場合、既存のid属性は無視されますが、仕様上双方の値は一致していなければならないので、文法違反で無い限り問題は無い筈です。

href属性値に関しては、以下のようになります。

https://スキームかftp://スキームが与えられている場合。
いずれもH"リンクでは処理不能のため、アンカーを生成しません(<a>要素のタグは無視されます)。
<a>要素に「rel="external"」属性が付いている場合(平成17年 8月26日)。
H"リンクに対応していないものと見なし、アンカーを生成しません(<a>要素のタグは無視されます)。
<a>要素に「rel="disconnect"」属性が付いている場合(平成17年10月 8日)。
href属性値に拘らず、自動回線切断ページへのアンカーを生成します。
mailto:及びtel:スキームが与えられている場合。
文書の本文ではアンカーとなる文字列の直後にスキーム名を取去ったアドレス/電話番号を括弧で囲んでその中をリンク表示色に指定されている色で表示するように、すなわち「アンカー文字列(<C=リンク色>メールアドレスまたは電話番号</C>)」と出力します。
  • カラー端末では、メールアドレス及び電話番号は、それ自体がアンカーになります。
その他のURLの場合。
  • 文書の本文ではアンカーの直前直後で改行して「リンク番号⇒<C=リンク色>アンカー</C>」という文字列を出力します。
    • リンク番号にはaccesskey属性で数字キーが指定されているアンカーにはその番号を、指定されていないアンカーは11から始まる番号が順次割当てられます。
    • H"リンクでは番号入力の他、カラー端末では上記の書式で出力された行もアンカーとして認識します。
  • 文書の冒頭に、リンク番号とリンク先を指定する<SEL>要素を出力します
    • <SEL>要素の書式は
      <SEL=リンク番号;http:// 〜 >

      で、必ず文書の冒頭に並べなければなりません。

リンク先となるURLは、以下のように変換されます。

フラグメント名のみ指定されている場合(href="#…"属性)。
自ページの当該フラグメントに該当する切片を表示させるCGIへのURLに変換されます。
サイト内の画像を指定していると判定された場合。
当該画像を表示させるページを自動作成するCGIへのURLに変換します。
サイト内のページを指定していると判定された場合。
当該ページを表示させるCGIへのURLに変換します。

尚、フラグメント名も指定している場合は、指定されたフラグメントがURLに付与されます。

サイト外と判定された場合。
そのまま出力します。
  • リンク色は、<body>要素のlink属性値ですが、link属性が無かった場合は予めスクリプト設定で指定している色、スクリプト設定で指定していない場合は青が選択されます。

16. <object>要素。(平成17年 9月11日)

  • 第3.190版(平成17年 9月11日)から、<object>要素に対応しました。

<object>要素はtype属性が静止画像(image/gif, image.jpeg及びimage/png)で且つdata属性がある場合に限り有効となります。

<object>要素で静止画像を扱う場合は、内容(次の</object>タグまでの記述)からタグを全て取去ったものをalt属性値とし、data属性値をsrc属性値とする<img>要素に変換して<img>要素処理に引き渡します。

17. <img>要素。

重要事項。

オープンネットコンテンツでは画像に以下の制限があります。

  • 白黒専用機では、画面に直接表示されません。このため、<img>要素があった箇所には代りに「(画像は添付ファイルをご覧下さい)」というメッセージを表示します。
  • また、白黒専用機では、画像は一枚しか添付できません。このため、二個目以降の<img>要素が見出された場合は、その直前が分割点(後述)となります。
  • カラー対応機では、画像の直前直後で必ず改行されます。また、画像表示には<IMG>要素が使われ、その書式は「<IMG="画像ファイル名">」となります。

src属性値の扱い。

この他、src属性値に関して以下のような処理が行われます。

内部のJPEG画像と判定された場合。
  • JPEG対応環境では当該画像を添付します。
  • 非対応環境ではalt属性値を代替文字列として出力します。
内部のGIF画像と判定された場合。
当該GIF画像をBMP画像に変換して添付します。
  • 白黒専用機では白黒に減色して添付されます。
サイト外と判定された場合。
alt属性値を代替文字列として出力します。

18. <table>要素。

テーブルに関しては、一旦<dl>要素に変換して処理されます。

分割機能について。

オープンネットコンテンツには、フラグメントの概念がありません。

この為、フラグメントIDに関しては、ファイル分割で対処するものとします。

  • 白黒専用端末ではid属性や<a>要素のname属性以外にも、画像が二枚以上出てきた場合にも分割が行われます。

分割機能の実際。

分割された場合、分割点より前に分割されたコンテンツがあればそこへのリンクが自動的に附加されます。

同様に後にも分割されたコンテンツがあれば、リンクが生成されます。

URLの扱い。

<a>要素及び<img>要素でCGIへのURLに変換する場合、以下のようになります。

オープンネットコンテンツの仕様上の制限により、全て絶対URLとなります。

CGIに引渡すリソース名の指定はクエリ値となります。

尚、実機に対してエクストラパスを用いた場合は、クエリでパラメータを指定するURLへ移動するウェルカムページが表示されます。

また、フラグメント名分割ファイルの選択用のパラメータもクエリに組込まれます。