Как объявить escape-символ как объекты DTD во внешнем файле и импортировать в файлы XML

В веб-проекте у меня много XML файлов с неэкранированными символами. Я объявляю эти символы как объекты DTD и включаю список деклараций внутри каждого XML файла, например:

!DOCTYPE article SYSTEM "../../pubmedref/archivearticle.dtd" [
   <!ENTITY bull "&#8226;">
   <!ENTITY copy "&#169;">
   ... a long list ...
]>

Есть ли способ, которым я могу иметь эти объявления во внешнем файле и импортировать его в файлы XML? XML файлы отображаются в браузере с помощью XSLT.

FWIW, я попытался ссылаться на файл .ent, но он не работает ни в одном из браузеров.

Ответ 1

Обычно вы должны использовать объект параметра...

XML файл

<!DOCTYPE article SYSTEM "../../pubmedref/archivearticle.dtd" [
<!ENTITY % ents SYSTEM "../../pubmedref/entities.ent">
%ents;
]>
<article>...</article>

Файл сущности (у вас может быть несколько файлов)

<!ENTITY bull "&#8226;">
<!ENTITY copy "&#169;">

Однако большинство браузеров не разрешают ссылку на внешние сущности, поэтому вы застреваете с объявлениями сущностей непосредственно во внутреннем подмножестве (между [ и ] в объявлении doctype).