Как объявить escape-символ как объекты DTD во внешнем файле и импортировать в файлы XML
В веб-проекте у меня много XML файлов с неэкранированными символами. Я объявляю эти символы как объекты DTD и включаю список деклараций внутри каждого XML файла, например:
!DOCTYPE article SYSTEM "../../pubmedref/archivearticle.dtd" [
<!ENTITY bull "•">
<!ENTITY copy "©">
... 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 "•">
<!ENTITY copy "©">
Однако большинство браузеров не разрешают ссылку на внешние сущности, поэтому вы застреваете с объявлениями сущностей непосредственно во внутреннем подмножестве (между [
и ]
в объявлении doctype).