Автоматическое создание схемы SQL из XML

Мы пытаемся использовать базу данных SQL Server 2003 для наших тестовых записей и хотим получить быстрый способ получения вывода NUnit и NAnt и создания схемы и данных SQL. Есть ли простой способ сгенерировать схему SQL с использованием файла XSD, описывающего эти XML-документы?

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
2
0
3 711
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Вы можете использовать XSD. Нет, я серьезно. Перейдите в командную строку, введите xsd и нажмите Enter.

Вот что вы увидите (усечено):

I:\>xsd
Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 1.0.3705.0]
Copyright (C) Microsoft Corporation 1998-2001. All rights reserved.


xsd.exe -
    Utility to generate schema or class files from given source.

xsd.exe <schema>.xsd /classes|dataset [/e:] [/l:] [/n:] [/o:] [/uri:]
xsd.exe <assembly>.dll|.exe [/outputdir:] [/type: [...]]
xsd.exe <instance>.xml [/outputdir:]
xsd.exe <schema>.xdr [/outputdir:]

Просто следуйте инструкциям.

Поскольку XSD неоднозначен с точки зрения отношений мастер-деталь, я сомневаюсь, что автоматическая генерация возможна.

Например, объявление типа

<xs:element name = "foo" type = "footype" minOccurs = "0" maxOccurs = "unbounded" /> 

может интерпретироваться как дочерняя таблица «foo» (1: n) или как отношение n: m.

minOccurs = "0" maxOccurs = "1" может быть столбцом, допускающим значение NULL, или необязательным отношением 1: 1.

type = "xs: string" maxOccurs = "1" - это строковый ((n) varchar) столбец или необязательный поиск; но type = "xs: string" maxOccurs = "unbounded" - это подробная таблица с (n) столбцом varchar.

Есть инструмент под названием ShreX, который может создавать схемы из xsd и вставлять из XML. Он пытается сделать это сам (вы можете аннотировать xsd, чтобы управлять им). Если вы хотите самостоятельно определять структуру, это может быть не то, что вам нужно.

Другие вопросы по теме