ATTLIST (Lista de atributos)

La instrucción ATTLIST se utiliza para enumerar y declarar los atributos que pueden pertenecer a un elemento. Primero especifica el nombre del elemento (o elementos) a los que se puede aplicar la lista de atributos. Después enumera los atributos por nombre, indica si son obligatorios y especifica los datos de caracteres que pueden tener como valor.

Sintaxis

<!ATTLIST  elementName  attributeName  dataType  default >

Parámetros

  • elementName
    El nombre del elemento al que se aplica la lista de atributos.

  • attributeName
    El nombre de un atributo. Este parámetro puede repetirse todas las veces que sea necesario para enumerar todos los atributos que se pueden utilizar con elementName.

  • dataType
    El tipo de datos para el atributo mencionado en el parámetro attributeName, que debe ser uno de los siguientes:

    • CDATA: el atributo solo incluirá datos de caracteres.

    • ID: el valor del atributo debe ser único. No puede aparecer repetido en otros elementos o atributos empleados en el documento.

    • IDREF: el atributo hace referencia al valor de otro atributo del documento, de tipo ID.

    • ENTITY: el valor del atributo debe corresponder al nombre de una ENTITY externa sin analizar, que también se declara en la misma DTD.

    • ENTITIES: el valor de atributo contiene varios nombres de entidades externas sin analizar declaradas en la DTD.

    • NMTOKEN: el valor de atributo debe ser un token de nombre. Los tokens de nombre permiten valores de datos de caracteres, pero son más limitados que CDATA. Un token de nombre puede incluir letras, números y algunos signos de puntuación, como puntos, guiones, caracteres de subrayado y dos puntos. Los valores de los tokens de nombre no pueden contener, sin embargo, ningún carácter de espacio.

    • NMTOKENS: el valor de atributo contiene varios tokens de nombre. Para obtener más información, consulte la descripción de NMTOKEN y Enumerated.

    • Enumerated: los valores de atributo se limitan a aquellos incluidos en un lista enumerada. Sólo se analizan de manera válida los valores que coinciden con los de la lista. Todos los tipos de datos enumerados se incluyen entre paréntesis y cada valor aparece separado por una barra vertical ("|").

  • default
    El valor predeterminado del atributo mencionado en attributeName. La siguiente tabla describe los posibles valores predeterminados.

    Valores predeterminados

    Descripción 

    #REQUIRED

    Si el atributo no aparece en el documento XML, se producirá un error de análisis. Para evitar un error de este tipo en algunos casos, puede incluir de manera opcional el campo defaultValue justo después de esta palabra clave.

    #IMPLIED

    El atributo puede aparecer en el documento XML pero, si se omite, no se producirá un error de análisis. De manera opcional, en algunos casos puede incluir también el campo defaultValue justo después de esta palabra clave.

    #FIXED

    El valor de atributo se fija en la DTD y no puede cambiarse o invalidarse en el documento XML. Si se utiliza esta palabra clave, debe utilizarse también el campo defaultValue justo después de esta palabra clave para declarar el valor de atributo fijo.

    defaultValue

    Un valor predeterminado o fijo. El analizador introduce este valor en el documento XML cuando falta el atributo o no se está utilizando en el documento XML. Todos los valores deben incluirse entre comillas (ya sean simples o dobles).

NotaNota

Para cada declaración ATTLIST hecha en la DTD, solo es necesario utilizar una aparición del elementName.Los parámetros attributeName, dataType y default definen cada atributo de la lista y pueden repetirse todas las veces que sea necesario hasta que se hayan enumerado y definido todos los atributos que se pueden utilizar con elementName.

Ejemplo

Este ejemplo declara lo siguiente para el elemento <book>:

  • Un atributo publisher opcional que solo puede contener datos de caracteres.

  • Se establece en "MyStore". un atributo reseller fijo con su valor.

  • Un atributo ISBN obligatorio que debe contener un valor de identificación único para cada elemento <book> en el documento XML.

  • Un atributo InPrint obligatorio que debe contener un valor "yes" o "no". El valor predeterminado exige un valor "yes" cuando no se ha establecido el valor de manera explícita en el documento XML.

<!ATTLIST book
    publisher  CDATA     #IMPLIED
    reseller   CDATA     #FIXED    "MyStore"
    ISBN       ID        #REQUIRED
    inPrint    (yes|no)  "yes"
>

Vea también

Conceptos

ELEMENT

ENTITY (XML)

NOTATION