Top > WAP2.0 > XHTML文書における留意事項

WAP2.0

XHTML文書における留意事項

このページ内の「XHTML」という表現には、「XHTML Basic」,「XHTML Mobile Profile」,「EZweb XHTML 拡張要素」を含みます。

  1. ルート要素名は「html」
  2. 要素名/属性名は英小文字で記述
  3. 終了タグは省略しない
  4. 空要素も閉じる
  5. 要素は正しくネストする
  6. 属性値は引用符で囲む
  7. 属性は属性名と属性値でワンペア
  8. name属性からid属性へ
  9. その他
    1. ファイルサイズ
    2. 文字コード
    3. 特殊文字

1.ルート要素名は「html」

XHTML文書では、HTML文書と同様、html要素をルート要素とします。他のすべての要素はそのルート要素の要素内容として記述しなければなりません。XHTML文書であるからといって、ルート要素はxhtmlではないのです。

2.要素名/属性名は英小文字で記述

XHTML文書で記述する要素の名前と属性の名前は、すべて英小文字で記述しなければなりません。
HTML文書及びHDML文書では、要素名・属性名の大文字/小文字区別はされませんでしたが、XHTML Basic文書においては、英大文字と英小文字は異なるものとして区別されます。
ただし、属性には大文字と小文字の区別はありません。

また、文書型定義を記述する際には、<!DOCTYPE<!doctype と英小文字で書かないように注意してください。これは、xml文書の文法規則で英大文字で記述することが決められています。

3.終了タグは省略しない

XHTML文書では、どの要素も終了タグを省略することはできません。
HTMLでは、要素ごとに開始タグと終了タグを省略できる/できないについて定義されていましたが、XHTMLではタグの省略は認められていません。特に以下の要素の場合、注意が必要です。

【HTML4において終了タグを省略できた要素】
要素 説明
<dd>〜</dd> 定義リストの説明文
<dt>〜</dt> 定義リストの用語
<li>〜</li> リストの項目
<option></option> プルダウンメニューで選択できる項目
<p>〜</p> 段落
<td>〜</td> テーブルのセルデータ
<th>〜</th> テーブルの見出し
<tr>〜</tr> テーブルの行

ただし、EZweb環境では、ご親切にもブラウザ側(か、あるいはゲートウェイ側)で省略された終了タグを補ってくれてしまうようです。しかし、ブラウザの解釈に頼ったコンテンツ作成は、望ましくありませんし、省略された終了タグをすべて適切に補ってくれる−という保証はありません。文法に沿って、終了タグをきちんと記述する習慣をつけましょう。

4.空要素も閉じる

