Una declaración de tipo de documento , o DOCTYPE , es una instrucción que asocia un documento XML o SGML en particular (por ejemplo, una página web ) con una definición de tipo de documento (DTD) (por ejemplo, la definición formal de una versión particular de HTML 2.0 - 4.0 ). [1] En la forma serializada del documento, se manifiesta como una cadena corta de marcado que se ajusta a una sintaxis particular.
Los motores de diseño HTML en los navegadores web modernos realizan "rastreo" o "conmutación" de DOCTYPE, donde el DOCTYPE en un documento servido determina un modo de diseño, como " modo peculiar " o "modo estándar". La serialización de HTML5 , que no está basada en SGML, usa DOCTYPE solo para la selección de modo. Dado que los navegadores web se implementan con analizadores HTML de propósito especial, en lugar de analizadores basados en DTD de propósito general, no usan DTD y nunca accederán a ellos incluso si se proporciona una URL. El DOCTYPE se conserva en HTML5 como un encabezado "casi inútil, pero obligatorio" solo para activar el "modo estándar" en los navegadores habituales. [2]text/html
text/html
DTD
Sintaxis
La sintaxis general para una declaración de tipo de documento es:
elemento raíz PUBLIC "FPI" [ "URI" ] [ ]>
o
SISTEMA de elemento raíz "URI" [ ]>
En XML, el elemento raíz que representa el documento es el primer elemento del documento. Por ejemplo, en XHTML, el elemento raíz es , siendo el primer elemento abierto (después de la declaración de tipo de documento) y el último cerrado. Las palabras clave SISTEMA y PÚBLICO sugieren qué tipo de Definición de tipo de documento (DTD) es (uno que está en un sistema privado o uno que está abierto al público). Si se elige la palabra clave PUBLIC, esta palabra clave va seguida de una forma restringida de "identificador público" llamado Identificador público formal (FPI) entre comillas dobles. Después de eso, también se proporciona necesariamente un "identificador de sistema" entre comillas dobles. Por ejemplo, el FPI para XHTML 1.1 es "- // W3C // DTD XHTML 1.1 // EN" y existen 3 posibles identificadores de sistema disponibles para XHTML 1.1 según las necesidades, uno de ellos es la referencia URI " http: //www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ". Si, en cambio, se elige la palabra clave SYSTEM, solo se debe dar un identificador de sistema. Significa que el analizador XML debe ubicar la DTD de una manera específica del sistema, en este caso, mediante una referencia URI de la DTD entre comillas dobles. La última parte, rodeada por corchetes literales ([]), se llama un subconjunto interno que se puede usar para agregar / editar entidades o agregar / editar comportamientos de palabras clave PUBLIC. [3] El subconjunto interno es siempre opcional (ya veces incluso prohibido dentro de perfiles SGML simples, en particular aquellos para analizadores HTML básicos que no implementan un analizador SGML completo).
Por otro lado, las declaraciones de tipo de documento son ligeramente diferentes en documentos basados en SGML como HTML, donde el identificador público puede estar asociado con el identificador del sistema. Esta asociación podría realizarse, por ejemplo, por medio de un archivo de catálogo que resuelve el FPI en un identificador de sistema. [4]
Ejemplo
La primera línea de una página de la World Wide Web puede leerse de la siguiente manera:
"- // W3C // DTD XHTML 1.0 Transitional // EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> < html lang = "ar " dir = " ltr " xmlns = " http://www.w3.org/1999/xhtml " >
Esta declaración de tipo de documento para XHTML incluye por referencia un DTD, cuyo público y cuyo identificador de sistema es http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
. Un solucionador de entidades puede utilizar cualquiera de los dos identificadores para localizar la entidad externa a la que se hace referencia. No se ha indicado ningún subconjunto interno en este ejemplo ni en los siguientes. Se declara que el elemento raíz es html
y, por lo tanto, es la primera etiqueta que se abre después del final de la declaración de tipo de documento en este ejemplo y también en los siguientes. La etiqueta HTML no forma parte de la declaración de tipo de documento, pero se ha incluido en los ejemplos con fines orientativos.
DTD comunes
Algunas DTD comunes se han incluido en listas. El W3C ha elaborado una lista de DTD de uso común en la web, que contiene la DTD HTML5 "básica", DTD XHTML / HTML más antiguas, DTD de formatos comunes basados en XML incrustados como MathML y SVG , así como documentos "compuestos" que combinan esos formatos. [5] Tanto W3C HTML5 como su correspondiente versión WHATWG recomiendan a los navegadores que solo acepten XHTML DTD de ciertos FPI y que prefieran usar lógica interna en lugar de buscar archivos DTD externos. Además, especifica un "DTD interno" para XHTML que es simplemente una lista de nombres de entidades HTML. [6] ( §13.2 )
DTD HTML 4.01
La DTD estricta no permite el marcado de presentación con el argumento de que las hojas de estilo en cascada deben usarse para eso. Así es como se ve el Strict DTD:
"http://www.w3.org/TR/html4/strict.dtd"> < html >
La DTD de transición permite algunos atributos y PÚBLICOS más antiguos que han quedado obsoletos:
"http://www.w3.org/TR/html4/loose.dtd"> < html >
Si se utilizan marcos, se debe usar Frameset DTD en su lugar, así:
"http://www.w3.org/TR/html4/frameset.dtd"> < html >
DTD XHTML 1.0
Los DTD de XHTML también son Strict, Transitional y Frameset.
XHTML Strict DTD. No se admiten etiquetas obsoletas y el código debe escribirse correctamente de acuerdo con la especificación XML.
xml version = "1.0" encoding = "UTF-8"?> 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 " xml: lang = " en " lang = " en " >
XHTML Transitional DTD es como XHTML Strict DTD, pero se permiten etiquetas obsoletas.
xml version = "1.0" encoding = "UTF-8"?> PUBLIC "- // W3C // DTD XHTML 1.0 Transitional // EN" "http://www.w3.org/TR/ xhtml1 / DTD / xhtml1-transitional.dtd "> < html xmlns = " http://www.w3.org/1999/xhtml " xml: lang = " en " lang = " en " >
XHTML Frameset DTD es el único XHTML DTD que admite Frameset. El DTD está a continuación.
xml version = "1.0" encoding = "UTF-8"?> PUBLIC "- // W3C // DTD XHTML 1.0 Frameset // EN" "http://www.w3.org/TR/ xhtml1 / DTD / xhtml1-frameset.dtd "> < html xmlns = " http://www.w3.org/1999/xhtml " xml: lang = " en " lang = " en " >
XHTML 1.1 DTD
XHTML 1.1 es la revisión finalizada más actual de XHTML, que presenta soporte para la modularización XHTML . XHTML 1.1 tiene el rigor de XHTML 1.0 Strict.
"- // W3C // DTD XHTML 1.1 // ES" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
DTD básicas de XHTML
XHTML Basic 1.0
"- // W3C // DTD XHTML Basic 1.0 // EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
XHTML Basic 1.1
"- // W3C // DTD XHTML Basic 1.1 // EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
DOCTYPE sin DTD de HTML5
HTML5 utiliza una DOCTYPE
declaración que es muy breve, debido a la falta de referencias a una DTD en forma de URL o FPI. Todo lo que contiene es el nombre de etiqueta del elemento raíz del documento HTML
,. [7] En palabras del propio borrador del pliego de condiciones:
En otras palabras,
no distingue entre mayúsculas y minúsculas.
Con la excepción de la falta de un URI o la cadena FPI (los validadores tratan la cadena FPI con distinción entre mayúsculas y minúsculas), este formato (una coincidencia de la cadena que no distingue entre mayúsculas y minúsculas !DOCTYPE HTML
) es el mismo que se encuentra en la sintaxis del HTML basado en SGML 4.01 DOCTYPE
. Tanto en HTML4 como en HTML5, la sintaxis formal se define en mayúsculas, incluso si tanto las minúsculas como las combinaciones de minúsculas y mayúsculas también se consideran válidas.
En XHTML5 la DOCTYPE
debe haber una coincidencia entre mayúsculas y minúsculas de la cadena " ". Esto se debe a que en la sintaxis XHTML todos los nombres de los elementos HTML deben estar en minúsculas, incluido el elemento raíz al que se hace referencia dentro del HTML5
DOCTYPE
.
El DOCTYPE
es opcional en XHTML5 y simplemente pueden omitirse. [8] Sin embargo, si el marcado se va a procesar como XML y HTML , se debe utilizar un DOCTYPE. [9]
Ver también
Referencias
- ^ HTML2 HTML3 HTML4
- ^ "La sintaxis HTML - HTML5" . Consultado el 5 de junio de 2011 .
- ^ "Declaración DOCTYPE" . msdn.microsoft.com .
- ^ "Copia archivada" . Archivado desde el original el 14 de agosto de 2011 . Consultado el 9 de septiembre de 2011 .Mantenimiento de CS1: copia archivada como título ( enlace )
- ^ "W3C QA - Lista recomendada de declaraciones Doctype que puede utilizar en su documento web" . www.w3.org . Consultado el 22 de marzo de 2019 .
- ^ "Estándar HTML" . html.spec.whatwg.org . Consultado el 22 de marzo de 2019 .
- ^ "La sintaxis HTML - HTML5" . Grupo de Trabajo de Tecnología de Aplicación de Hipertexto Web . Consultado el 5 de junio de 2011 .
3. Una cadena que es una coincidencia ASCII que no distingue entre mayúsculas y minúsculas para la cadena "DOCTYPE". 5. Una cadena que es una coincidencia ASCII que no distingue entre mayúsculas y minúsculas para la cadena "HTML".
- ^ "La sintaxis XHTML - HTML5" . Grupo de Trabajo de Tecnología de Aplicación de Hipertexto Web . Archivado desde el original el 7 de junio de 2012 . Consultado el 1 de septiembre de 2009 .
- ^ "Marcado políglota: documentos XHTML compatibles con HTML" . Consorcio World Wide Web . Consultado el 17 de enero de 2012 .
enlaces externos
- Descripción general de HTML Doctype
- DTD recomendados para usar en su documento web : una publicación informativa (no normativa) de garantía de calidad del W3C
- Cuadrícula DOCTYPE : otra tabla general [Última modificación el 27 de noviembre de 2006]
- Modo de peculiaridades y modo de transición
- Ajuste del modelo de caja