如何从XML模式创建SQL Server表模式? (使用.NET和Visual Studio 2008)

我有一个XML模式,我知道“xsd.exe”可以为它生成C#代码。 但我想知道是否可以借助此工具或其他工具从XSD自动创建MS SQL Server 2005+表。

顺便说一下,我没有得到“xsd.exe”生成的C#代码值得的东西。 CodeXS和xsd.exe生成的代码之间有什么区别?

您可以使用XSD2DB实用程序

这是示例xsd2db.exe -f true -l [服务器名称] -n [数据库名称] -s D:\ po.xsd -t sql

帮助链接http://xsd2db.sourceforge.net/

免责声明:我自己没有这样做,但是当我考虑这样做的时候,我不久前给这些链接添加了书签。 这家伙的T-SQL通常很棒,所以我推荐它:

http://weblogs.sqlteam.com/peterl/archive/2009/03/05/Extract-XML-structure-automatically.aspx

http://weblogs.sqlteam.com/peterl/archive/2009/06/04/Extract-XML-structure-automatically-part-2.aspx

顺便说一下,我没有得到“xsd.exe”生成的C#代码值得的东西。

我假设你的意思是“我不明白生成的代码是如何有用的”

它生成的代码的目的是使用.NET中的Microsoft序列化子系统进行序列化。 如果你创建一个新的XmlSerializer(typeof(GeneratedType)),你可以调用它上面的Serialize()和Deserialze()来进出Xml和对象。

在更复杂的代码生成器(如CodeXS)中,它变得更加容易,因为它们为您生成帮助程序:GeneratedType.FromXML(Stream / String)用于反序列化,myGeneratedType.Xml用于序列化。

这些生成的类允许您处理已发布的模式,并且完全相信所生成的满足模式的任何XML都将使用这些类型进行解析和生成。 您不需要做任何工作来从XML中获取数据(即没有XML DOM访问权限),您不需要考虑生成符合您的模式的XML。 它只是工作:)

只要您可以成功解析XML模式,您就应该能够创建适当的数据库脚本并执行它们来创建表。