2008-11-14 46 views

回答

28

作爲替代,有Xsd2Code。一些功能:

  • 生成部分類。
  • 支持通用和自定義集合(List,ObservableCollection,MyCustomCollection)。
  • 當不需要特殊的獲取或設置時支持自動屬性。
  • 可以生成WCF屬性(DataContract/DataMember)。
  • 支持nillable類型。
  • 屏蔽IDE中的專用字段(使用EditorBrowsableState.Never屬性)。
  • 在構造函數中生成對象分配。
  • 實現INotifyPropertyChanged以啓用wpf或Silverlight的DataBinding。
  • 使用Visual Studio插件提高生產力。
  • 從xsd註釋生成摘要文檔。
  • 檢查是否新的和舊的值int setter在提高屬性更改事件之前是相同的。
  • 在cs或vb標題中生成備份選項。
  • 將Xml文檔保存並加載到Silverlight應用程序(3.0中的新增功能)的獨立文件存儲中。
  • 生成CS,VB或CPP代碼。
  • 序列化/反序列化對象。
  • 保存到文件並從文件加載。
  • 包含Xsd2CodeCustomTool。
+0

我正在尋找一種方法讓xsd.exe生成速記屬性。儘管這是不可能的,但Xsd2Code會將它做成零食(使用xsd.exe將.xml轉換爲.xsd,然後使用Xsd2Code生成C#類)。謝謝。 – 2012-01-06 21:29:24

4

看起來像你至少可以(根據this article, anyway)與VS2005使用

剛下將它添加到VS2005你的外部工具集「工具>>外部工具...」。

設置你的參數,如下

  • 對於VB:$(ItemPath)/ L:VB /f:$(ItemFileName).vb/C/d /噸
  • 對於C#:$ (ItemPath)/升:CS /f:$(ItemFileName).vb/C/d /噸

但看來XSD和XSDObjectGen將產生不同的類。實際上,在這篇Rick Strahl的文章中的評論說「他們產生非常不同類別」在article here

+0

多麼有趣...一個downvote?如果我的回答混亂或誤導,請提供解釋。我相信其他讀者會喜歡。 – 2014-01-31 15:45:27

6

的區別是:

給你一些想法,這裏是XSDObjectGen.exe彙總功能列表:

  • 支持最流行的XML架構構建
  • 枚舉和集合行爲重複元素
  • 編程模型匹配模式
  • 自動子類建設
  • 名稱避免衝突
  • 的Visual Studio IDE集成
  • 的日期時間類型的特殊處理邏輯
  • 多部分的模式,支持
  • XML命名空間序列化
  • 可選參數和序列支持
  • 選擇支持
  • 換人組
  • MakeSchemaCompliant方法
  • 非可選參考類型handli ng
  • WS-I。組織基本配置文件合規
  • 多的編程語言支持
  • 縱深穿越活動

有關這些功能的更多詳細信息,請參閱XSDObjectGen.doc文檔文件(C:\Program Files\XSDObjectGenerator可用工具安裝完畢後, )。

3

在純粹的技術層面:

XSD.EXE使用Arrays
XSDObjectGen採取小步前進,使用ArrayLists
XSD2Code 躍進使用Generics

如果您使用的是.NET 2.0及更高版本,則使用XSD2Code是最優選的。