Необработанный XML не знает ни о каких именованных объектах, кроме >
, <
и `&
. Все остальные сущности должны быть либо объявлены как числовые коды символов, либо вам необходимо указать сущности в Doctype или DTD.
Сущность …
определена в HTML DTD, которая понятна всем браузерам, но не определена в большинстве других XML DTD.
В целом, если вы работаете с DTD, в большинстве случаев это будет DTD стороннего производителя, над которым вы не можете управлять, поэтому вы не можете добавлять к ним сущности. Вы также не хотите добавлять сущности ad-hoc в свои собственные DTD.
Я бы не стал помещать объявления сущностей в заголовок doctype. Это ненужный пух, который на самом деле не добавляет много, если вы не повторяете одну и ту же сущность в документе снова и снова.
Поэтому я бы порекомендовал просто использовать числовые объекты.
Таким образом, вместо …
вы бы использовали сущность кода символа …
или …
. То же самое относится и к любому другому символу, не относящемуся к ascii.
Другой вариант, конечно, заключается в выводе XML с использованием кодировки символов UTF-8 или UTF-16, что сводит на нет необходимость в каких-либо объектах вообще. Это может или не может быть вариант для вас, но если это возможно, это может быть лучший путь.
Если у вас есть определенный символ, для которого вам нужно найти числовые коды сущностей, в Интернете есть много мест, где можно найти ссылки на них. Вот один из Википедии: http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references
Надеюсь, это поможет.