Está en la página 1de 16

1 DAM

Lenguajes de Marcas
(IES San Vicente)
Document Type Definition (DTD)

1 DAM

Lenguajes de Marcas

(IES San Vicente)

NDICE
1. INTRODUCCIN

2. DECLARACIN DEL DTD

3. DECLARACIN DE TIPOS DE ELEMENTOS

ELEMENTOS VACOS..................................................................................................................4
ELEMENTOS QUE SOLO CONTIENEN DATOS .....................................................................................4
ELEMENTOS QUE SOLO CONTIENEN ELEMENTOS ...............................................................................4
ELEMENTOS MIXTOS .................................................................................................................5
4. DECLARACIN DE TIPOS DE ATRIBUTOS.

ATRIBUTOS CDATA Y NMTOKEN ..............................................................................................5


ATRIBUTOS ENUMERADOS .........................................................................................................6
ATRIBUTOS ID E IDREF .............................................................................................................6
VALORES POR DEFECTO PARA LOS ATRIBUTOS .................................................................................7
5. DECLARACIN DE ENTIDADES

ENTIDAD INTERNA ....................................................................................................................7


ENTIDAD EXTERNA ...................................................................................................................8
6. LA DECLARACIN DEL TIPO DE DOCUMENTO DOCTYPE

DECLARACIN DTD INTERNA ......................................................................................................8


VALIDAR UN DOCUMENTO XML ..................................................................................................9
DECLARACIN DTD EXTERNA .....................................................................................................9
7. EJERCICIOS

11

LIBROS Y CD ......................................................................................................................... 11
COCINA ............................................................................................................................... 11
8. XML EN EL NAVEGADOR: CSS

12

POR QU NECESITAMOS HOJAS DE ESTILO..................................................................................... 12


HOJAS DE ESTILO EN CASCADA Y XML ......................................................................................... 13
9. EJERCICIOS

15

EJERCICIO 1 .......................................................................................................................... 15
EJERCICIO 2 .......................................................................................................................... 15

Document Type Definition (DTD)

Pgina 1

1 DAM

Lenguajes de Marcas

(IES San Vicente)

1. Introduccin
Cabe hacer hincapi, en que cuando un documento XML no contiene un DTD,
cualquier etiqueta que aparezca en el mismo se considerar vlida. De manera
que, el parser solo podr comprobar que el documento est bien formado. La
existencia del DTD, permite asegurar que los documentos siguen las reglas del
lenguaje.
Cuando se pretende usar XML en un entorno profesional, es imprescindible la
especificacin de un DTD que defina formalmente el lenguaje de etiquetado
requerido. Este debe ser el primer paso antes de escribir ningn documento XML.
Se puede observar una cierta similitud en la forma de trabajo con una base de
datos, donde el primer paso es la definicin del esquema y, posteriormente, el
resto de usuarios ya pueden trabajar contra este esquema.
En el captulo anterior, hemos visto cmo crear documentos XML bien formados.
En este captulo vamos a conseguir crear documentos bien formados y vlidos. Por
ejemplo, el primer ejercicio del captulo anterior versaba sobre un documento XML
que una empresa mandaba a un sitio web para ofertar ciertos artculos (coches).
Imaginemos que muchas empresas mandan informacin a este sitio web y cada
una de ellas implementa su propia versin de documento XML. El sitio web debe
ser capaz de entender todos los documentos que le llegan y tratar la informacin
que contienen.
Esto es inviable. La solucin ptima es que la empresa web anunciante cree un
DTD donde define cmo deben ser exactamente los documentos que va a recibir.
Todas las empresas que quieran anunciar productos, enviaran documentos XML
validados por esta DTD (ya veremos cmo ms adelante). De esta forma, nos
aseguramos que el sitio web va a recibir documentos XML vlidos.

2. Declaracin del DTD


Como se ha explicado anteriormente, el DTD, que es de carcter opcional forma
parte del prlogo del documento, apareciendo justo despus de la declaracin
XML. El DTD puede incluir directamente declaraciones de etiquetado y/o hacer
referencia a una entidad externa, normalmente un archivo, que contiene

