Проекты

Xml2Db

Один раз мне пришлось заняться экспортом XML файлов в базу данных. К XML файлам прилагались XSD файлы описывающие типы данных. Всего XML файлов было штук 300, так что ручной труд тут исключался.

Начав бороздить просторы интернета, Я обнаружил MS'овскую программу для импорта XSD схемы в БД и программу для импорта XML. К сожалению программу от MS мне так и не удалось поставить, а программа для импорта XML работала с уже готовыми таблицами...

Вот так и появилась эта программа. В данный момент программа тестировалась в MS SQL Server'е, в других источниках данных не тестировалась. Так что если кому будет необходимо, можете выступить бета тестером.

Я попытался абстрагироваться от БД в которую происходит запись из-за этого, одним из обязательных параметров выступает параметр Provider. Если запустить программу без параметров, то внизу всего списка будут указаны валидные провайдеры. Строку подключения к источнику данных необходимо указывать в формате ADO.NET к примеру: Data Source=SIGMA;Initial Catalog=TTManager;Integrated Security=True;Application Name="TTManager". Хороший ресурс по строкам подключения: ConnectionStrings

В случае если укзан только XML файл, то программа попробует найти XSD файл в папке с XML файлом.

Если XSD файл не найден, то все созданные колонки будут типа NVarChar (для MSSQL)

Программа требует Microsoft .NET Framework 3.5

Пример:

Xml2Db.exe /C:"Data Source=SIGMA;Initial Catalog=TTManager;Integrated Security=True" /P:System.Data.SqlClient /M:"C:\Test.xml"

Коды выхода приложения:

  • 0 — Выполнение успешно
  • -1 — Произошла исключительная ситуация
  • -2 — Недостаточно параметров
  • -3 — Входной файл не найден
Теги:

Скачать

  • 30 июля 2013 г.
    Если таблица в XML файле только одна, то наименование таблицы берётся из идентификатора дата сета.
  • 6 февраля 2013 г.
    Если текст в поле XML файла превышает 8 000 символов, то скрипт создания таблицы передаёт тип поля как NVarChar(MAX).
  • Xml2Db_v1.1.zip (1.1.4080.25864)
    4 марта 2011 г.

    Добавлен параметр /L.

    При установке параметра в True, программа будет определять тип данных автоматически. К примеру, если колонка автоматом определилась как BigInt, а все ряды в колонке содержат числа не более 255, то колонка будет создана с типом TinyInt.

    При отсутсвии данных хоть в одном ряду в колонке, колонка создасться как Nullable. В противном случае, она содастся как NOT NULL.

    Примечание: Если колонка имеет строковой тип, а в рядах данные будут отсутсвовать, то колонка создастся с минимальной длинной 1, а не 0.

  • Xml2Db.zip (1.0.3991.19648)
    13 февраля 2011 г.