Причина в том, что <
, >
и &
всегда должны быть экранированы в XML. Они имеют особое значение в XML, поэтому к ним нужно обращаться особенно, если они являются частью данных (вместо разметки).
Два других, '
и "
, могут быть экранированы, их имена сущностей известны XML (в основном, для обеспечения правильного функционирования значений атрибутов, например:
<xml ackbar="He said, "It's a trap!"" />
<xml ackbar='He said, "It's a trap!"' />
Во всех местах, где их побег не является абсолютно необходимым, они могут происходить буквально.
Результирующий набор информации (например, в форме DOM) будет точно таким же, и вам не должно быть слишком важно, встречаются ли они буквально или как сущность в файле XML.
На самом деле все ваши данные могут находиться в экранированной форме (пронумерованные объекты, как в
) без изменения фактического документа - отличается только сериализованное представление.
Пока вы работаете с инструментами, поддерживающими XML (например, анализаторы DOM), вы никогда не заметите разницы. Следствие: если вы не работаете с инструментами, поддерживающими XML (например, регулярное выражение или манипулирование строками), вам следует немедленно прекратить это. ; -)