プロローグ/エピローグ

●ドキュメント開始前のテキスト
先行する空白文字シーケンスを除き暗黙的にhtml要素内に移動
  あいうえお かきくけこ
<html>さしすせそ</html>
<html>あいうえお かきくけこ
さしすせそ</html>
●ドキュメント終了後のテキスト
最後尾の空白文字シーケンスを除きhtml要素内に包含
<html>あいうえお</html> かきくけこ
さしすせそ
<html>あいうえお かきくけこ
さしすせそ</html>
●XML宣言
XMLReaderプロパティとLocator2へ設定
<?xml?>
<html>あいうえお</html>
<html>あいうえお</html>
●XML宣言
XMLReaderプロパティとLocator2へ設定
<?xml ?>
<html>あいうえお</html>
<html>あいうえお</html>
●バージョン指定のXML宣言
XMLReaderプロパティとLocator2へ設定
<?xml version="1.0"?>
<html>あいうえお</html>
<html>あいうえお</html>
●XML宣言
XMLReaderプロパティとLocator2へ設定
<?xml version="1.0" encoding="UTF-8"?>
<html>あいうえお</html>
<html>あいうえお</html>
●エンコーディング指定のXML宣言
XMLReaderプロパティとLocator2へ設定
<?xml encoding="UTF-8"?>
<html>あいうえお</html>
<html>あいうえお</html>
未定義の属性の付属するXML宣言
警告して無視
<?xml foo="bar"?>
<html>あいうえお</html>
<html>あいうえお</html>
1, 1: X0001:未定義の XML 宣言属性です: foo="bar"

要素

●子要素を内包しない要素
空の要素として認識
<html><div></div></html> <html><div/></html>
●子要素を内包しない要素(簡略表記)
空の要素として認識
<html><div/></html> <html><div/></html>
●要素内の意味を持たない空白文字
無視
<html
/>
<html/>
使用していない要素終了
警告して無視
<html>あいう</b>えお</html> <html>あいうえお</html>
1,10: E0002:使用されていない要素の終了: </b>
要素の終了に属性を記述
警告して無視
<html>あいうえお</html class="foo"> <html>あいうえお</html>
1,12: E0001:要素の終了で属性は指定できません: </html ...>

テキストの解釈

●通常のテキスト
テキストとして解釈
<html>あいうえお</html> <html>あいうえお</html>
●XML定義の空白文字
単体のCRは改行としてLFに変換
<html>[ ][ ][ ][
]</html>
<html>[ ][ ][
][
]</html>
●改行文字の扱い
CRLF及び単体のCRはLFに変換
<html>[
][
][ ]</html>
<html>[
][
][
]</html>
●要素に囲まれていないテキスト
暗黙的にHTML要素を開始
あいうえお <html>あいうえお</html>
●単体の'<'
テキストとして解釈
< <html>&lt;</html>
単体の'&'
テキストとして解釈
<html>&</html> <html>&amp;</html>
1, 7: T0001:'&' に続く実体参照名が指定されていません

実体参照の解釈

