DTD - Atributos
En DTD, los atributos se declaran mediante la declaración ATTLIST.
Declarar atributos
La declaración de atributos utiliza la siguiente sintaxis:
Ejemplo DTD:
<!ATTLIST payment type CDATA "check">
Ejemplo XML:
<payment type="check" />
A continuación se presentan las opciones deTipo de atributo:
| Tipo | Descripción |
|---|---|
| CDATA | El valor es datos de carácter (character data) |
| (en1|en2|..) | Este valor es un valor de una lista enumerada |
| ID | El valor es una id única |
| IDREF | El valor es el id de otro elemento |
| IDREFS | El valor es una lista de otros id |
| 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 entidades |
| NOTATION | Este valor es el nombre de una notación |
| xml: | El valor es un valor XML predefinido |
Por defectoValor del atributoPuede usar los siguientes valores:
| Valor | Explicación |
|---|---|
| Valor | Valor por defecto del atributo |
| #REQUIRED | El valor del atributo es obligatorio |
| #IMPLIED | El atributo no es obligatorio |
| #FIXED value | El valor del atributo es fijo |
Valores de atributo por defecto
<!ELEMENT square EMPTY>
<!ATTLIST square width CDATA "0">
XML válido:
<square width="100" />
En el ejemplo anterior, "square" se define como un elemento vacío con un atributo "width" de tipo CDATA. Si el ancho no se establece, su valor por defecto es 0.
#REQUIRED
Sintaxis
Ejemplo
<!ATTLIST person number CDATA #REQUIRED>
XML válido:
<person number="5677" />
XML no válido:
<person />
Si no tiene opción de valor por defecto, pero aún desea obligar al autor a incluir el atributo, use la palabra clave #REQUIRED.
#IMPLIED
Sintaxis
Ejemplo
<!ATTLIST contact fax CDATA #IMPLIED>
XML válido:
<contact fax="555-667788" />
XML válido:
<contact />
Si no desea obligar al autor a incluir el atributo y no tiene opción de valor por defecto, use la palabra clave #IMPLIED.
#FIXED
Sintaxis
Ejemplo
<!ATTLIST sender company CDATA #FIXED "Microsoft">
XML válido:
<sender company="Microsoft" />
XML no válido:
<sender company="W3Schools" />
Si desea que el atributo tenga un valor fijo y no permita que el autor cambie ese valor, use la palabra clave #FIXED. Si el autor usa un valor diferente, el analizador XML devolverá un error.
Valores de atributo enumerados
Sintaxis
Ejemplo
<!ATTLIST payment type (check|cash) "cash">
Ejemplo XML:
<payment type="check" />
o
<payment type="cash" />
Si desea que el valor del atributo sea uno de una serie de valores legales fijos, use valores de atributo enumerados.
Otras extensiones