是否可以基于 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
XmlSchemaValidationException:这是一个无效的 xsi:type 'Book' 尝试反序列化使用 XSD 架构验证它的 XML 时