【发布时间】:2017-03-09 09:57:02
【问题描述】:
我有一个 XSD 文件,其架构用于定义 XML 接口,用于从远程客户端将值发送到我的应用程序。现在,为了简单起见,XSD 有 3 个元素。
因此,为了在 C# 中序列化和反序列化,我可以使用工具 xsd.exe 生成 C# 类,并使用这些类针对 XSD 序列化和反序列化 XML。
这可行,但是假设我创建了一个新版本的 XSD,如果为新的远程客户端指定了该元素,则使用新的第四个元素启用一些可用的服务器端功能,但我仍然想支持旧的XSD(不希望也可以更改旧远程客户端的软件),但新 XSD 生成的新类不会与旧 XSD 中的旧 XML 兼容。
我想我可以使用 XDocument 或类似文件直接读取 XML,但我希望具有只接受可以针对其中一个 XSD 进行验证的 XML 的功能(然后根据它的 XSD 版本做出服务器端决定验证反对)。这是由于客户关系问题。
处理此问题的最佳做法是什么?
【问题讨论】:
标签: c# xml xsd iot backwards-compatibility