XHTML1.0 Transitional 内容モデル

Updated / Published

<?xml version="1.0" encoding="文字コード"?>

XML はデフォルトの文字コードに Unicode の "UTF-8"、または "UTF-16" が設定されているが、それ以外の文字コードを用いる場合は、HTTPレスポンスヘッダにて文字コード情報を設定している場合を除き、必ず当該文書で使う文字コードをその冒頭に XML宣言で追加指定しなければならない。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

DOCTYPE宣言(文書型宣言)によってどんな文書型定義(DTD)に従った文書であるかを示す。XHTML1.0移行型(Transitional)DTD では 厳密型(Strict バリエーション)DTD の内容に加えて、W3C の仕様で「推奨しない」とされる要素や属性も使用することを意味する。

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="言語コード" lang="言語コード">
  • xmlns属性必須
  • html要素には head要素に続いて body要素が順に必ず1個ずつ含まれること

head要素の子要素

<base />
空要素
<isindex />
head要素内に複数の isindex要素を入れるのは HTML互換の UA に好ましくないため1度だけ指定できる
  • 空要素
<link />
空要素
<meta />
content属性必須
  • 空要素
<object>-</object>
他の内容よりも param要素を先行させるべき
  • param要素
  • ブロックレベル要素
  • インライン要素
  • テキスト
<param />
  • name属性必須
  • 空要素
