Тип «xml»

Файл типа «xml» должен иметь одну из следующих структур:

  1. файл типа «xml» представлен в виде одной таблицы. Пример структуры:

    <root>
      <row>
        <column1>data</column1>
        <column2>data</column2>
      </row>
      <row>
        <column1>data</column1>
        <column2>data</column2>
      </row>
    </root>

    В модели обращение к данной таблице выполняется через default. Пример: SELECT * FROM `default`;

  2. файл типа «xml» представлен в виде нескольких вложенных таблиц. Пример структуры:

    <root>
      <table1>
        <row>
          <column1>data</column1>
          <column2>data</column2>
        </row>
        <row>
          <column1>data</column1>
          <column2>data</column2>
        </row>
      </table1>
      <table2>
      ...  
    </table2>
    </root>

    В модели обращение к данным таблицам происходит по именам из ключей словаря верхнего уровня. Пример: SELECT * FROM `table1` INNER JOIN `table2` ON `table1`.`id1`=`table2`.`id2`.

Условия и ограничения:

  1. загружаемый файл должен быть в формате .xml;

  2. кодировка файла должна быть UTF–8;

  3. начальные и конечные пробелы не учитываются при распознавании значений и при чтении значений типов, отличных от строкового. Если значение состоит только из пробелов, и тип столбца – не строковый, то значение будет пустым (null – для чисел и дат, false – для булевого типа);

  4. целые числа – последовательность десятичных цифр, без разделителей;

  5. вещественные числа – точка в качестве десятичного разделителя, не поддерживается экспоненциальная нотация (1.23e2 = 123);

  6. булевы значения – true/false (регистронезависимо);

  7. значение в форматах, перечисленных в таблице выше (см. Таблица «Форматы и примеры значений»), определяется как тип datetime64[ns, UTC].

Описание особенностей обработки часового пояса:

  • если исходное значение даты со временем было без часового пояса – то в БД сохраняется именно это значение;

  • если исходное значение даты со временем было с часовым поясом – то преобразуется в UTC перед сохранением в БД (в БД сохраняется также без часового пояса);

  • на уровне внутренних контрактов между источниками данных: данные передаются как значение, привязанное к UTC, при сохранении в БД привязка к UTC не учитывается.