【问题标题】:Automatically Generating SQL Schema from XML从 XML 自动生成 SQL Schema
【发布时间】:2010-09-11 10:59:03
【问题描述】:

我们正在尝试将 SQL Server 2003 数据库用于我们的测试记录,并希望有一种快速的方法来获取 NUnit 和 NAnt 输出并生成 SQL 架构和数据。有没有一种简单的方法可以使用描述这些 XML 文档的 XSD 文件生成 SQL Schema?

【问题讨论】:

    标签: sql xml unit-testing


    【解决方案1】:

    您可以使用 XSD。不,我认真的。转到命令提示符并键入 xsd 并按 Enter。

    您将看到以下内容(截断):

    I:\>xsd
    Microsoft (R) Xml Schemas/DataTypes support utility
    [Microsoft (R) .NET Framework, Version 1.0.3705.0]
    Copyright (C) Microsoft Corporation 1998-2001. All rights reserved.
    
    
    xsd.exe -
        Utility to generate schema or class files from given source.
    
    xsd.exe <schema>.xsd /classes|dataset [/e:] [/l:] [/n:] [/o:] [/uri:]
    xsd.exe <assembly>.dll|.exe [/outputdir:] [/type: [...]]
    xsd.exe <instance>.xml [/outputdir:]
    xsd.exe <schema>.xdr [/outputdir:]
    

    按照说明操作即可。

    【讨论】:

      【解决方案2】:

      由于 XSD 在主从关系方面模棱两可,我怀疑自动生成是可能的。

      例如,

      之类的声明
      <xs:element name="foo" type="footype" minOccurs="0" maxOccurs="unbounded" /> 
      

      可以解释为子表 "foo" (1:n) 或 n:m 关系。

      minOccurs="0" maxOccurs="1" 可以是可为空的列,或可选的 1:1 关系。

      type="xs:string" maxOccurs="1" 是字符串 ((n)varchar) 列,或可选查找;但是 type="xs:string" maxOccurs="unbounded" 是一个带有 (n)varchar 列的详细信息表。

      【讨论】:

        【解决方案3】:

        有一个名为ShreX 的工具可以从xsd 生成模式并从XML 插入。它会尝试自己执行此操作(您可以对 xsd 进行注释以控制它)。如果你想自己决定结构,它可能不是你想要的。

        【讨论】:

          猜你喜欢
          • 2013-01-07
          • 2018-09-07
          • 1970-01-01
          • 2010-12-15
          • 2017-12-04
          • 2016-10-01
          • 2014-07-16
          • 2012-02-01
          • 1970-01-01
          相关资源
          最近更新 更多