DTD - Atributos
En una DTD, los atributos se declaran con una declaración ATTLIST.
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 tipo de atributo puede ser uno de los siguientes:
Type | Description |
---|---|
CDATA | The value is character data |
(en1|en2|..) | The value must be one from an enumerated list |
ID | The value is a unique id |
IDREF | The value is the id of another element |
IDREFS | The value is a list of other ids |
NMTOKEN | The value is a valid XML name |
NMTOKENS | The value is a list of valid XML names |
ENTITY | The value is an entity |
ENTITIES | The value is a list of entities |
NOTATION | The value is a name of a notation |
xml: | The value is a predefined xml value |
El valor del atributo puede ser uno de los siguientes:
Value | Explanation |
---|---|
value | The default value of the attribute |
#REQUIRED | The attribute is required |
#IMPLIED | The attribute is optional |
#FIXED value | The attribute value is fixed |
Un valor de atributo predeterminado
DTD:
<!ELEMENT square EMPTY>
<!ATTLIST square width CDATA "0">
Valid XML:
<square width="100" />
En el ejemplo anterior, el elemento "cuadrado" se define como un elemento vacío con un atributo de "ancho" de tipo CDATA. Si no se especifica ancho, tiene un valor predeterminado de 0.
#REQUERIDO
Sintaxis
<!ATTLIST element-name attribute-name attribute-type #REQUIRED>
Ejemplo
DTD:
<!ATTLIST person number CDATA #REQUIRED>
Valid XML:
<person number="5677" />
Invalid XML:
<person />
Utilice la palabra clave #REQUIRED si no tiene una opción para un valor predeterminado, pero desea forzar la presencia del atributo.
#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 />
Utilice la palabra clave #IMPLIED si no desea obligar al autor a incluir un atributo y no tiene una opción para un valor predeterminado.
#REPARADO
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="W3Schools" />
Utilice la palabra clave #FIXED cuando desee que un atributo tenga un valor fijo sin permitir que el autor lo cambie. Si un autor incluye otro valor, el analizador XML devolverá un error.
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 valores de atributo enumerados cuando desee que el valor del atributo sea uno de un conjunto fijo de valores legales.