从XML自动生成SQL模式

时间:2020-03-06 14:27:48  来源:igfitidea点击:

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

解决方案

我们可以使用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来进行控制)。如果我们想自己决定结构,则可能不是我们想要的。