Entidades generales externas analizables en DTD
En una DTD se pueden declarar dos tipos de entidades generales 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">
<!ENTITY nombre-de-la-entidad PUBLIC "identificador-público" "URI">
Entidades generales externas analizables privadas - SYSTEM
EJEMPLO En la DTD del siguiente documento XML, se ha declarado la entidad escritor:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE textos [
<!ELEMENT textos (texto)+>
<!ELEMENT texto (#PCDATA)>
<!ENTITY escritor SYSTEM "escritor.txt">
]>
<textos>
<texto>El Quijote fue escrito por &escritor;.</texto>
</textos>
Suponiendo que el archivo "escritor.txt" contenga:
Miguel de Cervantes
En un navegador web (por ejemplo en Internet Explorer 8) se podrá ver:
Entidades generales externas analizables públicas - PUBLIC
EJEMPLO Para declarar escritor como entidad general externa analizable pública, se puede escribir:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE textos [
<!ELEMENT textos (texto)+>
<!ELEMENT texto (#PCDATA)>
<!ENTITY escritor PUBLIC "-//W3C//TEXT escritor//EN" "http://www.abrirllave.com/dtd/escritor.txt">
]>
<textos>
<texto>El Quijote fue escrito por &escritor;.</texto>
</textos>