我有一个模式的XSD文件,用于定义从远程客户端向我的应用程序发送值的XML接口。现在,XSD有简单的说3个要素。XSD向后兼容性
因此,为了在C#中对此进行序列化和反序列化,我可以使用工具xsd.exe生成C#类并使用这些类对XSD进行序列化和反序列化。
这可以工作,但可以说我创建了XSD的新版本,并且新的第四个元素用于启用某些服务器端功能,如果为新的远程客户端指定此元素,但我仍然要支持旧的XSD(不想或可以更改旧的远程客户端的软件),但是从新的XSD生成的新类不会与旧的XSD中的旧XML兼容。
我想我可以直接用XDocument或类似的方法读取XML,但是我希望只接受可以针对XSD验证的XML的功能(然后根据哪个XSD版本进行服务器端决策它证实了)。这是由于客户关系问题。
解决此问题的最佳做法是什么?