Hola
limboings!
Un DTD o Doument Type Definition es un documento donde vienen todas la reglas de como debe ir bien formado un archivo xhtml, xml, etc...
Por ejemplo tienes un documento XML así:
Código:
<root>
<node1 id="1">Dato1</node1>
<node2 id="2">Dato2</node2>
<node3 id="3">Dato3</node3>
</root>
En tu documento DTD irían todas las reglas:
Código:
<! ELEMENT root (node1,node2,node3) >
<! ELEMENT node1 (#PCDATA) >
<! ELEMENT node2 (#PCDATA) >
<! ELEMENT node3 (#PCDATA) >
<! ATTLIST node1 id CDATA #REQUIRED >
<! ATTLIST node2 id CDATA #REQUIRED >
<! ATTLIST node3 id CDATA #REQUIRED >
Aquí le decimos que nuestro nodo raiz debe de llamarse root y entre paréntesis los nodos hijos que va a tener:
Código:
<! ELEMENT root (node1,node2,node3) >
ELEMENT nos dice que va a tener el documento una etiqueta node1, #PCDATA le dice al parser que va a contener caracteres en dicha etiqueta.
Código:
<! ELEMENT node1 (#PCDATA) >
ATTLIST indica el nombre del atributo que debe de llevar el nodo espedificado, #REQUIRED señala que debe aparecer ese atributo forzosamente cada vez que aparezca el nodo que se indica en ATTLIST y CDATA le dice al parser que van a ser caracteres lo que va a ir dentro del atributo.
Código:
<! ATTLIST node1 id CDATA #REQUIRED >
Hay todavía muchas cosas por ver en relación a los DTD´s, que ahora pueden pasar a la historia y ser sustituidos por los XML SCHEMA, pero eso es otro rollo
Un saludo!