# Lenguaje XML/Definición de tipo de documento/Texto completo

* Si imprimes esta página, o eliges la opción de Vista preliminar de impresión de tu navegador, verás que desaparecen este cuadro y los elementos de navegación de arriba y de la izquierda, pues no son útiles en una versión impresa.
* Pulsando antes en Refrescar esta página te asegurarás de obtener los últimos cambios del libro antes de imprimirlo.
* Para más información, puedes ver Wikilibros:Versión para imprimir.

# Introducción

Una definición de tipo de documento, o DTD (siglas en inglés de Document Type Definition) sirve para declarar la estructura de un documento SGML o XML, elemento por elemento. Esta información se usa para validar un documento XML o SGML. Un documento XML es válido cuando no incumple ninguna de las normas establecidas en su DTD.
Las DTDs nos ayudan a usar una misma estructura para muchos documentos. Esta se puede incluir en un fichero aparte, de modo que en nuestros documentos solo debemos añadir una línea para hacer referencia a la DTD.
Aparte de las DTDs, existen otros métodos que también permiten validar documentos XML, como por ejemplo XML Schema o RELAX NG, aunque son menos utilizadas y conocidas.
La W3C provee la especificación de XML y DTD en la página http://www.w3.org/TR/xml/, y es el sitio donde recomendamos se consulten dudas, ya que ésta es la referencia oficial del lenguaje XML (y DTD).

# Declaración de tipo de documento

Las DTDs pueden ser incluidas en un documento XML directamente, o a través de una referencia. Ahora bien, en ambos casos hay que escribir una declaración DOCTYPE (Document Type Declaration, en español Declaración de Tipo de Documento) para asociar una DTD al documento XML. Un archivo DTD puede ser asociado a miles de documentos XML, y de la misma forma, un solo documento XML puede tener asociados varias DTDs.

## DTDs internas

Las DTDs asociadas dentro del mismo documento XML solo funcionan dentro de ese documento XML. Es como si incluyeramos código CSS dentro de un documento HTML mediante la etiqueta <style>. Tienen la siguiente sintaxis:
donde elemento-raíz es el nombre que identifica al tipo de documento, y que también es el nombre que llevará la etiqueta raíz de nuestro XML. Y declaraciones son las declaraciones a incluir. Por ejemplo:
* REDIRECCIÓN[]== DTDs externas ==
Las DTDs asociadas mediante una referencia en el documento XML pueden ser enlazadas a tantos documentos como se quiera. Es como si incluyeramos código CSS dentro de un documento HTML mediante la etiqueta <link>. Tienen la siguiente sintaxis:
donde elemento-raíz es el nombre que identifica al tipo de documento, y que también es el nombre que llevará la etiqueta raíz de nuestro XML. Y ubicación-dtd es la ruta absoluta al documento XML. Por ejemplo:
y marcadores.dtd tendría la siguiente estructura:

# Elementos

Lenguaje XML/Definición de tipo de documento/Elementos

# Atributos

Lenguaje XML/Definición de tipo de documento/Atributos

# Entidades

Lenguaje XML/Definición de tipo de documento/Entidades

# Notaciones

Lenguaje XML/Definición de tipo de documento/Notaciones

# Secciones condicionales

Lenguaje XML/Definición de tipo de documento/Secciones condicionales