Подтвердить что ты не робот

Как создать таблицы базы данных из файлов XSD?

У меня есть набор XSD, из которых я генерирую классы доступа к данным, хранимые процедуры и многое другое.

У меня нет способа создать таблицу базы данных из них - есть ли инструмент, который будет генерировать операторы DDL для меня?

Это не то же самое, что Создать таблицу БД из таблицы набора данных, так как у меня нет таблиц набора данных, а XSD.

4b9b3361

Ответ 1

Коммерческий продукт: Altova XML Spy.

Обратите внимание, что для этого нет общего решения. XSD может легко описать то, что не сопоставляется с реляционной базой данных.

В то время как вы можете попытаться "автоматизировать" это, ваш XSD должен быть спроектирован с реляционной базой данных, иначе это не сработает.

Если у XSD есть функции, которые плохо отображаются, вам нужно (1) создать какое-то сопоставление, а затем (2) написать собственное приложение для перевода XSD в DDL.

Был там, сделал это. Работа в аренду - нет открытого источника.

Ответ 2

Существует инструмент командной строки XSD2DB, который генерирует базу данных из xsd файлов, доступных в sourceforge.

Ответ 3

Я использую XSLT для этого. Запишите свой XSD, а затем передайте свои модели данных через ручной XSLT, который выводит команды SQL. Запись XSLT выполняется быстрее и многократно, чем пользовательская программа / script, которую вы можете написать.

По крайней мере, как я это делаю на работе, и благодаря этому у меня есть время пообщаться на SO:)

Ответ 4

XML-схемы описывают иерархические модели данных и могут плохо отображаться в реляционной модели данных. Сопоставление XSD с таблицами базы данных очень похоже на сопоставление объектов с таблицами базы данных, на самом деле вы можете использовать фреймворк, такой как Castor, который делает оба варианта, он позволяет вам использовать схему XML и генерировать классы, таблицы базы данных и код доступа к данным. Я полагаю, что сейчас есть много инструментов, которые делают то же самое, но будет кривая обучения, а сопоставления по умолчанию больше всего не будут такими, какие вы хотите, поэтому вам придется тратить время на настройку любого используемого инструмента.

XSLT может быть самым быстрым способом генерации именно того кода, который вы хотите. Если это небольшая схема жесткого кодирования, это может быть быстрее, чем оценка и устранение множества новых технологий.

Ответ 5

Лучший способ создания схемы базы данных SQL с использованием файла XSD - это программа Altova XMLSpy, это очень просто:

  • Создать новый проект
  • В папке DTD/Schemas щелкните правой кнопкой мыши и выберите файлы добавления
  • Выбор файла XSD
  • Откройте файл XSD, добавленный двойным щелчком мыши
  • Перейдите на панель инструментов и посмотрите Конверсия
  • Они выбирают Создать структуру базы данных из схемы XML
  • Выбор источника данных
  • И, наконец, дать ему возможность экспортировать вызовы маршрута, немедленно оставить свои схемы сценариев с SQL Server для выполнения запроса.

Надеюсь, что это поможет.

Ответ 6

Создайте модель Java, используя Axis wsdl2java (который может принимать файлы .xsd).

Используйте инструмент генерации базы данных для Java, который использует Java-модель. Неужели что-то вроде Hibernate может это сделать? Я написал свой собственный инструмент (занимает пару дней, также генерирует код CRUD на Java тоже), чтобы сэкономить время на работе, может быть, это был бы приятный персональный проект?

Или просто сделайте это вручную, чтобы вы могли проверить, все ли правильно и хорошо! Инструменты базы данных теперь достаточно хороши, что вы можете зашифровать создание таблиц для модели без особых проблем.

Ответ 7

Можно взглянуть на инструмент XSD в visual studio 2k8... Я создал реляционный набор данных из xsd, и он может каким-то образом помочь вам.

Ответ 8

hyperjaxb (версии 2 и 3) на самом деле генерирует файлы сопоставления спящего режима и связанные объекты сущностей, а также проведет проверку в оба конца для данного XSD и пример XML файла. Вы можете записать вывод журнала и посмотреть инструкции DDL для себя. Мне пришлось немного подстроить их, но с самого начала он дает вам базовый синий шрифт.