Document Type Definition (DTD)

Pgina 2

1 DAM

Lenguajes de Marcas

(IES San Vicente)

declaraciones de etiquetado. Adems, la declaracin debe especificar cul es el


elemento raz del documento.
<?xml versin=1.0?>
<[DOCTYPE elemento_raiz [
Las declaraciones internas van aqu
]>
<elemento_raiz></elemento_raiz>

Normalmente un DTD se utiliza para validar un gran nmero de documentos XML.


La mayora de las veces tiene poco sentido que el DTD est incluido dentro del
documento XML ya que se tendra que repetir en todos los documentos XML
pertenecientes a un mismo lenguaje (DTD). Teniendo esto en cuenta se puede
distinguir entre dos tipos de referencias externas:
Un documento DTD an no publicado. Se especifica con la palabra SYSTEM
seguida de la URL con la ubicacin del documento:
<!DOCTYPE elemento_raiz SYSTEM archivo_declaraciones.dtd>

En caso de utilizar un DTD que ha sido publicado, utilizaremos la palabra


PUBLIC seguida por el identificador pblico asociado a este DTD. Sigue
siendo necesario incluir la URL al fichero DTD, que solo ser utilizado en
caso de fallar la localizacin del fichero. Por ejemplo, usamos el
identificador pblico para validar documentos XHTML:
<!DOCTYPE

HTML

PUBLIC

"-//W3C//DTD

HTML

4.01//EN"

"http://www.w3.org/TR/html4/strict.dtd">

Que es la DTD pblica utilizada para validar documentos XHTML estrictos.


(Al fin y al cabo los documentos XHTML no son ms que documentos HTML
que utilizan DTD's para asegurar que el documento HTML es vlido).

3. Declaracin de tipos de elementos


Durante el proceso de diseo, se identifican los distintos tipos de elementos que
forman parte del documento. En el DTD hay que incluir la declaracin de cada uno
de ellos.
<!ELEMENT nombre tipo_contenido>

El nombre del elemento debe ser un nombre XML vlido. Solo podr haber una
declaracin por elemento.

Document Type Definition (DTD)

Pgina 3

1 DAM

Lenguajes de Marcas

(IES San Vicente)

Podemos tener diferentes tipos de elementos clasificados segn su contenido:


vacos, que slo contienen datos, que slo contienen elementos y mixtos.

Elementos vacos
Un ejemplo es la declaracin <br /> de XHTML. Se declaran especificando la
palabra EMPTY.
<!ELEMENT br EMPTY>

Elementos que solo contienen datos


En la declaracin se especifica con #PCDATA.
<!ELEMENT first (#PCDATA)>
<!ELEMENT last (#PCDATA)>

Atendiendo a esta definicin, el cdigo <first>John</first><last>Doe</last>


sera vlido, ya que, los elementos 'first' y 'last' solo contienen datos (texto).

Elementos que solo contienen elementos


Se distinguen dos tipos de relacin entre los elementos hijos:
Secuenciales: Imaginemos un elemento mensaje que contiene elementos
hijos: remitente, destinatario, asunto y cuerpo. La declaracin del elemento
mensaje sera:
<!ELEMENT mensaje (remitente, destinatario, asunto, cuerpo)>

Alternativos: Cuando el elemento contiene uno, y solo uno, de los


elementos hijos especificados. Por ejemplo:
<!ELEMENT persona (fsica | jurdica)>

Adems de especificar qu elementos hijos puede contener el elemento y en qu


orden, se puede establecer cuntas veces aparece cada uno de ellos, mediante un
carcter que, basndose en las expresiones regulares, indique el factor de
repeticin:
El carcter *: el elemento o grupo de elementos puede repetirse 0 o ms
veces.
El carcter ?: el elemento o grupo de elementos puede aparecer 0 o 1
veces.
El carcter +: el elemento o grupo de elementos puede repetirse 1 o ms
veces.
Por defecto, si no ponemos nada, el elemento debe aparecer una vez.
Document Type Definition (DTD)

Pgina 4

1 DAM

Lenguajes de Marcas

(IES San Vicente)

Ejemplo:
<!ELEMENT elem (a, (b|c)*, d+, e?>

De acuerdo a esta declaracin, podemos encontrarnos con los siguientes


documentos vlidos:
<elem><a></a><d></d><elem>
<elem><a></a><d></d><d></d><e></e><elem>
<elem><a></a><b></b><d></d><elem>
<elem><a></a><c></c><b></b><c></c><d></d><elem>

Elementos mixtos
Como vimos en el tema anterior, este caso no suele utilizarse en XML. Se puede
especificar qu elementos hijos podrn aparecer, pero sin ningn control sobre su
frecuencia o si forman parte de una secuencia alternativa. La declaracin sera:
<!ELEMENT elem (#PCDATA|a|b|c)*>

El formato de esta declaracin es muy rgido: Siempre en primer lugar PCDATA,


una lista alternativa, no se puede aplicar caracteres de repeticin a los elementos
hijos y debe especificarse obligatoriamente el carcter de repeticin * a todo el
grupo.

4. Declaracin de tipos de atributos.


Al igual que ocurre con los elementos, cada uno de los distintos atributos
identificados en la fase de diseo, debe declararse en el DTD. Una nica
declaracin permite definir una lista de atributos asociados a un elemento. La
sintaxis es la siguiente:
<!ATTLIST elemento atrib1 atrib2 atrib3 >

Puede haber mltiples definiciones de listas de atributos para un mismo elemento.


Pero si se declara varias veces el mismo atributo solo prevalece el primero.

Atributos CDATA y NMTOKEN


El tipo de atributos CDATA consiste en una cadena de caracteres. Esta cadena
puede incluir cualquier carcter a excepcin de los caracteres especiales, incluidos
los espacios en blanco. Si pretendemos limitar el tipo de caracteres que pueden
aparecer como valor en el atributo, debemos utilizar el tipo NMTOKEN. Ese solo
permite que aparezcan los mismos caracteres que utilizamos para definir elementos
Document Type Definition (DTD)

Pgina 5

1 DAM

Lenguajes de Marcas

(IES San Vicente)

y atributos. Existe tambin la posibilidad de utilizar el tipo NMTOKENS, esto indica


que el atributo contendr una lista de cadenas de tipo NMTOKEN.
Ejemplos:
<!ATTLIST coche color CDATA>

La propiedad color puede tomar cualquier valor.


<!ATTLIST coche color NMTOKEN>

La propiedad color puede tomar solo valores que contengan letras, dgitos,
puntos, guiones y subrayados. Deben comenzar por letra y no pueden
contener espacios en blanco.
<ATTLIST coche color NMTOKENS>

La propiedad color ser una lista de NMTOKENS. Por ejemplo:


<coche color=blanco negro gris>

Atributos enumerados
Se usan cuando el valor del atributo est restringido a un conjunto de valores. En
la declaracin se usa el carcter | para separar los valores.
<!ATTLIST coche color (blanco | negro | gris)>

De esta forma, la propiedad color solo puede tomar los valores blanco, negro o
gris. Cualquier otro valor har que la validacin del documento XML falle.

Atributos ID e IDREF
Es frecuente que algunos elementos tengan algn valor que los identifica de forma
unvoca. Cuando un elemento contiene una propiedad de este tipo, hay que
asegurarse que esta no se repite en otro elemento (incluso con elementos
diferentes). La sintaxis es la siguiente:
<!ATTLIST coche matricula ID>

Con esto, nos aseguramos que en todo el documento XML, no habr otro elemento
con un identificador igual. El valor del atributo identificador debe seguir las mismas
reglas que los nombres de atributos y elementos.
Adems, como es un identificador nico permite que otros elementos puedan hacer
referencia a l. Para ello, pueden utilizar el tipo IDREF. Por tanto, los valores que
puede tomar un atributo IDREF, son el conjunto de identificadores que estn
declarados en el documento. Tambin podemos utilizar el tipo IDREFS, que no es
ms que extender la definicin de IDREF a una lista de valores.
<
Document Type Definition (DTD)

Pgina 6

1 DAM

Lenguajes de Marcas

(IES San Vicente)

!ATTLIST coche matricula ID>


<
!ATTLIST multa matricula IDREF>

Valores por defecto para los atributos


Adems del nombre y el tipo del atributo, tambin se puede especificar cmo debe
comportarse el parser ante la presencia o ausencia de cierto atributo en un
elemento del documento. Existen cuatro posibles alternativas:
#REQUIRED. El atributo es de carcter obligatorio.
#IMPLIED. El atributo es opcional.
#FIXED. El atributo tiene un valor fijo declarado en el DTD.

Si no se define ninguna de estas alternativas, el atributo ser por defecto


opcional.
Algunos casos especiales son, por ejemplo, los atributos de tipo ID que pueden ser
opcionales u obligatorios, pero no pueden tomar valores por defecto ni ser fijos.
Ejemplos:
<!ATTLIST coche matricula ID #REQUIRED>
<!ATTLIST coche color CDATA #IMPLIED>
<!ATTLIST coche color CDATA gris>
<!ATTLIST coche marca FIXED Ford>

5. Declaracin de Entidades
En general, entidad se refiere a un objeto usado para guardar informacin, y por
ello, necesariamente, cada documento tiene, al menos, la entidad del propio
documento. Permite guardar contenido que puede ser utilizado muchas veces y
descompone un documento grande en subconjuntos ms manejables.

Entidad interna
Es la ms sencilla. Consiste en abreviaturas definidas en el DTD. Por ejemplo:
<!ENTITY derechos Copyright 2002>

Al definir esta entidad, en el documento XML podemos utilizarla escribiendo


&derechos;. El parser cambiar la entidad por el valor asignado.

Document Type Definition (DTD)

Pgina 7

1 DAM

Lenguajes de Marcas

(IES San Vicente)

Entidad externa
El contenido no est dentro del DTD, sino en cualquier otro sitio del sistema. Se
hace referencia a su contenido mediante una URI precedida de la palabra SYSTEM
o PUBLIC segn proceda. La sintaxis es:
<!ENTITY nombre SYSTEM URI>

Por ejemplo:
<!ENTITY intro SYSTEM http://ww.miservidor.com/intro.xml>

Estas entidades externas permiten descomponer grandes archivos en unidades ms


pequeas.

6. La declaracin del tipo de documento DOCTYPE


La declaracin es opcional y slo puede aparecer una vez dentro del documento.
Debe seguir a la declaracin XML, si existe, y preceder a cualquier elemento o
contenido de datos. Entre la declaracin XML y DOCTYPE solo se pueden insertar
comentarios. Todo documento que deba ser validado, debe contener una
declaracin DOCTYPE.
<!DOCTYPE elemento_raz origen ubicacin [subconjunto interno]>

Declaracin DTD interna


Ejemplo de un documento XML con una declaracin DTD interna:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE mensaje [
<!ELEMENT mensaje (para,de,titulo,cuerpo)>
<!ELEMENT para (#PCDATA)>
<!ELEMENT de (#PCDATA)>
<!ELEMENT titulo (#PCDATA)>
<!ELEMENT cuerpo (#PCDATA)>
]>
<mensaje>
<para>Jose</para>
<de>Maria</de>
<titulo>Recordatorio</titulo>
<cuerpo>Recuerda que el sbado iremos al cine</cuerpo>
</mensaje>

Document Type Definition (DTD)

Pgina 8

1 DAM

Lenguajes de Marcas

(IES San Vicente)

Cuando este documento sea analizado por un parser, primero comprobar que est
bien formado, luego comprobar que los elementos y atributos corresponden con
la definicin dada en el DTD.

Validar un documento XML


Para comprobar la validacin vamos a guardar el contenido del documento anterior
en un documento llamado msgdtd.xml. Y lo abriremos con la herramienta
CookTop:
Una vez abierto el documento, si pulsamos sobre el botn validar, nos debe
aparecer en la parte inferior (barra de estado) el texto the XML document is
valid. Esto significa que el documento XML es vlido. En caso contrario,
imaginemos que por error introducimos dos etiquetas <de> en el documento:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE mensaje [
<!ELEMENT mensaje (para,de,titulo,cuerpo)>
<!ATTLIST mensaje prioridad (urgente | normal | baja) #REQUIRED>
<!ELEMENT para (#PCDATA)>
<!ELEMENT de (#PCDATA)>
<!ELEMENT titulo (#PCDATA)>
<!ELEMENT cuerpo (#PCDATA)>
]>
<mensaje prioridad="normal">
<para>Jose</para>
<de>Maria</de>
<de>Maria</de>
<titulo>Recordatorio</titulo>
<cuerpo>Recuerda que el sbado iremos al cine</cuerpo>
</mensaje>

Si ahora procedemos a comprobar la validez del documento CookTop nos mostrar


un error, ya que, en el DTD tenemos definido solo un elemento <de>. El texto de
la barra de estado cambiar a the XML Document is not valid.

Declaracin DTD externa


La segunda manera, y la ms utilizada, de declarar el DTD con el que hay que
validar un fichero XML, es separar el documento XML del DTD. Por tanto, la
declaracin DTD ir en un fichero y el XML en otro fichero. Esto es muy habitual,
porque si hay que generar muchos documentos XML que se validan con un mismo
Document Type Definition (DTD)

Pgina 9

1 DAM

Lenguajes de Marcas

(IES San Vicente)

DTD, no es prctico incluir en todos los documentos XML la declaracin DTD.


Imaginemos el ejemplo del tema anterior. Donde debemos mandar un documento
XML con informacin sobre los coches que tenemos en oferta. Adems de
mandarlo nosotros, es fcil imaginar, que muchos concesionarios mandan
peridicamente esta informacin al portal para que se actualice. Por tanto, es
lgico pensar dos cosas. La primera, es que no tiene sentido mandar el DTD junto
con todos los ficheros, porque estamos repitiendo la misma informacin muchas
veces. La segunda, es que el DTD deber ser comn para todos los concesionarios,
de forma que, el portal de ofertas entienda perfectamente cualquier XML que le
mandan los concesionarios. Por tanto, lo lgico es que sea el portal quien disee el
DTD con la informacin que necesita y cmo la necesita. Los concesionarios crean
los documentos XML con la estructura dada y los mandan al portal, el cual, los
valida antes de tratarlos.
La sintaxis en este caso sera:
<!DOCTYPE oferta SYSTEM http://www.servidor.com/oferta.dtd>

De esta forma, el que recibe el documento XML sabe con qu DTD debe validarlo
antes de procesarlo.
Siguiendo con el ejemplo anterior de los mensajes, vamos a separar del documento
anterior, la definicin DTD del documento XML. Para ello, creamos los dos ficheros
siguientes:
<?xml version="1.0" encoding=ISO-8859-1 ?>
<!DOCTYPE mensaje SYSTEM "mensaje.dtd">
<mensaje prioridad="normal">
<para>Jose</para>
<de>Maria</de>
<titulo>Recordatorio</titulo>
<cuerpo>Recuerda que el sbado iremos al cine</cuerpo>
</mensaje>
<!ELEMENT mensaje (para,de,titulo,cuerpo)>
<!ATTLIST mensaje prioridad (urgente | normal | baja) #REQUIRED>
<!ELEMENT para (#PCDATA)>
<!ELEMENT de (#PCDATA)>
<!ELEMENT titulo (#PCDATA)>
<!ELEMENT cuerpo (#PCDATA)>

Document Type Definition (DTD)

Pgina 10

1 DAM

Lenguajes de Marcas

(IES San Vicente)

Al primero, le podemos llamar mensaje.xml y, al segundo, debemos llamarle


mensaje.dtd, que es el nombre utilizado en la declaracin DOCTYPE. Es importante
que los dos ficheros estn en el mismo directorio, porque en la declaracin
DOCTYPE hemos escrito: SYSTEM mensaje.dtd. En caso de estar en diferente
ubicacin,

habra

que

especificarla,

por

ejemplo:

SYSTEM

../DTDS/mensaje.dtd.

Si abrimos el nuevo documento con Cooktop y lo validamos obtendremos el mismo


resultado anterior. Podemos comprobar a introducir algn error (como la
duplicacin del elemento <de>) y ver como Cooktop nos informa del error.

7. Ejercicios
Libros y CD
Escribir un DTD, para cada uno de los ejercicios del tema anterior, el de la
bsqueda de libros y el del CD. Realizar las modificaciones necesarias en los
documentos XML para que se validen contra los DTD's creados.

Cocina
El fichero cocina.htm tiene definidas una serie de recetas. Se debe crear un DTD
para modelar esta informacin y crear un documento XML con las recetas que se
valide con este DTD.

Document Type Definition (DTD)

Pgina 11

1 DAM

Lenguajes de Marcas

(IES San Vicente)

8. XML en el navegador: CSS


Hasta el momento hemos visto qu es XML y las remomendaciones sobre sus usos
posibles. Conocemos los fundamentos sobre XML bien formados y vlidos. XML se
encarga de la estructura de la informacin, pero no de la presentacin, pero hoy
en da, la presentacin visual es un factor importante.
Las hojas de estilo sirven para mejorar la expresividad de los datos XML.

Por qu necesitamos hojas de estilo


Al comenzar a trabajar con XML, nos podemos preguntar: Cmo sabe el
navegador que aspecto debe tener una etiqueta XML? La respuesta es sencilla y
poco reconfortante: no lo sabe.
Veamos el siguiente documento XML
<document>
<head>
<title>Cascading Style Shets</title>
<author>Kurt Gagle</author>
<date>15 March 2003</date>
</head>
<body>
Una de las preguntas ms comunes que realizan los que empiezan a
trabajar con XML es esta:
<quotation>
cmo sabe el navegador como tratar una etiqueta arbitraria?
</quotaion>
la respuesta es que no lo sabe.
</body>
</document>

No hay nada definido en el documento que indique al navegador cmo debe hacer
frente a determinadas etiquetas. Es ms, las etiquetas como <title>, <head>,
<body>, puede interpretarlas errneamente asimilndolas como etiquetas HTML.
Esta es la principal diferencia entre XML y HTML. Las etiquetas HTML tienen
funcionalidades bien definidas y un navegador tiene una hoja de estilo definida de
manera implcita para las etiquetas HTML. As, por ejemplo, la etiqueta <h1> se
corresponde con una fuente times new roman de tamao 24 puntos, pero esta es
una convencin de los navegadores, ya que, HTML no indica cmo se debe

Document Type Definition (DTD)

Pgina 12

1 DAM

Lenguajes de Marcas

(IES San Vicente)

representar esta etiqueta, slo que el contenido de esta etiqueta, ser el


encabezado ms importante del documento.
En otras palabras, el navegador HTML suministra un mapa que asocia una etiqueta
determinada con una regla que describe cmo se genera dicha etiqueta. Esta regla
contiene mucha informacin acerca del elemento, desde las caractersticas del
texto, o si el contenido se visualiza en bloques separados, el espacio de separacin
entre el elemento y los que lo rodean etc.

Hojas de estilo en cascada y XML


Por suerte, la diferencia entre CSS en HTML y CSS en XML es mnima.
Comprendiendo su funcionamiento en HTML, se puede aplicar rpidamente a XML.
Una de las diferencias principales es que el atributo style, el atributo class y los
elementos <STYLE> y <LINK> no tienen significado en XML.
La instruccin de procesamiento xml-stylesheet se utiliza para definir la hoja de
estilo para XML. Su sintaxis:
<? xml-stylesheet type=tipo_mime href=url_hoja_estilo ?>

En realidad, esta sintaxis es muy parecida al elemento LINK en HTML. En general,


tipo mime ser text/css. Y la declaracin, deber ser incluida despus de la
declaracin XML, pero antes del primer elemento del documento XML.
Vamos a ver un ejemplo de cmo aplicar una hoja de estilo a un documento CSS.
Partimos del siguiente documento XML:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE BIBLIOTECA SYSTEM "biblioteca.dtd">
<!-- HASTA AQUI ES PROLOGO-->
<BIBLIOTECA>
<!-- ELEMENTO DE DOCUMENTO-->
<LIBRO>
<TITULO>LA REGENTA</TITULO>
<AUTOR>Leopoldo Alas "Clarin"</AUTOR>
<EDITORIAL>RBA Editores</EDITORIAL>
<CUBIERTA TIPO="DURA" />
<CATEGORIA CLASE="FICCION" />
<ISBN>ISBN-33490</ISBN>
<NOTA CALIF="4" />
<COMENTARIOS>
Es un clsico muy bueno aunque se puede hacer difcil de leer
</COMENTARIOS>
Document Type Definition (DTD)

Pgina 13

1 DAM

Lenguajes de Marcas

(IES San Vicente)

</LIBRO>
<!
Aqu podran ir tantos libros como quisisemos con el formato de este,
donde se pueden quitar
los comentarios
-->
</BIBLIOTECA>

Para escribir el XML anterior hemos partido del siguiente DTD:


<!ELEMENT BIBLIOTECA (LIBRO*)>
<!ELEMENT LIBRO (TITULO, AUTOR, EDITORIAL, CUBIERTA, CATEGORIA, ISBN,
NOTA, COMENTARIOS?)>
<!ELEMENT TITULO (#PCDATA) >
<!ELEMENT AUTOR (#PCDATA) >
<!ELEMENT EDITORIAL (#PCDATA) >
<!ELEMENT CUBIERTA EMPTY>
<!ATTLIST CUBIERTA TIPO (BLANDA|DURA) "BLANDA">
<!ELEMENT CATEGORIA EMPTY>
<!ATTLIST

CATEGORIA

CLASE

(FICCION|FANTASIA|TERROR|HISTORICO)

"FICCION">
<!ELEMENT ISBN (#PCDATA) >
<!ELEMENT NOTA EMPTY>
<!ATTLIST NOTA CALIF (1 |2|3|4|5) "3">
<!ELEMENT COMENTARIOS (#PCDATA) >

Ahora vamos a definir una hoja de estilo con las reglas que queremos aplicar a los
diferentes elementos de los que consta el documento XML:
BIBLIOTECA { display: block; background-color: cyan }
LIBRO { display: block; font-size:14pt; }
TITULO { display: block; font-size: 18pt; font-weight: bold }
AUTOR { display: block; font-style: italic; text-indent: 2em }
EDITORIAL { display: block; text-indent: 2em }
ISBN { display: block; font-size:12pt; text-indent: 2em }
COMENTARIOS { display: block; color:darkred;text-indent: 3em }

Una vez tenemos los ficheros XML, CSS y DTD en un mismo directorio, podemos
abrir el documento XML con un navegador y ver qu ocurre. Si todo ha ido bien, el
navegador debe mostrarnos el documento XML, pero sin el estilo esperado, ya que
no hemos incluido en el documento XML la instruccin de procesamiento necesaria:
<?xml-stylesheet type="text/css" href="biblioteca.css"?>

Una vez aadida la lnea anterior ya s debemos ver en nuestro navegador el


documento XML con el estilo que hemos definido en la hoja CSS.

Document Type Definition (DTD)

Pgina 14

1 DAM

Lenguajes de Marcas

(IES San Vicente)

9. Ejercicios
Ejercicio 1
Ampliar el ejemplo de la biblioteca con ms libros. Modificar a vuestro gusto el
fichero CSS. Probar diferentes reglas CSS para modificar mrgenes, bordes, etc.

Ejercicio 2
Crear una presentacin CSS para el ejercicio de recetas realizado en el punto
anterior.

Document Type Definition (DTD)

Pgina 15

También podría gustarte