- <</kbd>, & и " в значениях атрибутов, где
"
- разделитель: используйте <
, &
и "
, соответственно.
Это предопределенные объекты в XML, поэтому они будут работать с любым анализатором независимо от того, читает ли он тип документа. Они также являются нормально определенными объектами в HTML.
Числовые ссылки на символы так же действительны, но немного сложнее для чтения.
- > в текстовом содержимом: используйте
>
или оставьте как -is.
>
обычно не нуждается в экранировании, он абсолютно всегда допустим в значении атрибута и допустим в текстовом содержимом, если он не является частью последовательности ]]>
. (Это неясная, бессмысленная и иногда игнорируемая часть спецификации XML.) В любом случае вы можете предпочесть всегда избегать ее в текстовом контенте, просто чтобы быть в безопасности и не запоминать это правило. (Это то, что делает Canonical XML.)
Числовые ссылки на символы так же действительны, но немного сложнее для чтения.
- ' в значениях атрибутов, где
'
- разделитель: используйте '
.
Цифровая символьная ссылка является наиболее правильной, поскольку предопределенная сущность XML '
технически не определена стандартом HTML4 (даже если она будет работать во всех текущих браузерах). Задержка добавления этой сущности отражает обычную практику всегда использовать "
в качестве разделителя значения атрибута.
- не-ASCII символы: включают как есть
Пока вы используете и объявляете UTF-8, вы можете просто выплевывать символы прямо. Меньшие, более читаемые результаты.
- не-ASCII-символы (без Unicode): использовать цифровую ссылку на символ
Если по какой-то причине вы не можете использовать UTF-8 (boooo !!!), используйте символьную ссылку, например é
, в предпочтении к сущностям HTML. В любом случае сущности HTML покрывают очень небольшую часть набора символов Unicode; может также использовать их для всех ИМО. Лично я предпочитаю использовать шестнадцатеричные экранированные символы &#x...
для не-ASCII символов, так как принято ссылаться на символы Юникода по их шестнадцатеричному коду "U + xxxx".
Хотя использование сущностей HTML вполне допустимо в документе XHTML, это означает, что анализатор должен извлекать внешние сущности, такие как DTD, чтобы выяснить, что это за сущности. Если вы придерживаетесь предопределенных сущностей и ссылок на символы, вы можете использовать облегченный синтаксический анализатор XML, не включающий внешние сущности, не теряя своей способности находить ссылки на текст, включая сущности в документе.
Ситуация с RSS мрачная, как обычно, со всеми разными версиями RSS. В RSS 0.91 был DTD, который включал сущности более старого стандарта HTML 3.2, но предыдущий официальный системный URL для DTD не использовался. (В назойливой и ненужной части интернет-вандализма владельцы Netscape, AOL, разорвали ссылку в реоре несколько лет назад. Не только это, но и 302 вас на их домашнюю страницу, если вы пытаетесь получить доступ к ней или любому другому адресу старый сайт, таким образом предоставляя плохо написанную HTML-страницу клиентам, ожидающим DTD. Плохой AOL, 302-404-ые настолько поддельные.)
RSS 2.0 вообще не имеет официального DTD. Так или иначе, избегайте сущностей HTML, используя предопределенные сущности и числовые ссылки на символы в предпочтении.
onmouseover="tooltip_on( '<strong>Tool...
Недопустимо в любом типе документа. <
недопустимо в значении атрибута.
onmouseover="tooltip_on( '<strong>Tooltip...
Действительный, но нечитаемый. Второе предложение Дэвида о ненавязчивом JavaScript.