Символ & является остатком корней XML в SGML. Там & ...; Синтаксис используется для избежания всевозможных вещей, даже целых документов для встраивания. Поэтому, если вы хотите использовать буквальное «&», вы должны избежать его. Это то же самое, что использование кавычек внутри строк на любом языке программирования.
Бесполезно позволять XML выполнять какое-то исправление ошибок типа "Если после буквы нет, выведите литерал &", потому что это нарушит синтаксис SGML, как сказано, на основе XML. 1003 *
То, что это делается в HTML большинством браузеров, объясняется тем, что, по их словам, пользователям лучше видеть любую вещь, чем ошибку синтаксического анализа SGML. Но это открывает совершенно новую коробку Pandora, какой браузер делает какие исправления ошибок. Посмотрите на спецификацию HTML5, и вы увидите, что означает действительно определять обработку ошибок. Это много текста.
Один особый случай: вы можете включить литерал "&" в XML / RSS, если заключите его в так называемый раздел "CDATA". Это будет выглядеть следующим образом:
<! [CDATA [
Смит и Вессон
]]>
Приветствия