12

是否可以使用 .Net 和 C# 以编程方式生成数据库的 XML 模式?我想研究 NDbUnit,但对于大型数据库,手动制作 Schema 真的不可行吗?

4

3 回答 3

26

是否可以从数据库生成 XML 模式?

可以肯定的是,XMLSpy可以从数据库生成 XML Schema。

还有另一种方法,虽然我从未测试过:

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
于 2008-11-18T14:24:39.670 回答
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);

问题是,我如何调整这种方法以便它可以用于不确定数量的表?没有建立一个字符串虽然不是很理想的连接!

于 2008-11-18T14:44:03.407 回答
-1

使用 MyGeneration 的 typed-dataset-template 自动生成 XSD ( http://www.mygenrationssoftware.com )。它是免费的 OSS,而且效果很好。此外,NDbUnit 团队目前正在开发 NDbUnit 的附加工具,该工具不仅可以从数据库中提取模式,还可以编辑随附 XML 数据集中包含的测试数据。此工具的预计到达时间约为 7 月中旬。

于 2009-06-07T11:11:31.660 回答