【问题标题】:How to build a database from an XSD schema and import XML data如何从 XSD 模式构建数据库并导入 XML 数据
【发布时间】:2011-02-07 08:54:36
【问题描述】:

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

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

我考虑过使用 xsd.exe 工具从 XSD 架构创建 C# 类,并让 Subsonic 之类的东西找出如何从中制作闪亮的数据库,但不确定它是否是最好的方法。

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

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

【问题讨论】:

    标签: sql-server xml database import xsd


    【解决方案1】:

    我建议您使用 SQL Server 2008 或 2005 附带的 SQL Server 集成服务(如果您坚持使用 2000,也可以使用数据转换服务)。

    不幸的是,它没有附带 SQL Server 的免费“Express”版本,但是 SQL Server Developer 版本的价格不到 100 美元,它具有完整的 SQL Server Standard 功能并且可以满足您的需求。

    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

    【讨论】:

    • 谢谢。我有 SQL Server 2008 开发人员许可证,但没有 BIDS。我会调查 SSIS。
    • BIDS 随 SQL Server Developer 一起提供,应与 SQL Server Management Studio 和其他客户端工具一起安装。它与您用于创作报告服务报告的工具相同。
    • SSIS 将创建表,但这只是工作的 1/2。它不会在它们之间创建任何引用。它还会对数据做出一些疯狂的假设,例如numeric(20,0) for int
    【解决方案2】:

    刚找到XSD2DB on Sourceforge,据网站介绍:

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

    检查一下。

    【讨论】:

    • 它对你有用吗,因为它在一个大模式文件上对我来说非常失败。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 2021-05-22
    相关资源
    最近更新 更多