18

谁能告诉我 XSDObjectGen.exe 和 XSD.exe 有什么区别?

有没有办法让 XSDObjectGen.exe 在 dot net 2.0 中工作?

4

4 回答 4

29

作为替代方案,还有Xsd2Code。一些特点:

  • 生成部分类。
  • 支持通用和自定义集合(List、ObservableCollection、MyCustomCollection)。
  • 在不需要特殊获取或设置时支持自动属性。
  • 可以生成 WCF 属性(DataContract/DataMember)。
  • 支持可空类型。
  • 屏蔽 IDE 中的私有字段(使用 EditorBrowsableState.Never 属性)。
  • 在构造函数中生成对象分配。
  • 实现 INotifyPropertyChanged 以启用 wpf 或 Silverlight 的 DataBinding。
  • 使用 Visual Studio 插件提高工作效率。
  • 从 xsd 注释生成摘要文档。
  • 在引发属性更改事件之前检查新旧值 int setter 是否相同。
  • cs 或 vb 标头中的备份选项生成。
  • 将 Xml 文档保存并加载到 silverlight 应用程序的隔离文件存储中(3.0 中的新功能)。
  • 生成 CS、VB 或 CPP 代码。
  • 序列化/反序列化对象。
  • 保存到文件并从文件加载。
  • 包括 Xsd2CodeCustomTool。
于 2010-06-09T10:17:33.047 回答
7

区别在于:

为了给您一些想法,这里是一个摘要功能列表XSDObjectGen.exe

  • 支持最流行的 XML 模式结构
  • 重复元素的枚举器和集合行为
  • 匹配模式的编程模型
  • 自动子类构造
  • 名称冲突避免
  • Visual Studio IDE 集成
  • DateTime 类型的特殊处理逻辑
  • 多部分模式支持
  • XML 命名空间序列化
  • 可选和序列支持
  • 选择支持
  • 替代组
  • MakeSchemaCompliant 方法
  • 非可选的引用类型处理
  • WS-I.org 基本配置文件合规性
  • 多编程语言支持
  • 深度遍历事件

有关这些功能的更多详细信息,请参阅XSDObjectGen.doc文档文件(C:\Program Files\XSDObjectGenerator安装该工具后可用)。

于 2010-06-09T10:13:29.810 回答
5

看起来您至少可以将它与 VS2005 一起使用(无论如何,根据这篇文章

只需将它添加到“工具>>外部工具...”下的 VS2005 的外部工具集合中。

设置你的参数如下

  • 对于 VB:$(ItemPath) /l:vb /f:$(ItemFileName).vb /c /d /t
  • 对于 C#:$(ItemPath) /l:cs /f:$(ItemFileName).vb /c /d /t

XSD 和 XSDObjectGen 似乎会产生不同的类。事实上,这篇 Rick Strahl 文章中的评论在此处的文章中说“它们产生了非常不同的类” 。

于 2008-11-14T22:54:41.437 回答
3

在纯技术层面:

XSD.exe 使用Arrays
XSDObjectGen 领先一步,使用ArrayLists.
XSD2CodeGenerics. _

如果您使用的是 .NET 2.0 及更高版本,则最好使用 XSD2Code。

于 2011-02-18T17:33:26.917 回答