Хм, насколько я могу судить, разделы CDATA предназначены для символьных данных, а управляющие символы не учитываются. Я предполагаю, что это означает, что в вопросе о новых строках анализаторы XML делают суждение о том, являются ли они символом управления или нет (исторически, да, но практически ... нет.).
Хотя это ухудшит читабельность, вы можете кодировать символы новой строки, используя escape-последовательности, & # x0A; Предполагая, что вы экранируете правильно, синтаксический анализ должен правильно конвертировать его, вам просто нужно будет записать это при кодировании.
Другой вариант, который полностью нарушает ваше «читабельное» требование - это кодирование текста с помощью base-64, что позволяет вам кодировать произвольную информацию в XML.