2011-02-03 136 views
29

每當我需要從XML XSD架構創建類文件時,我都會在VS中使用.NET xsd.exe工具和預先生成的事件來確保我的類和模式在構建時彼此同步。這當然工作正常,但是...Visual Studio 2010:XML XSD架構到IDE中的類

我注意到,如果XSD和派生類在同一個項目中VS理解關係,並在解決方案資源管理器中可視化地顯示CS作爲XSD文件的子項。所以我想知道在Visual Studio 2010中是否有任何功能在IDE中爲我執行類創建,而不是依賴預構建腳本?

例如,我會將XSD添加到項目中,在某處設置一些選項,VS接管併爲我創建我的類。

VS 2010是否支持這樣的事情?或者我應該停止想知道並繼續使用xsd.exe和prebuild。

編輯 我也注意到了XSD文件,我必須設置Custom Tool期權的性質,在閱讀說明書,這似乎接近我所瞄準的,但我不能確定正確的用法這個性質。

編輯 此外,如果有一個解決方案,我需要這是基於VS2010標準的特性/功能。我寧願不使用第三方插件等

+1

它出現在VS2012中,您可以將xsd文件添加到您的項目中,並自動生成類 – msmucker0527 2015-02-16 20:15:25

回答

13

Visual Studio 2010本身不包含任何這樣的功能一般消費。

Visual Studio在ADO.NET中的類型化數據集的上下文中對此XSD到代碼的轉換提供了一些有限的支持 - 但這些不是通用解決方案,它們針對的只是一種使用場景。

做檢查出XSD2Code附加所做的正是這

enter image description here

+0

如果必須在使用該解決方案的每臺計算機上安裝插件,我非常希望避免第三方插件。在Xsd2Code的情況下,只能在一臺機器上安裝插件是否可行? – MrEyes 2011-02-03 12:37:49

+1

@MrEyes:只有你**需要應用程序中的插件應該從XSD轉換爲C# - 其餘的程序員可以簡單地使用生成的C# - 無需在每臺機器上安裝插件... 。正如我所說:在VS中沒有**通用**這樣做 - 所以它要麼是插件,要麼沒有任何東西.... – 2011-02-03 13:20:35

3

曾經有這樣做在Visual Studio的手段。你可以右鍵點擊一個XML模式,並在上下文菜單中有一個選擇,如「生成數據集」。我經常使用它,它運行得很好。出於某種神祕的原因,微軟取消了該功能 - 也許在VS 2003之後?我不確定爲什麼使用命令行實用程序是可以的,並且從菜單執行相同的代碼是不行的,但它在那裏。

56

您可以使用C:\program files\Microsoft\SDKs\Windows\v7.0A\Bin\xsd.exe中的XSD.exe。按照步驟添加XSD在VS工具菜單

  1. 添加XSD文件到你的VS項目
  2. 轉到Visual Studio工具菜單
  3. 轉到外部工具菜單項
  4. 添加
  5. 輸入標題爲XSD
  6. 命令作爲系統中xsd的路徑(通常爲C:\program files\Microsoft SDKs\Windows\v7.0A\Bin\xsd.exe。 )
  7. 參數作爲$(ItemPath) /c /l:cs
  8. 初始目錄$(ItemDir)
  9. 檢查使用輸出窗口 完蛋了按OK

然後點擊你的Solution Explorer中的XSD文件,然後工具 - XSD點擊,這將生成與.XSD文件相同的文件夾中的類。如果您在步驟1中沒有添加該文件,則必須通過在解決方案資源管理器中右鍵單擊該項目,將生成的.cs文件添加到項目中,選擇添加 - >現有項目,然後選擇.CS文件從.XSD生成的應該存在並且可以包含。