XML y DTD. Vincular un DTD con un documento

Actualizado el 01/04/2007 < > 0 Comentarios

Resúmen: Tutorial para aprender a vincular un documento XML a un DTD.

Meneame Bitacoras

Cómo vincular un DTD con un documento XML

Para que un documento XML quede vinculado a un DTD determinado, tenemos dos opciones: incluir el DTD en el documento XML o usar una referencia externa al DTD. La primera opción es la más fácil de usar, pero la que presenta más inconvenientes, ya que aumenta el tamaño de los documentos XML y complica su mantenimiento, puesto que un cambio en el DTD implica revisar todos los documentos en los que lo hemos incluido. El formato de un documento XML donde hubiésemos incluido sería:

<?xml version="1.0"?>
	<!DOCTYPE Receta [
	<!ELEMENT Receta (Nombre, Descripcion?,
	Ingredientes?, Instrucciones?)>
	<!ELEMENT Nombre (#PCDATA)>
	<!ELEMENT Descripcion (#PCDATA)>
	<!ELEMENT Ingredientes (Ingrediente)*>
	<!ELEMENT Ingrediente (Cantidad, Item)>
	<!ELEMENT Cantidad (#PCDATA)>
	<!ATTLIST Cantidad unidad CDATA #REQUIRED>
	<!ELEMENT Item (#PCDATA)>
	<!ATTLIST Item opcional CDATA "0"
	vegetariano CDATA "si">
	<!ELEMENT Instructiones (Paso)+>
	<!ELEMENT Paso (#PCDATA)>
	]>
	<Receta>
	<Nombre>Tortilla de patatas</NOMBRE>
	<Descripcion>
	La tradicional y típica tortilla de patatas, tal
	como la hacen todas las madres.
	</Descripcion>
	<Ingredientes>
	<Ingrediente>
	<Cantidad unidad="pieza">3</Cantidad>
	<Item>Patata</Item>
	</Ingrediente>
	<Ingrediente>
	<Cantidad unidad="pieza">2</Cantidad>
	<Item>Huevos</Item>
	</Ingrediente>
	<Ingrediente>
	<Cantidad unidad="litro">0.1</Cantidad>
	<Item>Aceite</Item>
	</Ingrediente>
	</Ingredientes>
	<Instrucciones>
	<Paso>
	Pelar y cortar la patata en rodajas
	</Paso>
	<Paso>
	Poner aceite en una paella
	</Paso>
	<!-- ... ... -->
	</Instrucciones>
	</Receta>

Podemos referenciar un DTD externo al documento XML. Para ello disponemos de dos tipos de referencias posibles: públicas o privadas. Un ejemplo de referencia privada es el siguiente:

<?xml version=“1.0”?>
	<!DOCTYPE Receta SYSTEM “receta.dtd”>
	<Receta>
	...

Y otro, usando ahora una referencia externa pública:

<?xml version=“1.0”?>
	<!DOCTYPE Receta
	PUBLIC “-//W3C//DTD XHTML 1.0 STRICT/EN”
	“http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
	<Receta>
	...
Meneame Bitacoras

Publicado el 01/04/2007, última actualización 01/04/2007.

Autor: Carles Mateu

URL: No especificado

(Subir al texto)

Añadir Comentario

* Campos obligatorios