Задача 102.148511

Задача :102.148511

Краткое описание :
Оператор select to xml должен формировать корректный файл, чтобы его смогли прочитать внешние приложения.
Описание :
Vip - язык, компиляция
Что измененно :


Компилятор SQL

Экспорт-импорт

----- СУТЬ ПРЕДЛОЖЕНИЯ -----
Оператор select to xml должен формировать корректный файл, чтобы его смогли прочитать внешние приложения.

1) Исправить обрезку полей при замене " на "

2) В соответствии со стандартом http://www.w3.org/TR/2006/REC-xml-20060816/#charsets разрешенными символами для XML файлов являются
  гx9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
 а
Из чего следеует, что символы #x1-#x8,  гxB,  гxC,  гxE - #x1F, стандартными парсерами XML (например  от Microsoft, от Oracle Java) воспринимаются как ошибочные. Их не должно быть в XML выгрузке.

3) Разрешенные символы #x9 | #xA | #xD (табуляции и переводы строки) при выгрузке в XML нужно менять на строки

4) В текущей версии получаемый в результате XML файл. Выгружается как одна сплошная строка. При больших объёмах выгрузки 7 МБ и более. В текстовых редакторах такие файлы невозможно открыть.
Для удобства правки таких файлов в текстовых реакторах необходимо записывать форматированные XML (с переносами строк и с отступами). В данном случае целесообразно и записывать на новой строке. T
Как измененно :

1) исправлена обрезка полей;
2) запрещенные символы  -#x1-#x8,  гxB,  гxC,  гxE - #x1F № при выгрузке пропускаются;
3) табуляция и переводы каретки выгружаются как коды  T  T
4)  T и  T выгружаются с отступами построчно;
5) поля всегда выгружаются с заголовками (атрибут NAME; также включена и заблокирована соответствующая опция в настройках импорта-экспорта БД в Саппорте);
6) реализована выгрузка и загрузка мемо-полей: соответствующий тег в xml-файле дополняется атрибутом PREFIX, содержимое поля кодируется в base64 и сохраняется в виде неразрывной строки в тексте тега;
7) для импорта используется SAX-парсер от Microsoft, поэтому объём входного xml-файла роли не играет.
8) формат вывода полей типа time по умолчанию - "'HH:MM:SS:SSS'", datetime - "DD/MM/YYYY HH:NN:SS:SSS";


Название продукта Название компонента Тип Последняя версия Дата выхода
aSQLASQLEXE5.5.24.0
SupportSUPPORTEXE5.5.24.0