XSD架构更改,XSLT和向后兼容性

时间:2013-05-22 04:52:51

标签: java xml xslt xsd schema

这更像是关于使用jaxb和xslt的高级问题,因为我试图更多地了解我需要做什么,以及我需要了解更多信息。

我继承了一个应用程序,该应用程序具有从xsd模式生成的Java类文件(使用jaxb),执行一些操作,然后将其中一个对象写入序列化的“保存文件”。

我目前需要对xsd进行更改,这当然意味着我最初生成的一些类将会更新。但是,我仍然需要能够加载旧的序列化保存文件以实现向后兼容 - 这是否意味着我需要维护当前xsd的副本,以及所有生成的类文件以加载旧的序列化保存文件?如果我必须能够加载旧文件,有没有人建议我这样做?

对于xsd的所有未来版本,我打算将保存的文件输出到xml,并在解组xml之前使用xslt转换文件,我认为这将起作用,如此线程How should I manage different incompatible formts of Xml based documents中所述。虽然没有帮助我使用旧的序列化文件 - 任何想法?

感谢。

1 个答案:

答案 0 :(得分:1)

JAXB和一般数据绑定的主要缺点可能是它使模式演变非常麻烦。 XML是一种人们期望经常更改和扩展模式/数据模型的技术,而在Java中,它是硬编码的,很难改变。在这种情况下,使用面向XML的语言(如XSLT和XQuery)是一个很大的优势。

以序列化Java对象的形式保存持久数据对我来说似乎完全不正常。在转换到新的架构格式之前,请将其全部转换回XML。 XML的全部意义在于数据采用的格式更耐用,并且不依赖于创建它的软件的持续存在。