是否可以基于 XSD 方案反序列化 xml 而不是粘贴特殊的结果?

Posted

技术标签:

【中文标题】是否可以基于 XSD 方案反序列化 xml 而不是粘贴特殊的结果?【英文标题】:Is it possible to de-serialize xml based on XSD scheme instead of paste special the results? 【发布时间】:2021-05-17 18:16:41 【问题描述】:

我的目标是实现一个对外部webservice资源的api,响应格式是xml,scheme也是已知的。

例如这是外部资源api:

https://MyProduct.MyDomain.com/webservice/rest/1.0/MyMethod/

以及外部资源api的xml方案:

https://MyProduct.MyDomain.com/xsd/1.0/MyMethodDataTypes.xsd

xsd 很长很复杂,所以我想避免手动将它复制到类响应中

所以为了反序列化响应,这就是我所做的:

    我使用 Postman 请求了演示请求。 复制了 xml 响应。 使用 Visual Studio 特殊粘贴,我已将 xml 响应粘贴为一个类。

问题在于,现在类响应仅基于一个特定请求,并且不包含所有响应属性。

所以我的问题是:

是否可以根据厂商的xsd方案创建响应类?

【问题讨论】:

【参考方案1】:

是的,可以在命令提示符下进行。

xsd.exe your.xsd /classes

xsd.exe 通常可以在以下位置找到:

"c:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\xsd.exe"

可以在此处找到许多其他信息:How to generate .NET 4.0 classes from xsd

【讨论】:

以上是关于是否可以基于 XSD 方案反序列化 xml 而不是粘贴特殊的结果?的主要内容,如果未能解决你的问题,请参考以下文章

反序列化然后序列化时保留 Xml Xsd schemaLocation

由于命名空间而无法反序列化 xml

序列化和反序列化用XSD.Exe文件使用XML字符串

C# XML 反序列化为一张表中的 DataSet

XmlSchemaValidationException:这是一个无效的 xsi:type 'Book' 尝试反序列化使用 XSD 架构验证它的 XML 时

使用不同版本名称空间序列化/反序列化 XSD 的方法?