DTD - Atributos


En DTD, los atributos se declaran mediante la declaración ATTLIST.


Declarar atributos

La declaración de atributos utiliza la siguiente sintaxis:

<!ATTLIST element-name attribute-name attribute-type attribute-value>

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

DTD:
<!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

<!ATTLIST element-name attribute-name attribute-type #REQUIRED>

Ejemplo

DTD:
<!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

<!ATTLIST element-name attribute-name attribute-type #IMPLIED>

Ejemplo

DTD:
<!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

<!ATTLIST element-name attribute-name attribute-type #FIXED "value">

Ejemplo

DTD:
<!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

<!ATTLIST element-name attribute-name (en1|en2|..) default-value>

Ejemplo

DTD:
<!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