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 tipoID
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 tipoID
, 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 valoreses
,gl
ypt
porque 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.