2010-11-30 4 views
5

:このコードのこのhtmlテーブル定義が検証されないのはなぜですか?私は、このW3C HTML検証エラーを取得してい

end tag for "table" which is not finished 

<table id="myTable"> 
</table> 

これは私のDOCTYPEです:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 

私は、テーブル定義が完全だと思いました元気?

+0

それは私には見えます。これはエラーを投げている実際のコードですか? – Allan

答えて

3

検証するには、テーブル内にtrタグとtdタグがあるはずです。タイトルタグを付けずにヘッドタグを閉じると同じです。

+0

BeemerGuy

+1

@BeemerGuy私は –

3

XHTML 1.0の表には、少なくともtbodyまたはtrの子が必要です。 the DTD、特にtable elementを参照してください:

<!ELEMENT table 
    (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))> 

最後の部分に注意してください。

6

あなたはXHTML 1.0 Strict DTDを見れば、それが表TR OR TBODYの少なくとも一方が必要であることを指定します。

<!ELEMENT table 
    (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))> 
<!ELEMENT caption %Inline;> 
<!ELEMENT thead (tr)+> 
<!ELEMENT tfoot (tr)+> 
<!ELEMENT tbody (tr)+> 
<!ELEMENT colgroup (col)*> 
<!ELEMENT col  EMPTY> 
<!ELEMENT tr  (th|td)+> 
<!ELEMENT th  %Flow;> 
<!ELEMENT td  %Flow;> 

TR、その順番に、少なくともTHの1またはTDが必要です。

要素名の後の記号+は、少なくとも1回はと表示されることを意味します。

+0

を探していましたが、あなたは私にそれを打つことになりました。 – zzzzBov

+1

OPのドキュメントはHTML 4.0を使用していません。 –

+1

@Matthew Flaschen XHTML 1とHTML 4は同じ基本仕様を使用していますので、XHTML 1 DTDを調べる必要がありますが、実際の違いはXHTMLの構文仕様だけです。 – zzzzBov

0

http://validator.w3.org/docs/errors.html

73を見てみましょう:

ほとんどの場合、あなたのネストされたタグを終え、間違った順序でそれらを閉じていないXの終了タグを。たとえば、<p><em>です。 は<p>より前に閉じる必要がありますので、 </p>は受け入れられません。許容されるネストは次のとおりです。

<p><em>...</em></p> 

また、含まれていない子要素を必要とする要素を使用している可能性があります。したがって、親要素は「完了していません」であり、完了していません。たとえば、HTMLでは要素に子要素が含まれている必要があります。リストには適切なリスト項目が必要です(<ul><ol>が必要です。<li>; <dl>には<dt><dd>が必要です)。

少なくともテーブル内には<tr>が1つ必要です。

関連する問題