Saltar al contenido principal

IDREFS

Los atributos declarados IDREFS son aquellos cuyos valores tienen que existir en otros atributos ID del documento XML.

<!ATTLIST pais idiomas IDREFS #REQUIRED>

Algunas consideraciones sobre este tipo de atributo son:

  • Un atributo tipo IDREFS puede referenciar a uno o varios atributos.
  • Para que se pueda utilizar IDREFS, antes se ha tenido que definir, por lo menos, un atributo tipo ID en el mismo documento XML.
  • Los identificadores definidos en un atributo tipo IDREF deben estar separados por espacios en blanco.
  • Todo atributo de tipo IDREFS tiene que ser #IMPLIED (opcional) o #REQUIRED (obligatorio).

Consideremos el siguiente documento XML:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mundo [
<!ELEMENT mundo (idiomas, paises)>
<!ELEMENT idiomas (idioma+)>
<!ELEMENT idioma (#PCDATA)>
<!ATTLIST idioma id ID #REQUIRED>
<!ELEMENT paises (pais+)>
<!ELEMENT pais (#PCDATA)>
<!ATTLIST pais idiomas IDREFS #REQUIRED>
]>

<mundo>
<idiomas>
<idioma id="gl">Gallego</idioma>
<idioma id="es">Español</idioma>
<idioma id="pt">Portugés</idioma>
</idiomas>
<paises>
<pais idiomas="es gl">España</pais>
<pais idiomas="pt">Portugal</pais>
<pais idiomas="es">Argentina</pais>
<pais idiomas="pt">Brasil</pais>
</paises>
</mundo>

En el documento anterior:

  • El atributo id es un identificador de un idioma.
  • Cada idioma debe tener un valor de id diferente, ya que se trata de un atributo de tipo ID, lo cual permite identificar únicamente a un idioma.
  • En cada país existe un atributo idiomas que hace referencia a uno o varios identificadores que se ha definido previamente. Como se puede observar, solo se utilizan los valores es, gl y pt porque son los valores de identificadores que se han definido en los atributos id.
  • El país España referencia a los idiomas gallego y español, miestras que el resto de países referencian a un único idioma.