2009-12-03 110 views
15

我们正在寻找一种方法让C#从XSD自动生成类,并使用XSD中的命名空间信息创建C#命名空间。XSD命名空间到C#命名空间

似乎你可以从XSD创建一个结构化(xxxx.yyyy.zzzz)C#命名空间?

有没有我们失踪的招数?

谢谢

+0

你可以添加一些细节?你有什么尝试?什么没有用? – Oded 2009-12-03 21:56:49

+0

难道你不能只从名称空间URL去掉'http'和斜线,并用点替换斜杠来创建一个c#名称空间吗? (例如http://mydomain.com/myservice/1.0 = namespace mydomain.com.myservice.1.0 – 2009-12-03 21:58:58

回答

22

这会做诡计吗?该/ N允许您指定一个命名空间来存放生成的类。

xsd.exe /classes MyXSDInput.xsd /n:MyCsharpNamespace 
+2

这是一个可行的解决方案+1 – 2010-04-07 18:57:11

3

有Codeplex上一个很有趣的项目XSD2Code。它基本上和xsd.exe一样 - 只不过在命令行上和Visual Studio插件更好。

您只需右键单击解决方案资源管理器中的XSD文件,然后运行该工具!

alt text http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Xsd2Code&DownloadId=41336

您可以设置任何有效的.NET命名空间为目标命名空间为您生成的代码文件。

更新: XSD2Code工具已得到进一步开发,现在提供免费和付费的商业工具 - see the official home page for more details

+0

这个工具(Xsd2Code)可能非常有用,但我不能在nVS2012中使用它。无论是VS Gallery的附加组件还是从Codeplex下载的组件都无法正常工作,所以我投下了一个答案。 – 2015-07-08 08:07:32

+1

@achristov:很抱歉听到 - 但我无法重现您的问题 - 我只是再次下载了该工具,从Codeplex安装它,重新启动Visual Studio,我可以很好地使用XSD2Code工具,downvote看起来有点苛刻 - 如果出现问题,那么这是**作者的**作业来解决它,我不应该't be *惩罚*对于这样的问题...... – 2015-07-08 08:20:41

+0

我在这里找到了Xsd2Code的链接,在你的答案中。一旦安装工具出现问题,这是没有用的,对吗?我应该继续吗? – 2015-07-09 08:02:34