从MS SQL数据库获取XML模式

时间:2008-11-18 13:00:05

标签: .net database sql-server-2005 xsd ndbunit

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

3 个答案:

答案 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月中旬。