Получение XML-схемы из базы данных MS SQL - PullRequest
12 голосов
/ 18 ноября 2008

Можно ли программно сгенерировать XML-схему базы данных с помощью .Net и C #? Я хочу изучить NDbUnit, но для больших баз данных не было бы реально сделать схему вручную?

Ответы [ 3 ]

26 голосов
/ 18 ноября 2008

Можно ли сгенерировать XML Схема из базы данных?

Конечно, XMLSpy может генерировать XML-схему из базы данных.

Есть другой способ , хотя я никогда не проверял его:

create table Person
(
Age int not NULL check( Age > 0) ,
Height numeric(10,2) not NULL check( Height > 5),
Gender varchar(5) not null check( Gender in ('M', 'F', 'O')),
BirthDate datetime null,
)

DECLARE @schema xml
SET @schema = (SELECT * FROM Person FOR XML AUTO, ELEMENTS, XMLSCHEMA('PersonSchema'))
select @schema
2 голосов
/ 18 ноября 2008

Я мог бы сделать это так:

DataSet results = new DataSet();

SqlCommand command = new SqlCommand("SELECT * FROM table", new SqlConnection(connectionString));

SqlDataAdapter sqlAdapter = new SqlDataAdapter(command);

sqlAdapter.FillSchema(results, SchemaType.Mapped);//Fills dataset with schema from query
results.WriteXmlSchema(mySchema);

Проблема в том, как я могу адаптировать этот метод, чтобы он мог использоваться с неопределенным количеством таблиц? Без построения строки, хотя конкатенация, которая не совсем идеально!

0 голосов
/ 07 июня 2009

Используйте шаблон typed-dataset-шаблона MyGeneration для автоматической генерации XSD (http://www.mygenrationssoftware.com).. Он бесплатный, OSS и прекрасно работает. Кроме того, в настоящее время команда NDbUnit работает над дополнительным инструментом для NDbUnit, который будет сделать возможным не только извлечь схему из базы данных, но и отредактировать тестовые данные, содержащиеся в прилагаемом наборе данных XML. ETA для этого инструмента около середины июля.

...