Entidades paramétricas externas analizables en DTD
En una DTD se pueden declarar dos tipos de entidades paramétricas externas analizables (parsed): privadas y públicas. Para las privadas se utiliza SYSTEM, y para las públicas PUBLIC. La sintaxis en cada caso es:
<!ENTITY % nombre-de-la-entidad SYSTEM "URI">
%nombre-de-la-entidad;
<!ENTITY % nombre-de-la-entidad PUBLIC "identificador-público" "URI">
%nombre-de-la-entidad;
Entidades paramétricas externas analizables privadas - SYSTEM
EJEMPLO En la DTD del siguiente documento XML, se ha declarado la entidad persona:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE persona [
<!ENTITY % persona SYSTEM "persona.dtd">
%persona;
]>
<persona>
<nombre>Iker</nombre>
<mayor_de_edad/>
<ciudad>Pamplona</ciudad>
</persona>
Suponiendo que el archivo "persona.dtd" contenga:
<!ELEMENT persona (nombre, mayor_de_edad?, ciudad)>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT mayor_de_edad EMPTY>
<!ELEMENT ciudad (#PCDATA)>
En un navegador web (por ejemplo en Mozilla Firefox) se podrá ver:
Entidades paramétricas externas analizables públicas - PUBLIC
EJEMPLO Para declarar persona como entidad paramétrica externa analizable pública, se puede escribir:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE persona [
<!ENTITY % persona PUBLIC "-//W3C//TEXT persona//EN" "http://www.abrirllave.com/dtd/persona.dtd">
%persona;
]>
<persona>
<nombre>Iker</nombre>
<mayor_de_edad/>
<ciudad>Pamplona</ciudad>
</persona>