如何从XSD架构构建数据库并导入XML数据

Pet*_*ron 7 xml database sql-server import xsd

我有一个复杂的XSD架构和数百个符合架构的XML文件.

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

我考虑过使用xsd.exe工具从XSD架构创建C#类,让像Subsonic这样的东西弄清楚如何从中创建一个闪亮的数据库,但不确定它是否是最好的方法.

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

一个类似的问题,答案很好:如何从XSD文件创建数据库表?

Gra*_*tie 10

我建议你使用SQL Server Integration Services,它附带SQL Server 2008或2005(如果你坚持使用2000,则使用数据转换服务).

不幸的是,它没有附带SQL Server的免费"Express"版本,但SQL Server Developer版本可以<100美元,具有完整的SQL Server Standard功能,可以满足您的需求.

SSIS是一个很大的话题,我不会在这里讨论所有的花里胡哨,但基本上你是:

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

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

有关在SSIS中使用XML源的MS文档,请访问:http://msdn.microsoft.com/en-us/library/ms140277( v = SQL.100).aspx


Pet*_*ron 5

刚刚在Sourceforge上发现了XSD2DB,根据该网站:

XSD2DB是一个用C#编写的命令行工具,它将读取与Microsoft ADO.NET兼容的DataSet架构文件(XSD)并生成数据库.

检查出来.