如何在 Java 中处理不断发展的 XML 模式?我有一个用例,我必须在 Java 应用程序中支持一组旧的和不断发展的 XML 模式(即支持 Foo v1、v2、v3、v4、v5)。
我的用例包括 - 读取针对不同版本的 Foo XML 模式编写的所有 Foo XML 内容 - 合并可能以不同版本编写的 Foo XML 内容与使用不同版本的 OVAL XML 模式(即将 Foo v1 与 Foo v5 合并)。
Foo XML 模式相当复杂,并且存在已知的向后兼容性问题,因此 Foo v1 XML 内容可能无法使用 Foo v3 XML 模式验证 XML 模式。
我想到了 2 种方法 1) 使用诸如 JAXB 之类的 Java XML 数据绑定,并为每个版本的 XML 模式生成一组绑定。以 Foo XML 模式为例,我将为 Foo XML 模式 v1 到 v5 生成 5 组绑定。挑战在于如何将 Foo XML 内容的版本与 XML 内容的另一个版本合并。
2) 创建一组 Java 数据模型并使用 SAX、DOM、JDOM 手动解析它,并尝试解决我可能遇到的所有向后兼容性问题。现在的挑战是我必须在没有 JAXB 帮助的情况下自己解析 XML。
我想就处理不断发展的 XML 模式的最佳方法获得一些建议。Java XML 数据绑定是正确的前进路径,还是创建我自己的 Java 数据模型并手动解析它?