Referencias a entidades
Es posible referenciar a otra entidad dentro de la declaración de una entidad.
Por ejemplo:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE frase [
<!ELEMENT frase (#PCDATA)>
<!ENTITY color "azul">
<!ENTITY frase "El cielo es &color;.">
]>
<frase>&frase;</frase>
Cuando un procesador XML interpreta el documento anterior, muestra lo siguiente:
<frase>El cielo es azul.</frase>
Probar en el navegador
Limitaciones
Una limitación de las entidades es que no admiten recursividad, es decir, una entidad no puede hacer referencia a ella misma.
Por ejemplo, el siguiente código no es válido:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE frase [
<!ELEMENT frase (#PCDATA)>
<!ENTITY frase "El cielo es &frase;.">
]>
<frase>&frase;</frase>
Tampoco puede se puede referenciar de manera circular:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE frase [
<!ELEMENT frase (#PCDATA)>
<!ENTITY frase1 "Esta frase incluye a la &frase2;.">
<!ENTITY frase2 "Esta frase incluye a la &frase1;.">
]>
<frase>&frase1;</frase>