En un DTD, atributos se declaran con una declaración ATTLIST.
La declaración de atributos
Una declaración de atributo tiene la siguiente sintaxis:
<!ATTLIST element-name attribute-name attribute-type attribute-value>
DTD example:
<!ATTLIST payment type CDATA "check">
XML example:
<payment type="check" />
El attribute-type puede ser uno de los siguientes:
Tipo | Descripción |
---|---|
CDATA | El valor es datos de caracteres |
( en1 | en2 |..) | El valor debe ser uno de una lista enumerada |
ID | El valor es un identificador único |
IDREF | El valor es el ID de otro elemento |
IDREFS | El valor es una lista de otros identificadores de |
NMTOKEN | El valor es un nombre XML válido |
NMTOKENS | El valor es una lista de nombres XML válidos |
ENTITY | El valor es una entidad |
ENTITIES | El valor es una lista de las entidades |
NOTATION | El valor es un nombre de una notación |
xml: | El valor es un valor predefinido xml |
El attribute-value puede ser uno de los siguientes:
Valor | Explicación |
---|---|
value | El valor por defecto del atributo |
#REQUIRED | Se requiere el atributo |
#IMPLIED | El atributo es opcional |
#FIXED value | El valor del atributo es fijo |
Una característica Valor predeterminado
DTD:
<!ELEMENT square EMPTY>
<!ATTLIST square width CDATA "0">
Valid XML:
<square width="100" />
En el ejemplo anterior, el "square" elemento se define como un elemento vacío con un "width" atributo del tipo CDATA. Si no se especifica el ancho, tiene un valor predeterminado de 0.
#NECESARIO
Sintaxis
<!ATTLIST element-name attribute-name attribute-type #REQUIRED>
Ejemplo
DTD:
<!ATTLIST person number CDATA #REQUIRED>
Valid XML:
<person number="5677" />
Invalid XML:
<person />
Usar la palabra clave #REQUIRED si usted no tiene una opción para un valor por defecto, pero todavía quiere forzar el atributo de estar presente.
#IMPLÍCITO
Sintaxis
<!ATTLIST element-name attribute-name attribute-type #IMPLIED>
Ejemplo
DTD:
<!ATTLIST contact fax CDATA #IMPLIED>
Valid XML:
<contact fax="555-667788" />
Valid XML:
<contact />
Usar la palabra clave #IMPLIED si no desea forzar el autor para incluir un atributo, y usted no tiene una opción para un valor predeterminado.
#FIJO
Sintaxis
<!ATTLIST element-name attribute-name attribute-type #FIXED "value">
Ejemplo
DTD:
<!ATTLIST sender company CDATA #FIXED "Microsoft">
Valid XML:
<sender company="Microsoft" />
Invalid XML:
<sender company="w3ii" />
Usar la palabra clave #FIXED cuando se desea un atributo que tiene un valor fijo sin permitir que el autor de cambiarlo. Si un autor incluye otro valor, el analizador XML devolverá un error.
Los valores de atributos enumerados
Sintaxis
<!ATTLIST element-name attribute-name (en1|en2|..) default-value>
Ejemplo
DTD:
<!ATTLIST payment type (check|cash) "cash">
XML example:
<payment type="check" />
or
<payment type="cash" />
Utilice los valores de atributos enumerados cuando se desea el valor del atributo de ser una de un conjunto fijo de valores legales.