是否可以使用.Net和C#以编程方式生成数据库的XML Schema?我想研究NDbUnit但是对于大型数据库来说,手动制作Schema实际上是不可行的?
答案 0 :(得分:26)
是否可以生成XML 数据库中的架构?
可以肯定的是,XMLSpy可以从数据库生成XML Schema。
有another way,但我从未测试过它:
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
答案 1 :(得分: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);
问题是,我怎样才能调整这种方法,以便它可以与不确定数量的表一起使用?没有建立一个字符串虽然连接不完全理想!
答案 2 :(得分:-1)
使用MyGeneration的typed-dataset-template自动生成XSD(http://www.mygenrationssoftware.com)。它免费,OSS,并且工作得很好。此外,NDbUnit团队目前正在研究NDbUnit的附加工具,该工具不仅可以从数据库中提取模式,还可以编辑随附的XML数据集中包含的测试数据。该工具的ETA大约在7月中旬。