.net 从MS SQL数据库获取XML架构

.net 从MS SQL数据库获取XML架构,.net,database,sql-server-2005,xsd,ndbunit,.net,Database,Sql Server 2005,Xsd,Ndbunit,是否可以使用.Net和C以编程方式生成数据库的XML模式?我想研究NDbUnit,但是对于大型数据库来说,手动创建模式是不可行的 是否可以生成XML 数据库中的模式 当然,它可以从数据库生成XML模式 虽然我从未测试过,但有: create table Person ( Age int not NULL check( Age > 0) , Height numeric(10,2) not NULL check( Height > 5), Gender varchar(5) not n

是否可以使用.Net和C以编程方式生成数据库的XML模式?我想研究NDbUnit,但是对于大型数据库来说,手动创建模式是不可行的

是否可以生成XML 数据库中的模式

当然,它可以从数据库生成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

我可以这样做:

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

问题是,我如何调整此方法,使其能够用于不确定数量的表?没有建立一个字符串,虽然串联这是不完全理想的

使用MyGeneration的类型化数据集模板自动生成XSD。它是免费的,OSS,而且效果很好。此外,NDbUnit团队目前正在开发NDbUnit的附加工具,该工具不仅可以从数据库中提取模式,还可以编辑附带的XML数据集中包含的测试数据。此工具的预计到达时间约为7月中旬。

本机方法的一个小提示:该查询确实会返回表的XML模式,但也会返回其中的任何数据。要仅获取架构,请将SELECT*FROM替换为SELECT TOP 0*FROM。