这是使用我不完全理解的第三方对象的序列化XML的合理方法吗?

时间:2011-05-24 15:09:40

标签: xml xsd xml-serialization

我有来自第三方应用程序的序列化实例数据,它是XML格式,我想将它加载到一个对象中并使用它。

我从XML生成了一个XSD,效果很好。 XML表示用户填写的表单的状态。我第一次生成XSD时,我没有填写整个表单 - 表单实例是序列化的。我回去填写整个表单,以便我需要的所有控件都存在,并创建一个新的XSD,并使用XSD2Code生成一个新类。

问题是,如果我不知道表单本身的所有序列化是什么样的 - 我的方法从一开始就有缺陷,还是我能做的最好?

在我生成的类上需要的控件上粘贴接口是一种减轻底层实例数据特征变化的好方法吗?

我现在知道,我至少需要能够处理表格中的某些事情而且他们都在场。如果将来会有更多的东西添加到表单中,我可以重新生成XSD并构建已经存在的实现。

这是一个合理的方法,因为我将创建一个部分类,它在生成的类上指定它们至少实现我需要的东西吗?

有什么可以预见的会挑战我编写的代码在实例类中使用这些接口类型吗?

有没有办法让我的反序列化方法,如果它没有预期的东西不会破坏?

1 个答案:

答案 0 :(得分:1)

无知通常不是最佳做法。

如果他们向您发送XML,那么他们不知道它的形状是什么?他们不是有XSD吗?

至少,他们不能为您提供有关格式的文件吗?

在任何情况下,您都需要一个XSD来表示他们实际发送给您的内容,因此您可以生成与您实际收到的内容相匹配的类。您甚至可能会发现他们发送给您的XML结构与任何可能的类集都不匹配,并且您需要“手动”反序列化。