我有一个XML序列化类的复杂图表,我可以(de)序列化到硬盘就好了。但是我如何处理巨大的变化到图模式结构?是否有一些机制来处理XML模式升级?有些类允许我将旧数据迁移到新格式?XML(de)序列化和模式升级
当然我可以使用XmlReader/XmlWriter,遍历每个节点和属性并编写几千行代码将数据转换为新格式,但也许有更好的方法?
我发现Object graph serialization in .NET and code version upgrades,但我不认为当有模式的重大变化所链接的条款适用。
+1谢谢,XSLT看起来很有希望。但根据http://stackoverflow.com/questions/1525299/xpath-and-xslt-2-0-for-net看来XSLT 2.0尚未在.NET中实现。由于XSLT 1.0已经快13年了,我想知道它是否足够强大,可以处理复杂的变化。 – Paya 2012-02-10 14:55:00
@Paja由于这是一次性交易,您不需要.NET实现:使用任何可以从命令行运行的XSLT引擎。为引擎提供你的“脚本”和你的数据,并保存它产生的输出。我使用了[Saxon](http://www.perfectxml.com/SoftDetails.asp?id=193),但它在11年前就已经很长了;自那时起,更新的引擎就被编写出来了,你可能想在选择一个任务之前做一些研究。无可否认,编写XSLT的学习曲线相对较为陡峭,但一旦您完成了初步的工作,您将能够非常快速地编写大量复杂的转换。 – dasblinkenlight 2012-02-10 15:03:23
我正在为最终用户编写一个程序,因此需要随迁移算法一起分发。正因为如此,直接在.NET框架中的实现将非常棒,因为我不喜欢使用额外的大型库来扩展我的设置。 – Paya 2012-02-10 15:10:54