Я создаю XML-документы со значениями, полученными из БД. Иногда из-за устаревшей реализации я откатываю значение, которое содержит недопустимый символ, если он не экранирован должным образом (например, &).
Возникает вопрос: что делать: CDATA или Escape? Какие ситуации больше подходят для одного по сравнению с другим?
Примеры:
<Email>foo&[email protected]</Email>
Я бы склонился к CDATA здесь.
<Name>Bob & Tom</Name>
Я склоняюсь к тому, чтобы сбежать отсюда.
Я хочу избегать слепого использования CDATA каждый раз, но с точки зрения производительности это кажется логичным выбором. Это всегда будет быстрее, чем поиск недопустимого символа, и, если он существует, выполнить перенос.
Мысли?