2010-04-13 64 views
5

我有一个复杂的XSD模式和数百个符合模式的XML文件。如何从XSD模式构建数据库并导入XML数据

如何自动创建相关的SQL Server表来存储XML数据?

我已经考虑过使用XSD.EXE工具,让类似亚音速计算出如何使一个闪亮的数据库出来的,但不知道这是否是进场的最佳方式从XSD架构创建C#类它。

有没有人设法将XSD文件优雅地导入到SQL Server中?

具有很好的答案类似的问题:How can I create database tables from XSD files?

回答

9

我建议你使用SQL Server集成服务,来与SQL Server 2008或2005(如果或数据转换服务的坚持与2000年)。

不幸的是,它并没有提供免费的“快速”版本的SQL Server,但是SQL Server Developer版本可以有< $ 100,它具有完整的SQL Server标准功能并且可以满足您的需求。

SSIS是一个很大的话题,我不打算去了所有的钟声和口哨声在这里,但基本上你:

  • 创建使用BIDS(商业智能开发套件,一个新的SSIS项目修改Visual Studio附带的SSIS)
  • 将新数据流任务拖放到控制流表面上,然后单击数据流选项卡。
  • 将工具箱中的“XML源”拖到数据流面板中,然后配置XSD和XML文件位置。
  • 将ADO.NET数据目标从工具箱拖放到数据流上,并将其中一个输出从XML源连接到ADO.NET目标的输入。如果您希望根据xml架构的数据输出创建一个新表,而不是在ADO.NET目标中指定连接管理器设置时使用现有的单击“新建”,并生成并执行相应的创建表声明。对来自XML源的任何其他输出重复此操作(从模式生成的每个逻辑平面表将会有一个输出)。

在加载到SQL Server之前,您可能需要首先使用其他数据转换对象来转换数据,但这是它的一般要领。如果您需要为大量XML文件运行进程,则可以将任务置于控制循环中并使用变量来设置XML文件的位置。

上使用SSIS XML源的MS文档是在这里:http://msdn.microsoft.com/en-us/library/ms140277(v=SQL.100).aspx

+0

谢谢。我有一个SQL Server 2008开发人员许可证,但不是BIDS。我会研究SSIS。 – 2010-04-13 11:49:15

+0

BIDS附带SQL Server Developer,并应与SQL Server Management Studio和其他客户端工具一起安装。这是您用于创作报告服务报告的相同工具。 – 2010-04-13 12:05:31

+0

SSIS将创建表格,但这只是该作业的1/2。它并没有在它们之间创建任何引用。它也会对数据做出一些疯狂的假设,例如'int(数字)(20,0)'。 – ajeh 2016-07-06 18:59:36

5

刚刚发现XSD2DB on Sourceforge,根据现场:

XSD2DB是在C#编写 一个命令行工具,这将阅读Microsoft ADO.NET兼容数据集架构文件 (XSD)并生成数据库的Microsoft 。

检出它。

+1

它为你工作,因为它在一个大的模式文件上失败了。 – IEnumerator 2010-04-23 15:37:35