2010-11-30 8 views
5

que estoy recibiendo este error de validación de W3C HTML:¿Por qué no se valida esta definición de la tabla html?

end tag for "table" which is not finished 

para este código:

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

Esta es mi 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"> 

pensé que era perfectamente definición de la tabla ¿¡multa!?

+0

Me parece bien. ¿Es este el código real que arroja el error? – Allan

Respuesta

3

Creo que debe haber una etiqueta tr y td dentro de una tabla para validar. Es lo mismo cuando cierra una etiqueta de encabezado sin incluir una etiqueta de título

+0

No recibo esta advertencia cuando lo hago '

' – BeemerGuy

+1

@BeemerGuy Hice –

3

Se requiere una tabla XHTML 1.0 para tener al menos un hijo tbody o tr. Ver the DTD, en concreto el table element:

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

Nota la última parte.

6

Si nos fijamos en la XHTML 1.0 Strict DTD, especifica que una mesa requiere al menos uno de TR O 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;> 

El TR, a su vez, requiere por lo menos una de TH o TD.

El signo + después de un nombre de elemento significa que debe aparecer al menos una vez.

+0

Estaba buscando eso en la especificación, y usted me ganó. – zzzzBov

+1

El documento del OP no usa HTML 4.0. –

+1

@Matthew Flaschen XHTML 1 y HTML 4 usan las mismas especificaciones básicas, tendré que ir a buscar en la DTD XHTML 1, pero la única diferencia real son algunas especificaciones de sintaxis en XHTML. – zzzzBov

0

Tome un vistazo a http://validator.w3.org/docs/errors.html

73: etiqueta de final de X que no está terminado

más probable es que las etiquetas anidadas y los cerró en el orden equivocado. Por ejemplo <p><em>. </p> no es aceptable, ya que <em> debe cerrarse antes de <p>. La anidación aceptable es:

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

Otra posibilidad es que utilizó un elemento que requiere un elemento secundario que no incluyó. Por lo tanto, el elemento padre es "no terminado", no completo. Por ejemplo, en HTML, el elemento debe contener un elemento secundario, las listas requieren elementos de lista apropiados (<ul> y <ol> requieren <li>; <dl> requiere <dt> y <dd>), y así sucesivamente.

Necesita al menos un <tr> dentro de su mesa.

Cuestiones relacionadas