gpt4 book ai didi

java - XSD 架构更改、XSLT 和向后兼容性

转载 作者:太空宇宙 更新时间:2023-11-04 07:37:06 25 4
gpt4 key购买 nike

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

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

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

对于 xsd 的所有 future 版本,我打算将保存的文件输出到 xml,并在解码 xml 之前使用 xslt 转换文件,我认为这会起作用,如本线程 How should I manage different incompatible formts of Xml based documents 中所述。 。但对我处理旧的序列化文件没有帮助 - 有什么想法吗?

谢谢。

最佳答案

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

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

关于java - XSD 架构更改、XSLT 和向后兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16683704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com