【发布时间】:2010-09-11 10:59:03
【问题描述】:
我们正在尝试将 SQL Server 2003 数据库用于我们的测试记录,并希望有一种快速的方法来获取 NUnit 和 NAnt 输出并生成 SQL 架构和数据。有没有一种简单的方法可以使用描述这些 XML 文档的 XSD 文件生成 SQL Schema?
【问题讨论】:
标签: sql xml unit-testing
我们正在尝试将 SQL Server 2003 数据库用于我们的测试记录,并希望有一种快速的方法来获取 NUnit 和 NAnt 输出并生成 SQL 架构和数据。有没有一种简单的方法可以使用描述这些 XML 文档的 XSD 文件生成 SQL Schema?
【问题讨论】:
标签: sql xml unit-testing
您可以使用 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:]
按照说明操作即可。
【讨论】:
由于 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 列的详细信息表。
【讨论】:
有一个名为ShreX 的工具可以从xsd 生成模式并从XML 插入。它会尝试自己执行此操作(您可以对 xsd 进行注释以控制它)。如果你想自己决定结构,它可能不是你想要的。
【讨论】: