2009-12-03 75 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