Xsd.exe或Svcutil.exe将XSD架构转换为类

Jay*_*oot 9 c# xml xsd svcutil.exe

是否建议使用svcutil工具而不是xsd工具?我没有看到这是一个确认的声明,但它确实如此.我对此感到困惑的原因是我使用这两个工具生成了一个类.但是,我使用xsd获得了更好的课程.XSD架构仅由DataContracts组成.

我对svcutil使用了以下命令:

svcutil path-to\xyz.xsd /language:C# /dataContractOnly /importxmltypes /out:path-to\class.cs
Run Code Online (Sandbox Code Playgroud)

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

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

xsd.exe /c path-to\xyz.xsd /out:path-to\class.cs
Run Code Online (Sandbox Code Playgroud)

它产生了比svcutil更好的类.大多数字段都按需转换.

我有理由相信我应该在xsd上使用svcutil吗?

dar*_*yal 5

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