FANDOM


Un sencillo ejemploEditar

Como va siendo costumbre, comenzamos el capítulo con un sencillo ejemplo. En este caso, el documento XML con el que vamos a trabajar es el siguiente:

<?xml version="1.0"?>
<pelicula>
	<titulo>Brazil</titulo>
</pelicula>

Añadamos una DTD al documento anterior:

<?xml version="1.0"?>
<!DOCTYPE pelicula [
	<!ELEMENT pelicula (titulo)>
	<!ELEMENT titulo (#PCDATA)>
]>
<pelicula>
	<titulo>Brazil</titulo>
</pelicula>

¿Cómo asegurarnos de que de verdad funciona? Cambiemos la DTD para que el documento no sea válido:

<?xml version="1.0"?>
<!DOCTYPE pelicula [
	<!ELEMENT pelicula (director)>
	<!ELEMENT director (#PCDATA)>
]>
<pelicula>
	<titulo>Brazil</titulo>
</pelicula>

DTD externaEditar

En el ejemplo anterior, la DTD estaba incrustada en el documento XML. Es posible separar ambos elementos, proporcionándoles archivos diferentes. Así, podemos situar en un archivo la DTD:

<?xml version="1.0"?>
<!ELEMENT pelicula (titulo)>
<!ELEMENT titulo (#PCDATA)>

En el archivo perteneciente al documento XML se ha de incluir una referencia a dicha DTD, que en este caso se encuentra en el archivo filmoteca.dtd:

<?xml version="1.0"?>
<!DOCTYPE pelicula SYSTEM "filmoteca.dtd">
<pelicula>
	<titulo>Brazil</titulo>
</pelicula>

Caracteres especialesEditar

Es posible utilizar DTD para incluir definiciones de caracteres especiales, como el símbolo del Euro. La forma más directa de insertar este carácter es:

<?xml version="1.0"?>
<precio>19,95 &#x20ac;</precio>

Así se haría utilizando DTD:

<?xml version="1.0"?>
<!DOCTYPE precio [
	<!ENTITY euro "&#x20ac;">
]>
<precio>19,95 &euro;</precio>

Textos que se repitenEditar

Siguiendo el ejemplo de la sección anterior, es posible utilizar atajos para textos que se repitan con frecuencia en los documentos XML, como es el caso del siguiente ejemplo:

<?xml version="1.0"?>
<!DOCTYPE pelicula [
	<!ENTITY om "Obra maestra">
	<!ENTITY bi "Bodrio infumable">
]>
<pelicula>
	<titulo>Brazil</titulo>
	<opinion>&om;</opinion>
</pelicula>

División modularEditar

El empleo de DTD también permite algunas opciones muy interesantes, como situar parte del contenido del documento XML en otros archivos. El siguiente contiene un texto:

<?xml version="1.0"?>
<notas>
	<nota>Las opiniones son responsabilidad de sus autores.</nota>
</notas>

Si quisiese insertarlo en otro documento XML podría hacerlo así:

<?xml version="1.0"?>
<!DOCTYPE pelicula [
	<!ENTITY om "Obra maestra">
	<!ENTITY bi "Bodrio infumable">
	<!ENTITY notas SYSTEM "notas.xml">
]>
<pelicula>
	<titulo>Brazil</titulo>
	<opinion>&om;</opinion>
	&notas;
</pelicula>

Enlaces interesantesEditar

Puede que encuentre interesantes los siguientes enlaces:

El contenido de la comunidad está disponible bajo CC-BY-SA a menos que se indique lo contrario.