Está en la página 1de 4

Enrique Rivas Marco IES Valle del Cidacos Calahorra

Resumen DTD
Donde colocar las declaraciones:
En un fichero separado
Fichero BDsms.xml

Fichero BDsms.dtd

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

<!ELEMENT BDsms (sms*)>

<!DOCTYPE BDsms SYSTEM

<!ELEMENT sms (telefono, fecha)>

"BDsms.dtd">

<!ELEMENT telefono (#PCDATA)>

<BDsms>

<!ELEMENT fecha (#PCDATA)>

<sms>
<telefono>955 55 66 55</telefono>
<fecha> 1/7/2011</fecha></sms

En un fichero todo
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE BDsms
[
<!ELEMENT BDsms (sms*)>
<!ELEMENT sms (telefono, fecha)>
<!ELEMENT telefono (#PCDATA)>
<!ELEMENT fecha (#PCDATA)>
]>
<BDsms>
<sms>
<telefono>955 55 66 55</telefono>

Declaraciones de elementos <!ELEMENT nombre_del_elemento tipo_de_contenido>

EMPTY: Significa que el elemento no podr tener contenido alguno


<!DOCTYPE ejemplo [ <!ELEMENT ejemplo EMPTY> ]>

(#PCDATA): Elemento de contenido textual


<!ELEMENT nombre (#PCDATA)>

ANY: Elementos que pueden tener cualquier tipo de contenido


<!ELEMENT apellido ANY>

Elemento Concreto: Se puede indicar claramente un contenido concreto para el mismo


<!ELEMENT persona (nombre)>
Secuencias de elementos, Una lista de elementos separados por comas
<!ELEMENT persona (nombre, apellidos, edad)>

Elementos opcionales, puede aparecer uno u otro.


<!ELEMENT artculo (id | serie)>

Combinaciones de elementos Por supuesto puede haber combinaciones


<!ELEMENT coordenada ((longitud, latitud) | coordUniversal)>

Cardinalidad

? Contenido opcional, puede aparecer (una sola vez) o no aparecer


<!ELEMENT ejemplo (a, b?)>

* Contenido opcional y repetible. Puede no aparecer o aparecer varias veces


<!ELEMENT ejemplo (a*, b)>

+ Contenido obligatorio y repetible. Tiene que aparecer y puede aparecer varias veces
<!ELEMENT ejemplo (a+, b)>

Declaracin de Entidades
&lt; <

&gt; >

&amp;

&apos; '

&quot; "

<autor>Leopoldo Alas &apos;Clarn&apos;</autor>

referencias a caracteres especiales normalmente Unicode, UTF8


&#nmero; <calle>Kantstra&#223;e, Berln</calle> &#223;

Entidades generales <!ENTITY nombre "texto">


<!ENTITY mayor "Calle Mayor Principal" > <direccin>&mayor; 18</direccin>

Declaracin de atributos
<!ATTLIST nombreElemento nombreAtributo tipoAtributo valorInicialAtributo>
<!ELEMENT directorio (persona)+>
<!ELEMENT persona (#PCDATA)>
<!ATTLIST persona nacionalidad CDATA "Espaola"
sexo (Hombre | Mujer) #IMPLIED
id ID #REQUIRED>

CDATA para indicar que el atributos contiene texto, puede contener cualquier valor, incluidos los
carteres no permitidos en los elementos <, >, &, ' y .
<!ATTLIST ejemplo color CDATA #REQUIRED>
Valores por defecto

Valor por defecto concreto, Si al final de la declaracin de un atributo aparece un valor


concreto, se podra no utilizar el atributo en un elemento y entonces dicho atributo tomara
dicho valor.
<!ATTLIST persona nacionalidad CDATA "Espaola">

Valores fijos Se puede utilizar el trmino #FIXED antes de indicar un valor fijo para un
atributo.
<!ATTLIST persona nacionalidad CDATA #FIXED "Espaola">

Valores requeridos En este caso se usa la palabra #REQUIRED indicando con ello que siempre hay
que dar valor al atributo
<!ATTLIST ejemplo color CDATA #REQUIRED>

Valor opcional La palabra #IMPLIED especificada en el atributo indicara que dicho atributo puede
quedarse sin valor
<!ATTLIST ejemplo color CDATA #IMPLIED>

Tipos de atributos
ID, Sirve para generar identificadores a los elementos.

El valor tiene que cumplir las mismas reglas que para especificar nombres XML. Es decir: nada
de espacios, no pueden comenzar con un nmero y slo admite letras, nmeros y el carcter de
subrayado (_).

No puede haber dos elementos con el mismo ID en un mismo documento XML

En el DTD, para cada elemento slo puede indicarse un atributo como ID. No puede haber dos
atributos distintos en el mismo elemento que contengan IDs.

Los atributos ID slo pueden indicar #IMPLIED o #REQUIRED en el apartado del valor por defecto.
<!ATTLIST libro codigo ID #REQUIRED>
<libro codigo="L1">Poema de Gilgamesh</libro>

IDREF, Los atributos IDREF contienen el valor de un ID de otro elemento. Es decir ser una referencia
a otro elemento

El valor de un IDREF debe cumplir las reglas para especificar nombres XML (es lgico ya que
contienen valores de tipo ID)

Debe existir un atributo ID en el documento XML cuyo valor coincida con el especificado en
un IDREF (de otro modo se hara referencia a un elemento inexistente y esto no est permitido)

<!ATTLIST persona id ID #REQUIRED


madre IDREF #IMPLIED
padre IDREF #IMPLIED>
<persona id="p1">Pedro</persona>
<persona id="p2">Marisa</persona>
<persona id="p3" madre="p2" padre="p1">Carmen</persona>

IDREFS, Igual que el anterior slo que permite indicar varias referencias (que deben existir en el
documento XML) a otros ID, separadas por espacios.
<!ATTLIST persona id ID #REQUIRED
padres IDREFS #IMPLIED >
<persona id="p1">Pedro</persona>
<persona id="p2">Marisa</persona>
<persona id="p3" padres="p1 p2">Carmen</persona>

NMTOKEN, El valor del atributo ser un texto que cumplir las reglas para nombres XML.
<!ATTLIST ejemplo color NMTOKEN #REQUIRED>
<ejemplo color="azul-marino"></ejemplo>

NMTOKENS, El atributo puede contener varios valores de tipo NMTOKEN separados por espacios
<!ATTLIST ejemplo color NMTOKENS #REQUIRED>
<ejemplo color="azul marino"></ejemplo>

Enumeracin, En este caso el valor del atributo debe de ser uno de una lista de valores posibles cada
uno de los cuales se separa del siguiente mediante el smbolo |.
<!ATTLIST ejemplo color (azul | blanco | rojo) #REQUIRED>
<ejemplo color="azul"></ejemplo>