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
IDREFSpuede referenciar a uno o varios atributos. - Para que se pueda utilizar
IDREFS, antes se ha tenido que definir, por lo menos, un atributo tipoIDen el mismo documento XML. - Los identificadores definidos en un atributo tipo
IDREFdeben estar separados por espacios en blanco. - Todo atributo de tipo
IDREFStiene 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
ides un identificador de un idioma. - Cada idioma debe tener un valor de
iddiferente, ya que se trata de un atributo de tipoID, lo cual permite identificar únicamente a un idioma. - En cada país existe un atributo
idiomasque hace referencia a uno o varios identificadores que se ha definido previamente. Como se puede observar, solo se utilizan los valoreses,glyptporque son los valores de identificadores que se han definido en los atributosid. - 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.