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

问题描述 投票:0回答:3

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

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

我考虑过使用 xsd.exe 工具从 XSD 模式创建 C# 类,并让 Subsonic 之类的东西弄清楚如何从中创建一个闪亮的数据库,但不确定这是否是实现它的最佳方法。

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

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

sql-server xml database import xsd
3个回答
11
投票

我建议您使用 SQL Server Integration Services,它随 SQL Server 2008 或 2005 一起提供(或者如果您坚持使用 2000,则使用数据转换服务)。

不幸的是,它没有附带免费的“Express”版本的 SQL Server,但是可以使用 SQL Server Developer 版本 < $100 which has the full SQL Server Standard functionality and would suit your needs.

SSIS 是一个很大的话题,我不会在这里详细介绍所有花哨的内容,但基本上是你:

  • 使用BIDS(Business Intelligence Development Studio,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


5
投票

刚刚在 Sourceforge 上找到 XSD2DB ,根据该网站:

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

检查一下。


0
投票

要将 XML 文件转换为数据库实体,您可以使用 Sonra Flexter 等工具,它可以有效地将 XML 数据转换为数据库就绪格式。 Flexter 使该过程自动化,使得生成表格和将 XML 数据导入数据库变得更加容易。有关 XML 转换器的详细指南以及将 XML 转换为数据库模式所涉及的步骤,您可以参考 Sonra 提供的综合资源。

© www.soinside.com 2019 - 2024. All rights reserved.