Los últimos tutoriales de desarrollo web
 

DTD Tutorial


¿Qué es un DTD?

Una DTD es una definición de tipo de documento.

Un DTD define la estructura y los elementos jurídicos y atributos de un documento XML.


¿Por qué utilizar una DTD?

Con una DTD, grupos independientes de las personas se ponen de acuerdo en una DTD estándar para el intercambio de datos.

Una aplicación puede utilizar una DTD para verificar que los datos XML es válido.


Una declaración de DTD interna

Si el DTD se declara dentro del archivo XML, debe ser envuelto dentro de la <!DOCTYPE> definición:

documento XML con una DTD interna

<?xml version="1.0"?>
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend</body>
</note>
Ver archivo XML »

En el archivo XML, seleccione "view source" para ver la DTD.

El DTD anterior se interpreta así:

  • !DOCTYPE note define que el elemento raíz de este documento es la nota
  • !ELEMENT note define que el elemento nota debe contener cuatro elementos: "to,from,heading,body"
  • !ELEMENT to define el elemento a ser de tipo "#PCDATA"
  • !ELEMENT from define el de elemento a ser de tipo "#PCDATA"
  • !ELEMENT heading define el elemento de partida como de tipo "#PCDATA"
  • !ELEMENT body define el elemento del cuerpo como de tipo "#PCDATA"

Una declaración de DTD externa

Si el DTD se declara en un archivo externo, el <!DOCTYPE> definición debe contener una referencia al archivo DTD:

documento XML con una referencia a una DTD externa

<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>
Ver archivo XML »

Y aquí está el archivo "note.dtd" , que contiene la DTD:

<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>