要素内容がない要素を「空要素」を呼びます。(例:<br><meta>
空要素についても例外なく閉じなければなりません。空要素の書式には以下の2通りがあります。

【空要素の閉じ方】

<要素名></要素名>

または、

<要素名 />

EZweb向けXHTMLで使用する空要素には、次のものがあります。

空要素 説明
<base /> 基準となるURL
<bgsound />※1 BGMを鳴らす
<br /> 改行
<hr />※2 水平線
<img /> 画像の埋め込み
<input /> フォームの入力コントロール
<link /> リンクの定義
<meta /> 文書についての情報
<param /> オブジェクトのパラメータ
※1<bgsound />は、EZweb拡張要素
※2<hr />は、XHTML Mobile Profileで定義されている要素

空要素の「/>」の前に空白文字を入れることは必須ではありませんが、従来のHTMLブラウザとの互換性のために空白文字を挿入しておいた方が無難です。

また、空要素ではありませんが、要素内容を省略できる要素(例:<td></td>)については、<td />のように記述してはいけません。

EZweb環境では、空要素を閉じなくても、ブラウザ側(か、あるいはゲートウェイ側)で空要素を閉じてくれます。しかし、これはEZweb機では通用しても他のモバイル・ブラウザでは認められないかもしれません。
仕様に従ったコンテンツ作成を心がけましょう。

5.要素は正しくネストする

それぞれの要素の開始タグと終了タグは、一対のものとして親要素の下位にネスト(入れ子)状態になるように記述する必要があります。
HTML文書ではタグを正しくネストしなくてもブラウザ側でエラーにならないように処理していたので表示できてしまっていましたが、XHTMLでは、そのような要素のネストは許されません。

ただし、EZweb環境では、ブラウザ側(か、あるいはゲートウェイ側)で間違った要素のネストをある程度修正してくれてしまうようです。

とはいえ、自分の意図したとおりにコンテンツを表示したいのであれば、やはり文法規則に従って記述するのが一番の道と思います。

【間違った要素のネスト】

<h1><font color="red">要素のネスト</h1></font>
<p>要素は正しく<b>ネストしなければなりません。</p></b>

【正しい要素のネスト】

<h1><font color="red">要素のネスト</font></h1>
<p>要素は正しく<b>ネストしなければなりません。</b></p>

6.属性値は引用符で囲む

HTML文書では、属性値を引用符(""または'')で囲まなくても許されましたが、XHTMLでは、すべての属性値を引用符(""または'')で囲む必要があります。
これまた、EZweb環境では引用符をつけなかった場合、ブラウザ側(か、あるいはゲートウェイ側)で引用符を補ってくれます。しかし、属性値にスペースが含まれる場合などは、うまく補正される保証はありません。また、属性値がURLなど、長い場合は、引用符をつけないと、どこまでが属性値なのか記述した自分自身もわかりづらいことがあります。自分自身の為にも属性値は引用符で囲むようにしましょう。

7.属性は属性名と属性値でワンペア

HTMLでは、属性値のみを記述するだけで、その属性を宣言できるものがあります。例えば、

<p><input type="checkbox" name ="year" value="2002" checked>2002年</p>

のように、checkedと指定するだけで、そのチェックボックスがチェックされた状態になります。

XHTML Basicでは、このような時も、属性をフルに記述しなければなりません。上の例を、XHTMLで正しく記述すると、以下のようになります。

<p>
<input type="checkbox" name ="year" value="2002" checked="checked">
2002年
</p>

この他に、

などが、これに相当します。

これについても、EZweb環境では属性のみを記述しても、ブラウザ側(か、あるいはゲートウェイ側)で認識してくれます。

8.name属性からid属性へ

HTMLで、同じ文書内のリンク指定にアンカー名を使用することがあります(<a href="#アンカー名>)この場合、リンク先のアンカーには、<a name="アンカー名">...</a>が記述されています。
このname属性は、XHTMLでは、使用できません。ただ、上記同様EZweb環境では、name属性も認識されます。しかし、このname属性は、XHTML Basicの元言語であるXHTML仕様からもいずれ除外される予定ですので、作成するコンテンツが、ハンドヘルド・デバイス向けのみであるならば(id属性をサポートしないHTMLブラウザとの互換を考えなくて良いならば)、すべてid属性で記述したほうが良いと思います。

id属性がname属性と違うところは、文書内で一意(唯一無二)でなければならず、重複したid属性を指定することはできないことです。id属性は、ほとんどすべての要素で指定可能です。
id属性を指定できない要素は、以下の通りです。

html base head meta style※ title

style要素は、XHTML Mobile Profileで定義されている要素

9.その他

9-1.ファイルサイズ

9-2.文字コード

シェアウェアなどのテキストエディタを使用する場合は、必ず Shift_JIS コードで記述すること。
Shift_JIS以外で書かれたファイルは、文字化けしてしまいます。

9-3.特殊文字

HDMLファイル内では「<」「>」「&」「"」「$」等の記号を本文中に記述する場合、エスケープシーケンスを使用する必要が ありましたが、WAP2.0対応機向けXHTMLファイル内では、そのまま記述しても、ゲートウェイで

のように、自動的に変換されるようです。
$」については、現在(2002年3月)のところ、入力フォーム以外であれば、そのまま記述できます。
(ブラウザバージョン6.2以上では、入力フォーム内であってもエスケープ不要)
ブラウザバージョンで処理を切り替えるのが面倒なら、$ → &#36;にしておけば良い

XHTMLの仕様では、下記のようなエスケープシーケンスが定義されています。
(この他にもたくさんありますが、主に使うものとして下記の5個を挙げました。)

記号 エスケープシーケンス
< &lt;
> &gt;
' &apos;
" &quot;
& &amp;
&apos;」は、XHTMLで新たに加えられたものですので、
  古いPC用ブラウザでは参照されない場合があります。
「アンパサンド(&)」について、XHTML仕様では、属性値内においても「&amp;」にて
  記述しなければならない、と明記されています。
  例えば、<a>要素のhref属性値内において、CGIへの引数を渡す場合、
  http://my.site.com/cgi-bin/myscript.pl?class=guest&name=user
  ではなく、
  http://my.site.com/cgi-bin/myscript.pl?class=guest&amp;name=user
  と記述しなければならない、とされています(2002/06/07)。

WAP2.0仕様では、下記のようなエスケープシーケンスが推奨されています。
(ブラウザバージョン6.2未満で、入力フォーム内の時のみ必要)

記号 エスケープシーケンス
$ $$

Go to Top

最終更新日:2007年01月08日
© Kimura