Функция FormatXMLData удаляет строку <?xml version=...>

svnvlad
Дата: 28.04.2011 12:23:41
Загружаем в StringList файл:
<?xml version="1.0" encoding="UTF-8"?>
<mail_template><title>Письмо клиенту о регистрации</title><subject>Регистация на сайте SITE</subject></mail_template>

Затем применяем
StringList.Text := FormatXMLData(StringList.Text);
StringList.SaveToFile(...);

В результате получается
<?xml version="1.0"?>
<mail_template>
  <title>Письмо клиенту о регистрации</title>
  <subject>Регистация на сайте SITE</subject>
</mail_template>

Куда делось
encoding="UTF-8"
?
Никола Н
Дата: 28.04.2011 13:58:55
svnvlad,
Формально она не обязательна. По стандарту, если не указана колировка XML-файла, предполагается, что она UTF-8. Хотя, конечно, есть неаккуратность.

Попробуй чисто для эксперимента написать другую кодировку. Если и тогда её уберет из результата - это надо будет считать багом.
svnvlad
Дата: 28.04.2011 17:02:24
Никола Н
svnvlad,
Формально она не обязательна. По стандарту, если не указана колировка XML-файла, предполагается, что она UTF-8. Хотя, конечно, есть неаккуратность.

Попробуй чисто для эксперимента написать другую кодировку. Если и тогда её уберет из результата - это надо будет считать багом.

Попробовал с Windows-1251.
До применения функции sl.text = '<?xml version="1.0" encoding="UTF-8"?>', после применения энкодинг безжалостно убирает.
<?xml version="1.0"?>.
svnvlad
Дата: 28.04.2011 17:03:02
Попробовал с Windows-1251.
До применения функции sl.text = '<?xml version="1.0" encoding="Windows-1251"?>', после применения энкодинг безжалостно убирает.
<?xml version="1.0"?>.
svnvlad
Дата: 28.04.2011 17:20:22
Ну да, всё правильно, так и звучало, что FormatXMLData работает только с utf-8.