Saltar al contenido principal

IDREF

Los atributos declarados IDREF son aquellos cuyo valor tiene que existir en otro atributo ID del documento XML.

<!ATTLIST pais idioma IDREF #REQUIRED>

Algunas consideraciones sobre este tipo de atributo son:

  • Para que se pueda utilizar IDREF, antes se ha tenido que definir un atributo tipo ID en el mismo documento XML.
  • Todo atributo declarado de tipo IDREF 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 idioma IDREF #REQUIRED>
]>

<mundo>
<idiomas>
<idioma id="es">Español</idioma>
<idioma id="pt">Portugés</idioma>
</idiomas>
<paises>
<pais idioma="pt">Portugal</pais>
<pais idioma="es">Colombia</pais>
<pais idioma="es">Argentina</pais>
<pais idioma="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 idioma que hace referencia a un identificador que se ha definido previamente. Como se puede observar, solo se utilizan los valores es y pt porque son los valores de identificadores que se han definido en los atributos id.