Professional Documents
Culture Documents
Tema 3. DTD
Tema 3. DTD
DTD
Definición
La declaración XML que se puede escribir al principio de un documento XML, empieza
con los caracteres "<?" y termina con "?>" al igual que las instrucciones de
procesamiento. Sin embargo, la declaración XML no es una instrucción de
procesamiento (o proceso).En un documento XML no es obligatorio que aparezca. Y
no se muestra en el navegador.
Texto,
<!ELEMENT
(#PCDATA).Cualquier <ciudad>Roma</ciudad>
ciudad(#PCDATA)>]>
txto.
<nombre>Roma</nombre>
Otros <!ELEMENT nombre (#PCDATA)>
elementos(hijos).
<pais>Italia</pais>
<!ELEMENT pais (#PCDATA)>
</ciudad>
<ciudad>
<!DOCTYPE persona [
<?
xmlversion="1.0"encoding="
UTF-8"?>
<!ATTLIST br descripcion
CDATA#REQUIRED>
<?
xmlversion="1.0"encoding="
ANY. Cualquier UTF-8"?><!DOCTYPEejemplo[ <ejemplo><cualquier_contenido>
contenido.Txto,ele <texto>Texto1</texto>
mentos o ambos. <!ELEMENTejemplo(cualquie <texto>Texto2</texto>
No se le puede r_contenido)> <texto>Texto3</texto>
poner asterisco. </cualquier_contenido></ejemplo>
<!ELEMENT
cualquier_contenidoANY>
CORREGIR ERRORES DE DTD Y XML
29
<paises>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paises [ <pais>italia</pais>
28
ELEMENTOS OPCIONALES
En la DTD asociada a un documento XML se pueden declarar elementos que tengan elementos hijos
opcionales. Para eso se marca con una barra. Y obligatoriamente tendrá que contener uno de ellos
pero sólo uno. Al utilizar el operador de elección (|) en una DTD, si una de las opciones es #PCDATA,
esta debe escribirse en primer lugar y luego las otras opciones. (diapo 41). Si es PCDATA se pone
suelto sin etiqueta (Diapo 42).
<!DOCTYPE articulo [
<!ELEMENT id (#PCDATA)>]>
]>
Ejemplo en el que si aparecerían los dos y varias veces y en el orden que quieran: (diapo 38)
<!DOCTYPE articulos [
<!ELEMENT id (#PCDATA)>]>
]>
DECLARACIÓN DE ATRIBUTOS
<!ATTLIST nombre-del-elemento nombre-del-atributo tipo-de-atributo valor-del-atributo>
TIPOS DE ATRIBUTOS
CDATA: el atributo contiene caracteres (sin restricciones)
<!ELEMENT f1 (#PCDATA)>
<!ATTLIST f1 pais CDATA "España">
Para el elemento "f1", pais es un atributo definido de tipo CDATA que tiene un valor por defecto que es
España. Si no se le asigna otro será España.
<!ELEMENT f1 (#PCDATA)>
En una DTD, cuando se declara más de un atributo para un elemento –como se ha hecho en este caso–
no es necesario escribir varias veces <!ATTLIST, pudiéndose escribir, por ejemplo:
Cuando en una DTD,se quiere declarar un atributo que tome un valor fijo, esto se puede hacer con
#FIXED. Todos los elementos apareceran con ese valor en el atributo y además no se puede modificar.
En una DTD, los atributos declarados IDREF son aquellos cuyo valor tiene que existir en otro atributo
ID del documento XML. (Diapo 58). Un atributo IDREF también se le puede especificar un valor
por defecto, un valor fijo o que sea opcional escribirlo, #IMPLIED.
Los identificadores del valor ID tienen que ser únicos. Todo atributo declarado de tipo ID tiene que
ser #IMPLIED (opcional) o #REQUIRED (obligatorio).
<!ELEMENT peliculas(pelicula)*>
<!ELEMENT pelicula(#PCDATA)>
</directores>
<peliculas>
<pelicula direccion="JC">Avatar</pelicula>
<pelicula direccion="CE">MysticRiver</pelicula>
<pelicula direccion="JC">Titanic</pelicula>
</peliculas>