Atributos de tipo enumerado en DTD
En una DTD, se puede declarar un atributo de tipo enumerado indicando que su valor puede ser uno de los pertenecientes a una lista de valores escritos entre paréntesis "()" y separados por el carácter "|".
EJEMPLO En la DTD del siguiente documento XML, los valores posibles del atributo pais son "ESP", "FRA", "ITA" y "ALE":
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE deportistas [
<!ELEMENT deportistas (futbol | f1 | tenis)*>
<!ELEMENT futbol (#PCDATA)>
<!ELEMENT f1 (#PCDATA)>
<!ATTLIST f1 pais (ESP | FRA | ITA | ALE) "ESP">
<!ELEMENT tenis (#PCDATA)>
]>
<deportistas>
<f1 pais="ALE">Sebastian Vettel</f1>
<f1>Fernando Alonso</f1>
<f1 pais="ESP">Carlos Sainz</f1>
<tenis>Rafael Nadal</tenis>
</deportistas>
- Véase que, en este caso, se ha especificado "ESP" como valor por defecto, siendo obligatorio que esté en la lista de valores escritos entre paréntesis "()".
Al visualizar este documento en un navegador web, en pantalla se verá:
Si se quiere definir el atributo pais obligatorio, habría que escribir:
<!ATTLIST f1 pais (ESP | FRA | ITA | ALE) #REQUIRED>
Por tanto, para Fernando Alonso se tendría que escribir:
<f1 pais="ESP">Fernando Alonso</f1>