●HTML/XML共用の文字実体参照
対応するUnicode文字として解釈
<html>&lt;&gt;&amp;&quot;</html> <html>&lt;&gt;&amp;"</html>
●HTML固有の文字実体参照
対応するUnicode文字として解釈
<html>&copy;&nbsp;&reg;</html> <html>© ®</html>
●数値文字参照
対応するUnicode文字として解釈
<html>[&#x03B1;][&#X03B1;][&#945;]</html> <html>[α][α][α]</html>
XML固有の文字実体参照
テキストとして解釈
<html>&apos;</html> <html>&amp;apos;</html>
1, 7: T0100:実体参照 "&apos;" は未定義です
認識できない文字実体参照
テキストとして解釈
<html>
 [&foo;]
 [&;]
 &0123456789;
</html>
<html>
 [&amp;foo;]
 [&amp;;]
 &amp;0123456789;
</html>
2, 3: T0100:実体参照 "&foo;" は未定義です
3, 3: T0100:実体参照 "&;" は未定義です
4, 2: T0001:'&' に続く実体参照名が指定されていません
認識できない数値文字参照
テキストとして解釈
<html>[&#;][&#xyz;][&#65536;][&#x;][&#xxyz;][&#x10000;]</html> <html>[&amp;#;][&amp;#xyz;][&amp;#65536;][&amp;#x;][&amp;#xxyz;][&amp;#x10000;]</html>
1, 8: T0100:実体参照 "&#;" は未定義です
1,13: T0100:実体参照 "&#xyz;" は未定義です
1,21: T0100:実体参照 "&#65536;" は未定義です
1,31: T0100:実体参照 "&#x;" は未定義です
1,37: T0100:実体参照 "&#xxyz;" は未定義です
1,46: T0100:実体参照 "&#x10000;" は未定義です

CDATAセクションの解釈

●通常のCDATAセクション
エスケープされていないテキストとして解釈(改行のみ変換)
<html><![CDATA[
 < > & "
]]></html>
<html><![CDATA[
 < > & "

]]></html>
●単体のCDATAセクション
暗黙的にhtml要素を開始
<![CDATA[ ABC ]]> <html><![CDATA[ ABC ]]></html>
●ドキュメント要素より前のCDATAセクション
html要素内に内包
 <![CDATA[ あいうえお ]]> <html>かきくけこ</html> <html><![CDATA[ あいうえお ]]> かきくけこ</html>
●ドキュメント要素より後のCDATAセクション
html要素内に内包
<html>あいうえお</html> <![CDATA[ かきくけこ ]]> <html>あいうえお <![CDATA[ かきくけこ ]]></html>

コメントの解釈

●通常のコメント
XMLのコメントとして解釈
<html><!-- コメント --></html> <html><!-- コメント --></html>
●空のコメント
XMLのコメントとして解釈
<html><!----></html> <html><!----></html>
●ドキュメント要素より前のコメント
XMLのコメントとして解釈
<!--コメント--><html/> <!--コメント--><html/>
●ドキュメント要素より後のコメント
XMLのコメントとして解釈
<html/><!--コメント--> <html/><!--コメント-->
連続したハイフンを内包するコメント
そのままハンドラへ通知 (DOM実装で空白を挿入)
<html><!-- i-- --></html> <html><!-- i- - --></html>
1, 7: C0001:コメント内での文字列 "--" は許可されていません
ハイフンで終了するコメント
そのままハンドラへ通知 (DOM実装で空白を挿入)
<html><!-----></html> <html><!--- --></html>
1, 7: C0001:コメント内での文字列 "--" は許可されていません

処理命令の解釈

●ドキュメント要素より前に記述された処理命令
XMLの処理命令として解釈
<?xml-stylesheet type="text/xsl"?>
<html/>
<?xml-stylesheet type="text/xsl"?>
<html/>
●ドキュメント内に記述された処理命令
XMLの処理命令として解釈
<html><?xml-stylesheet type="text/xsl"?></html> <html><?xml-stylesheet type="text/xsl"?></html>
●ドキュメント終了より後に記述された処理命令
XMLの処理命令として解釈
<html/><?xml-stylesheet type="text/xsl"?> <html/><?xml-stylesheet type="text/xsl"?>
●処理命令内の記述
CR及びCRLFのみをLFに変換
<html><?foo  [  A  B
C
D &amp; ] ?></html>
<html><?foo [  A
B
C
D &amp; ] ?></html>
無効な処理命令のターゲット名
警告して無視
<html><??></html> <html/>
1, 7: P0001:ターゲット名が不正です:
無効な処理命令のターゲット名
警告して無視
<html><? ?></html> <html/>
1, 7: P0001:ターゲット名が不正です:
無効な処理命令のターゲット名
警告して無視
<html><? foo="bar"?></html> <html/>
1, 7: P0001:ターゲット名が不正です:
無効な処理命令のターゲット名
警告して無視
<html><?--?></html> <html/>
1, 7: P0001:ターゲット名が不正です: --

ドキュメント宣言の解釈

●PUBLIC IDの記述(SYSTEM ID付属)
DTDHandlerへ通知のみ
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html/>
<html/>
●PUBLIC IDの記述(SYSTEM ID省略)
DTDHandlerへ通知のみ
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html/>
<html/>
●SYSTEM IDの記述
DTDHandlerへ通知のみ
<!DOCTYPE html SYSTEM "http://www.w3.org/TR/html4/strict.dtd">
<html/>
<html/>
●PUBLID ID/SYSTEM ID共に記述
DTDHandlerへ通知のみ
<!DOCTYPE html>
<html/>
<html/>
●html以外のDTD
DTDHandlerへ通知のみ
<!DOCTYPE xhtml PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html/>
<html/>
認識できないDTD
無視
<!DOCTYPE html PRIVATE "http://www.w3.org/TR/html4/strict.dtd">
<html/>
<html/>
1, 1: D0001:ドキュメント型を認識できません: <!DOCTYPE html PRIVATE "http://www.w3.org/TR/html4/strict.dtd">

ドキュメント構造

●階層構造のドキュメント
XMLの階層構造として解釈
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
 <title>タイトル</title>
</head>
<body>
<h1>タイトル</h1>
<p>
<b style="font-family:sans-serif;">HTMLDocumentBuilderFactory</b>  XML に<i>厳格でない</i> HTML を解析して DOM を生成するための JAXP ドキュメントビルダーです。
</p>
</body>
</html>
<html>
<head>
 <meta content="text/html;charset=UTF-8" http-equiv="Content-Type"/>
 <title>タイトル</title>
</head>
<body>
<h1>タイトル</h1>
<p>
<b style="font-family:sans-serif;">HTMLDocumentBuilderFactory</b>  XML に<i>厳格でない</i> HTML を解析して DOM を生成するための JAXP ドキュメントビルダーです。
</p>
</body>
</html>
HTML定義の空要素
XMLの空要素と同等に解釈(ノードを内包する場合は不用な要素終了として警告)
<html>
 <img src="foo.png">
 <img src="foo.png" />
 <img src="foo.png"></img>
 <img src="foo.png">あいうえお</img>
</html>
<html>
 <img src="foo.png"/>
 <img src="foo.png"/>
 <img src="foo.png"/>
 <img src="foo.png"/>あいうえお
</html>
5,26: E0002:使用されていない要素の終了: </img>
li:閉じられていないリスティング要素
強制的にolまたはul要素の直下へ移動(オプション動作)
<html>
<body>
<ol>
<li>リスト1
<li>リスト<b>2
<li>リスト3</li>あ
</ol>
<b><li>何もしない</b>
</body>
</html>
<html>
<body>
<ol>
<li>リスト1
</li><li>リスト<b>2
</b></li><li>リスト3</li>あ
</ol>
<b><li>何もしない</li></b>
</body>
</html>
5, 1: E0008:要素を適切と思われる位置に移動しました: <li>
4, 1: E0004:閉じられていない要素: <li>
6, 1: E0008:要素を適切と思われる位置に移動しました: <b>
5, 8: E0004:閉じられていない要素: <b>
5, 1: E0004:閉じられていない要素: <li>
8, 4: E0004:閉じられていない要素: <li>
p:閉じられていないパラグラフ要素
適切な位置へ移動(オプション動作)
<html>
<body>
<p>
あいうえお
<p>
かきくけこ
<p>
さしすせそ
</body>
</html>
<html>
<body>
<p>
あいうえお
</p><p>
かきくけこ
</p><p>
さしすせそ
</p></body>
</html>
5, 1: E0008:要素を適切と思われる位置に移動しました: <p>
3, 1: E0004:閉じられていない要素: <p>
7, 1: E0008:要素を適切と思われる位置に移動しました: <p>
5, 1: E0004:閉じられていない要素: <p>
7, 1: E0004:閉じられていない要素: <p>
Sun Java ダウンロードページ
SourceForge.JP
Valid XHTML 1.1