Mundo
del Programador

Declaración de Atributos


Los elementos pueden tener 0, 1 o varios atributos y se definen con la etiqueta ATTLIST. Los tipos de atributos son:

  • CDATA - el atributo contiene caracteres sin restricciones:
  •                       <!DOCTYPE ejemplo[
                            <!ELEMENT ejemplo EMPTY>
                            <!ATTLIST ejemplo color CDATA #REQUIRED>
                          ]>
    
                          /* EN XML  */
                          <ejemplo color="amarillo"></ejemplo>/*  CORRECTO */
                          <ejemplo></ejemplo>/* NO CORRECTO POR FALTA DEL ATRIBUTO "COLOR"*/
                        
  • NMTOKEN - el atributo sólo contiene letras, digitos y los caracteres ".", "_", ":"   :
  •                       <!DOCTYPE ejemplo[
                            <!ELEMENT ejemplo EMPTY>
                            <!ATTLIST ejemplo color NMTOKEN #REQUIRED>
                          ]>
    
                          /* EN XML */
                          <ejemplo color=""></ejemplo>/*  CORRECTO */
                          <ejemplo color="amarillo oscuro"></ejemplo>/* NO CORRECTO POR TENER UN ESPACIO EN BLANCO*/
                        
  • NMTOKENS - el atributo contiene letras, digitos, ".", "_", ":", pero también espacios en blanco:
  •                       <!DOCTYPE ejemplo[
                            <!ELEMENT ejemplo EMPTY>
                            <!ATTLIST ejemplo color NMTOKENS #REQUIRED>
                          ]>
    
                          /* EN XML */
                          <ejemplo color="amarillo oscuro"></ejemplo>/*  CORRECTO */
                        
  • valores - el atributo sólo puede contener uno de los términos de una lista. La lista se escribe entre paréntesis, con los términos separados por una barra vertical "|". Los términos deben ir entre comillas simples o dobles:
  •                       <!DOCTYPE ejemplo[
                            <!ELEMENT ejemplo EMPTY>
                            <!ATTLIST ejemplo color (azul|blanco|rojo) #REQUIRED>
                          ]>
    
                          /*- EN XML */
                          <ejemplo color=""></ejemplo>/*  CORRECTO */
                          <ejemplo color="azul"></ejemplo>/*  CORRECTO */
                          <ejemplo color="amarillo"></ejemplo>/* NO CORRECTO POR QUE AMARILLO NO ESTA EN LA LISTA DE VALORES*/
                        
  • ID - el valor de atributos debe ser único y no se puede repetir en otros elementos o atributos. Además no puede empezar por un número ni contener espacios en blanco:
  •                       <!DOCTYPE ejemplo[
                            <!ELEMENT ejemplo (libro*)>
                            <!ELEMENT libro(#PCDATA)>
                            <!ATTLIST libro codigo ID #REQUIRED>
                          ]>
    
                          /* EN XML */
                          <ejemplo>/*  CORRECTO */
                            <libro codigo="L1">Manual de Java</libro>
                            <libro codigo="L2">Manual de JavaScript</libro>
                          </ejemplo>
                          <ejemplo>/* NO CORRECTO PORQUE LOS VALORES DEL ID NO SON DEL MISMO TIPO */
                            <libro codigo="1">Manual de Java</libro>
                            <libro codigo="L2">Manual de JavaScript</libro>
                          </ejemplo> 
                          <ejemplo> /* NO CORRECTO PORQUE LOS VALORES DEL ID SON IDENTICOS, NO SE PUEDEN REPETIR*/
                            <libro codigo="L1">Manual de Java</libro>
                            <libro codigo="L1">Manual de JavaScript</libro>
                          </ejemplo>
                        
  • IDREF - el valor del atributo debe coincidir con el valor del atributo ID de otro elemento:
  •                       <!DOCTYPE ejemplo[
                            <!ELEMENT ejemplo ((libro|prestamo)*)>
                            <!ELEMENT libro(#PCDATA)>
                            <!ATTLIST libro codigo ID #REQUIRED>
                            <!ELEMENT prestamo(#PCDATA)>
                            <!ATTLIST prestamo libro IDREF #REQUIRED>
                          ]>
    
                          /* EN XML */
                          <ejemplo>/*  CORRECTO */
                            <libro codigo="L1">Manual de Java</libro>
                            <prestamo libro="L1">José Manuel</prestamo>
                          </ejemplo>
                          <ejemplo>/* NO CORRECTO PORQUE LOS VALORES DEL ID NO COINCIDEN */
                            <libro codigo="L1">Manual de Java</libro>
                            <prestamo libro="L2">José Manuel</prestamo>
                          </ejemplo>
                        
  • IDREFS - el valor del atributo es una serie de valores separados por espacios que coinciden con el valor del atributo ID de otros elementos:
  •                       <!DOCTYPE ejemplo[
                            <!ELEMENT ejemplo ((libro|prestamo)*)>
                            <!ELEMENT libro(#PCDATA)>
                            <!ATTLIST libro codigo ID #REQUIRED>
                            <!ELEMENT prestamo(#PCDATA)>
                            <!ATTLIST prestamo libro IDREFS #REQUIRED>
                          ]>
    
                          /* EN XML */
                          <ejemplo>/*  CORRECTO */
                            <libro codigo="L1">Manual de Java</libro>
                            <libro codigo="L2">Manual de JavaScript</libro>
                            <prestamo libro="L1 L2">José Manuel</prestamo>
                          </ejemplo>
                          <ejemplo>/* NO CORRECTO PORQUE EL VALOR DEL ID L3 NO COINCIDE CON NINGÚN VALOR DEL LIBRO*/
                            <libro codigo="L1">Manual de Java</libro>
                            <libro codigo="L2">Manual de JavaScript</libro>
                            <prestamo libro="L3">José Manuel</prestamo>
                          </ejemplo>
                        

Los valores iniciales de los atributos son los siguientes:

  • #REQUIRED - el atributo es obligatorio, aunque no se especifica ningún valor predeterminado
  •                       <!DOCTYPE ejemplo[
                            <!ELEMENT ejemplo EMPTY>
                            <!ATTLIST ejemplo color CDATA #REQUIRED>
                          ]>
    
                          /* EN XML */
                          <ejemplo color="amarillo oscuro"></ejemplo>/*  CORRECTO */
                          <ejemplo></ejemplo>/* NO CORRECTO POR FALTAR EL ATRIBUTO COLOR*/
                        
  • #IMPLIED - el atributo no es obligatorio
  •                       <!DOCTYPE ejemplo[
                            <!ELEMENT ejemplo EMPTY>
                            <!ATTLIST ejemplo color NMTOKEN #IMPLIED>
                          ]>
    
                          /* EN XML */
                          <ejemplo color=""></ejemplo>/*  CORRECTO */
                          <ejemplo color="amarillo oscuro"></ejemplo>/*  CORRECTO */
                          <ejemplo color="amarillo"></ejemplo>/*  CORRECTO */
                          <ejemplo></ejemplo>/*  CORRECTO */
                        
  • #FIXED - el atributo tiene un valor fijo
  •                       <!DOCTYPE ejemplo[
                            <!ELEMENT ejemplo EMPTY>
                            <!ATTLIST ejemplo color NMTOKEN #FIXED "verde">
                          ]>
    
                          /* EN XML */
                          <ejemplo color=""></ejemplo>/*  NO CORRECTO PORQUE NO TIENE COMO VALOR EL VERDE*/
                          <ejemplo color="amarillo"></ejemplo>/* NO CORRECTO PORQUE NO TIENE COMO VALOR EL VERDE*/
                          <ejemplo color="verde"></ejemplo>/*  CORRECTO */
                          <ejemplo></ejemplo>/*  CORRECTO */
                        
  • valor - el atributo tiene un valor predeterminado
  •                       <!DOCTYPE ejemplo[
                            <!ELEMENT ejemplo EMPTY>
                            <!ATTLIST ejemplo color NMTOKEN "verde">
                          ]>
    
                          /* EN XML */
                          <ejemplo color=""></ejemplo>/*  CORRECTO, SE QUEDARA VACIA*/
                          <ejemplo color="amarillo"></ejemplo>/* CORRECTO PORQUE TIENE COMO VALOR LO QUE HA METIDO EL USUARIO*/
                          <ejemplo color="verde"></ejemplo>/*  CORRECTO, YA ESTA ASIGNADO */
                          <ejemplo></ejemplo>/*  CORRECTO, PORQUE SE LE ASIGNARA VERDE*/
                        
Siguiente
Atras