ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Ejercicio DTD


Enviado por   •  13 de Febrero de 2014  •  1.577 Palabras (7 Páginas)  •  232 Visitas

Página 1 de 7

DTD

1. Introducción

El objetivo de una DTD (Document Type Definition) es definir los bloques de construcción de un documento XML.

Un DTD define la estructura del documento con una lista de elementos y atributos legales.

2. Declaración de un DTD

Un DTD puede ser declarado dentro de un documento XML o como referencia externa.

• Declaración interna de un DTD

Si el DTD es declarado dentro del fichero XML debería estar dentro de una definición DOCTYPE con la siguiente sintaxis:

<!DOCTYPE raiz [elementos]>

Un ejemplo de un XML con su DTD incluído:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mensaje [

<!ELEMENT mensaje (para, de, encabezado, cuerpo)>

<!ELEMENT para (#PCDATA)>

<!ELEMENT de (#PCDATA)>

<!ELEMENT encabezado (#PCDATA)>

<!ELEMENT cuerpo (#PCDATA)>

]>

<mensaje>

<para>Juan</para>

<de>Pablo</de>

<encabezado>Recordatorio</encabezado>

<cuerpo>¡No te olvides de llamarme este fin de semana!</body>

</mensaje>

Este DTD se interpreta así:

 DOCTYPE mensaje, define el elemento raíz del documento.

 ELEMENT mensaje, define uno de los elementos que contiene cuatro descendientes (para, de, encabezado y cuerpo).

 ELEMENT para, define un elemento de tipo #PCDATA.

 ELEMENT de, define un elemento de tipo #PCDATA.

 ELEMENT encabezado, define un elemento de tipo #PCDATA.

 ELEMENT cuerpo, define un elemento de tipo #PCDATA.

• Declaración externa de un DTD

Si el DTD es declarado en un fichero externo al fichero XML debería estar dentro de una definición DOCTYPE con la siguiente sintaxis:

<!DOCTYPE raiz SYSTEM “filename” [elementos]>

Un ejemplo de un XML con su DTD externo:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mensaje SYSTEM “mensaje.dtd”>

<mensaje>

<para>Juan</para>

<de>Pablo</de>

<encabezado>Recordatorio</encabezado>

<cuerpo>¡No te olvides de llamarme este fin de semana!</body>

</mensaje>

3. Los elementos de los documentos XML

Para construir un XML los elementos que se definen en su DTD son:

o Elementos.

o Atributos.

o Entidades.

o PDDATA.

o CDATA.

ELEMENTOS

Son los bloques principales de documentos HTML, por ejemplo “body” o “table” y para XML, por ejemplo “mensaje”.

ATRIBUTOS

Proporcionan información extra sobre los elementos y van al lado de éstos, por ejemplo:

<img src="computer.gif" />

ENTIDADES

Algunos caracteres tiene un significado especial en XML como los siguientes:

• < equivale al carácter <.

• > equivale al carácter >.

• & equivale al carácter &.

• " equivale al carácter “.

• &apos; equivale al carácer '.

• &ntilde; equivale al carácter ñ.

PCDATA

Significa datos de carácter parseados encontrados entre las etiquetas de los elementos. Es texto que será parseado por un analizador de entidades y marcado.

Las etiquetas dentro del texto serán tratadas como marcado y las entidades serán expandidas.

CDATA

Significa datos de carácter encontrados entre las etiquetas de los elementos. Es texto que no debería ser parseado por un analizador de entidades y marcado.

Las etiquetas dentro del texto NO serán tratadas como marcado y las entidades serán expandidas.

4. Declarando elementos

Los elementos son declarados con:

<!ELEMENT nombre categoria>

o

<!ELEMENT nombre (contenido)>

• Elementos vacios

Son declarados con la palabra EMPTY:

<!ELEMENT nombre EMPTY>

• Elementos con PCDATA

Son declarados con #PCDATA entre paréntesis:

<!ELEMENT nombre (#PCDATA)>

• Elementos con cualquier contenido

Son declarados con la palabra ANY y puede contener cualquier combinación de datos:

<!ELEMENT nombre ANY>

• Elementos con hijos

Son declarados con los hijos entre paréntesis:

<!ELEMENT nombre (hijo)>

<!ELEMENT nombre (hijo1, hijo2,...)>

Cuando los hijos son declarados en una secuencia separados por comas, los hijos tienen que aparecer en el mismo orden:

<!ELEMENT mensaje (para, de, encabezado, cuerpo)>

<!ELEMENT para (#PCDATA)>

<!ELEMENT de (#PCDATA)>

<!ELEMENT encabezado (#PCDATA)>

<!ELEMENT cuerpo (#PCDATA)>

• Declarando sólo una ocurrencia de cualquier elemento

Crearemos un solo elemento mensaje:

<!ELEMENT nombre (hijo)>

• Declarando un mínimo de una ocurrencia de un elemento

Con el signo + el hijo debe aparecer una o más veces:

<!ELEMENT nombre (hijo+)>

• Declarando cero o más acurrencias de un elemento

Con el signo * el hijo puede aparecer varias veces o no aparecer:

<!ELEMENT nombre (hijo*)>

• Declarando cero o una ocurrencia de un lemento

Con el signo ? el hijo puede aparecer una vez o ninguna:

<!ELEMENT nombre (hijo?)>

• Declarando uno u otro contenido (elemento)

Con el signo | el hijo puede ser uno de varios mostrados:

<!ELEMENT nombre (hijo1|hijo2)>

Ejercicios

1. Construir un documento DTD para que el siguiente documento XML sea válido:

<?xml version="1.0"?>

<!DOCTYPE agenda SYSTEM "ejemplo-agenda.dtd">

<agenda>

<persona>

<nombre>Ricardo Borriquero</nombre>

<tlf>951345678</tlf>

</persona>

<persona>

<nombre>Eva Risto</nombre>

<tlf>955837659</tlf>

</persona>

</agenda>

2. Ampliar el ejemplo anterior de forma que además del nombre y teléfono, cada entrada de la agenda esté definida como persona del sexo masculino o femenido, tenga uno o varios emails, y se puedan especificar relaciones de amistad entre las diferentes personas de la agenda.

5. Declarando atributos

...

Descargar como (para miembros actualizados) txt (12 Kb)
Leer 6 páginas más »
Disponible sólo en Clubensayos.com