<script>-</script>
type属性必須
  • スクリプト(PCDATA
<style>-</style>
type属性必須
  • スタイルシート(PCDATA)
<title>-</title>
head要素内に必ず1個だけ定義
  • テキストのみ(PCDATA)
</head>

ブロックレベル要素

<address>-</address>
  • インライン要素
  • テキスト
<blockquote>-</blockquote>
  • ブロックレベル要素
  • インライン要素
  • テキスト
<center>-</center>
  • ブロックレベル要素
  • インライン要素
  • テキスト
<dir>-</dir>
1個以上の li要素
<li>-</li>
  • ブロックレベル要素
  • インライン要素
  • テキスト
<div>-</div>
  • ブロックレベル要素
  • インライン要素
  • テキスト
<dl>-</dl>
1個以上の dt要素, dd要素
<dt>-</dt>
  • インライン要素
  • テキスト
<dd>-</dd>
  • ブロックレベル要素
  • インライン要素
  • テキスト
<fieldset>-</fieldset>
必ず最初に legend要素。legend要素の前は空白類文字しか許されない
  • legend要素
  • ブロックレベル要素
  • インライン要素
  • テキスト
<legend>-</legend>
  • インライン要素
  • テキスト
<form>-</form>
action属性必須
  • ブロックレベル要素(form要素の入れ子は禁止)
  • script要素
  • インライン要素
  • テキスト
<h1-h6>-</h1-h6>
  • インライン要素
  • テキスト
<hr />
空要素
<isindex />
body要素内では何度でも指定できる
  • 空要素
<menu>-</menu>
1個以上の li要素
<li>-</li>
  • ブロックレベル要素
  • インライン要素
  • テキスト
<noframes>-</noframes>
  • ブロックレベル要素
  • インライン要素
  • テキスト
<noscript>-</noscript>
  • ブロックレベル要素
  • インライン要素
  • テキスト
<ol>-</ol>
1個以上の li要素
<li>-</li>
  • ブロックレベル要素
  • インライン要素
  • テキスト
<p>-</p>
  • インライン要素
  • テキスト
<pre>-</pre>
applet要素, basefont要素, big要素, font要素, img要素, object要素, small要素, sub要素, sup要素は除く
  • インライン要素
  • テキスト
<table>-</table>
  1. caption要素が0個、または1個。
  2. 0個以上の col要素、または 0個以上の colgroup要素。
  3. thead要素が0個、または1個。
  4. tfoot要素が0個、または1個。
  5. 1個以上の tbody要素、または1個以上の tr要素。
<caption>-</caption>
  • インライン要素
  • テキスト
<col>-</col>
空要素
<colgroup>-</colgroup>
<col>-</col>
空要素
<thead>-</thead>
1個以上の tr要素
<tr>-</tr>
1個以上の td要素, th要素
<td>-</td>
  • ブロックレベル要素
  • インライン要素
  • テキスト
<th>-</th>
  • ブロックレベル要素
  • インライン要素
  • テキスト
<tfoot>-</tfoot>
1個以上の tr要素
<tr>-</tr>
1個以上の td要素, th要素
<td>-</td>
  • ブロックレベル要素
  • インライン要素
  • テキスト
<th>-</th>
  • ブロックレベル要素
  • インライン要素
  • テキスト
<tbody>-</tbody>
1個以上の tr要素
<tr>-</tr>
1個以上の td要素, th要素
<td>-</td>
  • ブロックレベル要素
  • インライン要素
  • テキスト
<th>-</th>
  • ブロックレベル要素
  • インライン要素
  • テキスト
<tr>-</tr>
1個以上の td要素, th要素
<td>-</td>
  • ブロックレベル要素
  • インライン要素
  • テキスト
<th>-</th>
  • ブロックレベル要素
  • インライン要素
  • テキスト
<ul>-</ul>
1個以上の li要素
<li>-</li>
  • ブロックレベル要素
  • インライン要素
  • テキスト

インライン要素

<a>-</a>
  • インライン要素(a要素の入れ子は禁止)
  • テキスト
<abbr>-</abbr>
  • インライン要素
  • テキスト
<acronym>-</acronym>
  • インライン要素
  • テキスト
<applet>-</applet>
他の内容よりも param要素を先行させるべき
  • param要素
  • ブロックレベル要素
  • インライン要素
  • テキスト
<param />
name属性必須
  • 空要素
<b>-</b>
  • インライン要素
  • テキスト
<basefont>-</basefont>
size属性必須
  • 空要素
<bdo>-</bdo>
dir属性必須
  • インライン要素
  • テキスト
<big>-</big>
  • インライン要素
  • テキスト
<br />
空要素
<button>-</button>
a要素, button要素, fieldset要素, form要素, iframe要素, input要素, isindex要素, label要素, select要素, textarea要素を除く
  • ブロックレベル要素
  • インライン要素
  • テキスト
<cite>-</cite>
  • インライン要素
  • テキスト
<code>-</code>
  • インライン要素
  • テキスト
<del>-</del>
インライン要素の内容になっている場合、ブロックレベル要素を内容に含ませるのは不適切
  • ブロックレベル要素
  • インライン要素
  • テキスト
<dfn>-</dfn>
  • インライン要素
  • テキスト
<em>-</em>
  • インライン要素
  • テキスト
<font>-</font>
  • インライン要素
  • テキスト
<i>-</i>
  • インライン要素
  • テキスト
<iframe>-</iframe>
  • ブロックレベル要素
  • インライン要素
  • テキスト
<img />
  • src属性必須
  • alt属性必須
空要素
<input />
空要素
<ins>-</ins>
インライン要素の内容になっている場合、ブロックレベル要素を内容に含ませるのは不適切
  • ブロックレベル要素
  • インライン要素
  • テキスト
<kbd>-</kbd>
  • インライン要素
  • テキスト
<label>-</label>
  • インライン要素(label要素の入れ子は禁止)
  • テキスト
<map>-</map>
id属性必須
  • area要素
  • ブロックレベル要素
<area>-</area>
alt属性必須
  • 空要素
<object>-</object>
他の内容よりも param要素を先行させるべき
  • param要素
  • ブロックレベル要素
  • インライン要素
  • テキスト
<param />
name属性必須
  • 空要素
<q>-</q>
  • インライン要素
  • テキスト
<s>-</s>
  • インライン要素
  • テキスト
<samp>-</samp>
  • インライン要素
  • テキスト
<script>-</script>
type属性必須
  • スクリプト(PCDATA)
<select>-</select>
1個以上の option要素, optgroup要素
<option>-</option>
テキストのみ(PCDATA)
<optgroup>-</optgroup>
label属性必須
  • 1個以上の option要素
<option>-</option>
テキストのみ(PCDATA)
<small>-</small>
  • インライン要素
  • テキスト
<span>-</span>
  • インライン要素
  • テキスト
<strike>-</strike>
  • インライン要素
  • テキスト
<strong>-</strong>
  • インライン要素
  • テキスト
<sub>-</sub>
  • インライン要素
  • テキスト
<sup>-</sup>
  • インライン要素
  • テキスト
<textarea>-</textarea>
  • cols属性必須
  • rows属性必須
テキストのみ(PCDATA)
<tt>-</tt>
  • インライン要素
  • テキスト
<u>-</u>
  • インライン要素
  • テキスト
<var>-</var>
  • インライン要素
  • テキスト
</body>
</html>

補足事項

  • XHTML1.0 の DTD を識別する名前空間(ネームスペース)は http://www.w3.org/1999/xhtm である
  • 言語情報は個別に指定がない限り子孫要素へと継承される
  • 言語情報は、xml:lang属性lang属性の2つに同じ値の言語コードを指定する
  • a要素, applet要素, form要素, iframe要素, img要素, map要素については name属性と id属性の両方を同じ値で設定することが認められている