Подтвердить что ты не робот

Как определить ссылки на сущности HTML внутри допустимого документа XML?

Мне нужно иметь возможность ссылаться на именованные объекты HTML, такие как • вместо альтернативы Unicode • в документе XML. Я контролирую некоторые части документа XML, такие как определение DOCTYPE, но выполнение find-and-replace в фактическом XML не является вариантом. Я могу получить некоторые элементы, такие как   и &, включив переходный DOCTYPE XHTML, но мне нужно определить более вручную. Как это сделать?

- EDIT -

Спасибо Джим, ответьте, вот что я закончил. Это здорово, потому что я могу использовать переходные сущности XHTML, а также добавить свои собственные:

<!DOCTYPE
   html
   PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
   [
      <!ENTITY bull  "&#8226;">
      <!ENTITY ldquo "&#8220;">
      <!ENTITY rdquo "&#8221;">
      ... etc ...
   ]
>
4b9b3361

Ответ 1

Если вы можете изменить XML для включения встроенного DTD, вы можете определить там сущности:

<!DOCTYPE yourRootElement [
    <!ENTITY bull "&#8226;">
    ....
]>

Ответ 2

Я не cetain, но я думаю, что DTD XHTML должен дать вам довольно много сущностей (253):

http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML

Также в спецификации w3 упоминается дополнительный DTD для специальных символов и т.д. http://www.w3.org/TR/xhtml-modularization/dtd_module_defs.html#a_dtd_xhtml_character_entities

Однако мне не удалось найти пример реализации DTD специального символа.


Редактировать DevNull

Вот пример типичной реализации одного из DTD-модулей. Для реализации вам нужно только добавить объект параметра, указывающий на модуль.

<?xml version="1.0"?>
<!DOCTYPE test [
<!ELEMENT test (#PCDATA)>
<!ENTITY % xhtml-special SYSTEM "xhtml-special.ent">
%xhtml-special;
]>
<test>Here is a left double quote: &ldquo;</test>