Tutoriales de informática - Abrirllave.com

Abrirllave.com

Declaración de atributos en una DTD

La sintaxis básica para declarar un atributo en una DTD es:

<!ATTLIST nombre-del-elemento nombre-del-atributo tipo-de-atributo valor-del-atributo>

Declaración de un atributo indicando un valor por defecto

EJEMPLO En la DTD del siguiente documento XML se ha indicado que el elemento "f1" puede tener el atributo "pais":

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE deportistas [
   <!ELEMENT deportistas (futbol | f1 | tenis)*>
   <!ELEMENT futbol (#PCDATA)>
   <!ELEMENT f1 (#PCDATA)>
      <!ATTLIST f1 pais CDATA "España">
   <!ELEMENT tenis (#PCDATA)>
]>

<deportistas>
   <f1 pais="Alemania">Sebastian Vettel</f1>
   <f1>Fernando Alonso</f1>
   <tenis>Rafael Nadal</tenis>
</deportistas>

Al visualizar el documento XML en un navegador web, se verá algo parecido a:

Visualización del archivo deportitas.xml en Google Chrome - Ejemplo del tutorial de DTD de {Abrirllave.com

Declaración de varios atributos en un elemento

EJEMPLO En la DTD del siguiente documento XML se ha indicado que el elemento "f1" puede tener tres atributos (pais, fecha_de_nacimiento y equipo):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE deportistas [
   <!ELEMENT deportistas (futbol | f1 | tenis)*>
   <!ELEMENT futbol (#PCDATA)>
   <!ELEMENT f1 (#PCDATA)>
      <!ATTLIST f1 pais CDATA "España">
      <!ATTLIST f1 fecha_de_nacimiento CDATA #IMPLIED>
      <!ATTLIST f1 equipo CDATA #REQUIRED>
   <!ELEMENT tenis (#PCDATA)>
]>

<deportistas>
   <f1 pais="Alemania" fecha_de_nacimiento="03/07/1987" equipo="Ferrari">Sebastian Vettel</f1>
   <f1 equipo="McLaren">Fernando Alonso</f1>
   <tenis>Rafael Nadal</tenis>
</deportistas>

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:

<!ATTLIST f1 pais CDATA "España"
             fecha_de_nacimiento CDATA #IMPLIED
             equipo CDATA #REQUIRED>