Declaración de tipo de documento

Una declaración de tipo de documento o DOCTYPE (del inglés document type declaration) asocia un documento SGML o XML particular con una definición de tipo de documento. En la forma serializada de un documento, este se manifiesta como una cadena corta de caracteres de marcado (markup) que se conforma con una sintaxis particular.

A pesar de su nombre, una declaración de tipo de documento no sirve para deducir el tipo de documento, aunque originalmente se suponía que lo fuera.

El motor de visualización de HTML en los navegadores web modernos ejecutan el DOCTYPE, en donde el DOCTYPE en un documento es servido como text/html, esto determina el modo de visualización, «quirks mode» o «standards mode».

Ejemplo 
En la primera línea de muchas de las páginas web se puede leer:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Esta DTD para XHTML incluye por referencia una DTD, cuyo identificador público es -//W3C//DTD XHTML 1.0 Transitional//EN y el identificador del sistema es http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd. Un resolvedor de entidad puede utilizar cualquier identificador para localizar la entidad externa referida. El elemento raíz es declarado para ser html.

HTML 4.01 DTDs 
EL HTML 4.01 Strict no permite marcado de presentación con el argumento de que debería usar CSS en su lugar para eso. Así es como  luce el DOCTYPE Strict:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

Las DTD transicionales (Transitional DTD) permiten algunos elementos y atributos antiguos que están en desuso:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Además, si está usando frames (marcos), para conseguir resultados válidos desde el validador SGML, necesitará el frameset DOCTYPE como el que sigue:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

XHTML 1.0 DTDs 
Las DTD XHTML son también Strict, Transitional y Frameset.

El XHTML Strict DTD es la más estricta de las DTD disponibles: no soporta etiquetas antiguas y el código debe estar escrito correctamente:

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

El XHTML Transitional DTD es como XHTML Strict DTD, pero las etiquetas en desuso están permitidas. Actualmente ésta es la DTD más popular.

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

El XHTML Frameset DTD es la única DTD XHTML que soporta Frameset. 

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

XHTML 1.1 DTD 
El DTD XHTML es único:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

Véase también 
 Definición de tipo de documento

Enlaces externos 
 Recommended DTDs to use in your Web document, recomendaciones de uso de DTD hechas por W3C Quality Assurance (en inglés)
 Doctype switch: summary table, tabla de efectos del uso de las diferentes DOCTYPE, que modos usa el navegador (quirks o estándar) (en inglés)
 DOCTYPE grid otra tabla similar (en inglés)
 FreeBSD Documentation Project Primer section on DOCTYPE, información sobre la sintaxis y los identificadores públicos (en inglés)

Lenguajes de marcado
DOCTYPE