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

De Wikilibros, la colección de libros de texto de contenido libre.
Ir a la navegación Ir a la búsqueda

Índice de la sección
«Definició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[editar]

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:

<!DOCTYPE elemento-raíz [
declaraciones
]>

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:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE marcadores [
   <!ELEMENT marcadores (pagina)*>
   <!ELEMENT pagina (nombre, descripcion, url)>
   <!ELEMENT nombre (#PCDATA)>
   <!ELEMENT descripcion (#PCDATA)>
   <!ELEMENT url (#PCDATA)>
]>
<marcadores>
   <pagina>
      <nombre>Wikilibros</nombre>
      <descripcion>Libros libres para un mundo libre.</descripcion>
      <url>http://www.wikilibros.org/</url>
   </pagina>
   <pagina>
      <nombre>Wikipedia</nombre>
      <descripcion>La enciclopedia libre.</descripcion>
      <url>http://www.wikipedia.org/</url>
   </pagina>
   <pagina>
      <nombre>Wikicionario</nombre>
      <descripcion>El diccionario libre.</descripcion>
      <url>http://www.wiktionary.org/</url>
   </pagina>
</marcadores>

DTDs externas[editar]

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:

<!DOCTYPE elemento-raiz SYSTEM "ubicación-dtd">

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:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE marcadores SYSTEM "http://example.com/dtd/marcadores.dtd">
<marcadores>
   <pagina>
      <nombre>Wikilibros</nombre>
      <descripcion>Libros libres para un mundo libre.</descripcion>
      <url>http://www.wikilibros.org/</url>
   </pagina>
   <pagina>
      <nombre>Wikipedia</nombre>
      <descripcion>La enciclopedia libre.</descripcion>
      <url>http://www.wikipedia.org/</url>
   </pagina>
   <pagina>
      <nombre>Wikicionario</nombre>
      <descripcion>El diccionario libre.</descripcion>
      <url>http://www.wiktionary.org/</url>
   </pagina>
</marcadores>

y marcadores.dtd tendría la siguiente estructura:

<!ELEMENT marcadores (pagina)*>
<!ELEMENT pagina (nombre, descripcion, url)>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT descripcion (#PCDATA)>
<!ELEMENT url (#PCDATA)>
← Definición de tipo de documento/Introducción Definición de tipo de documento/Declaración de tipo de documento Definición de tipo de documento/Elementos →
Lenguaje XML