Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Lenguajes de Marcas
(IES San Vicente)
Document Type Definition (DTD)
1 DAM
Lenguajes de Marcas
NDICE
1. INTRODUCCIN
ELEMENTOS VACOS..................................................................................................................4
ELEMENTOS QUE SOLO CONTIENEN DATOS .....................................................................................4
ELEMENTOS QUE SOLO CONTIENEN ELEMENTOS ...............................................................................4
ELEMENTOS MIXTOS .................................................................................................................5
4. DECLARACIN DE TIPOS DE ATRIBUTOS.
11
LIBROS Y CD ......................................................................................................................... 11
COCINA ............................................................................................................................... 11
8. XML EN EL NAVEGADOR: CSS
12
15
EJERCICIO 1 .......................................................................................................................... 15
EJERCICIO 2 .......................................................................................................................... 15
Pgina 1
1 DAM
Lenguajes de Marcas
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.
Pgina 2
1 DAM
Lenguajes de Marcas
HTML
PUBLIC
"-//W3C//DTD
HTML
4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
El nombre del elemento debe ser un nombre XML vlido. Solo podr haber una
declaracin por elemento.
Pgina 3
1 DAM
Lenguajes de Marcas
Elementos vacos
Un ejemplo es la declaracin <br /> de XHTML. Se declaran especificando la
palabra EMPTY.
<!ELEMENT br EMPTY>
Pgina 4
1 DAM
Lenguajes de Marcas
Ejemplo:
<!ELEMENT elem (a, (b|c)*, d+, e?>
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)*>
Pgina 5
1 DAM
Lenguajes de Marcas
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>
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
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>
Pgina 7
1 DAM
Lenguajes de Marcas
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>
Pgina 8
1 DAM
Lenguajes de Marcas
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.
Pgina 9
1 DAM
Lenguajes de Marcas
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)>
Pgina 10
1 DAM
Lenguajes de Marcas
habra
que
especificarla,
por
ejemplo:
SYSTEM
../DTDS/mensaje.dtd.
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.
Pgina 11
1 DAM
Lenguajes de Marcas
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
Pgina 12
1 DAM
Lenguajes de Marcas
Pgina 13
1 DAM
Lenguajes de Marcas
</LIBRO>
<!
Aqu podran ir tantos libros como quisisemos con el formato de este,
donde se pueden quitar
los comentarios
-->
</BIBLIOTECA>
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"?>
Pgina 14
1 DAM
Lenguajes de Marcas
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.
Pgina 15