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

Получение XML-схемы из базы данных MS SQL

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

4b9b3361

Ответ 1

Можно ли создать 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

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

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);

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

Ответ 3

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