【问题标题】:Xsd.exe or Svcutil.exe to convert XSD schema to a classXsd.exe 或 Svcutil.exe 将 XSD 架构转换为类
【发布时间】:2012-04-07 20:57:41
【问题描述】:

是否推荐使用 svcutil 工具而不是 xsd 工具?我不认为这是一个确认的声明,但看起来确实如此。 我对此感到困惑的原因是我使用这两种工具生成了一个类。但是,我使用 xsd 获得了更好的课程。 XSD 架构仅由 DataContracts 组成。

我对 svcutil 使用了以下命令:

svcutil path-to\xyz.xsd /language:C# /dataContractOnly /importxmltypes /out:path-to\class.cs

这生成了所需的类。但是,它只包含字段的 XmlNode[] 对象。

然后,我对 xsd 使用了以下命令:

xsd.exe /c path-to\xyz.xsd /out:path-to\class.cs

它生成的类比 svcutil 生成的要好得多。大部分字段都根据需要进行了转换。

我应该有任何理由相信我应该使用 svcutil 而不是 xsd 吗?

【问题讨论】:

    标签: c# xml xsd svcutil.exe


    【解决方案1】:

    据我所知,XSD.exe 有一些限制;例如,当类中有Dictionary<,> 时,XSD.exe 无法生成正确的 XSD;因为Dictionary 没有实现IXmlSerializable

    【讨论】:

    • 好的。我还有其他几个模式,我会使用工具对其进行转换,看看哪种模式更适合我的使用。我会相应地选择合适的工具。
    【解决方案2】:

    svcutil 不支持 xml 属性。如果您需要在架构中使用它们,最好使用 xsd.exe。

    我个人更喜欢使用 svcutil 而不是 xsd,并且我已经学会了如何形成我的模式以输出我想要的类结构,但我也主要使用我从头开始开发的模式,而不是使用预定义的那些。

    【讨论】:

      猜你喜欢
      • 2015-11-27
      • 2015-12-05
      • 1970-01-01
      • 2016-08-13
      • 1970-01-01
      • 2019-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多