我有一个 XML 休息端点,我正在使用 xsd 将其转换为对象。xml 的结构随着时间的推移而变化,这意味着我已经重写了我的 xsd 文件以匹配新更新的 xml 的结构。有没有一种通用的方法可以将 xml 的结构写入 java 类?,即使我不知道 xml 的结构,直到我阅读了 xml 的内容。
一种可能的解决方案是使用包含许多字段的高级 xml 数据结构,其中一些可能会或可能不会被使用。但这似乎是一个不好的做法。
我有一个 XML 休息端点,我正在使用 xsd 将其转换为对象。xml 的结构随着时间的推移而变化,这意味着我已经重写了我的 xsd 文件以匹配新更新的 xml 的结构。有没有一种通用的方法可以将 xml 的结构写入 java 类?,即使我不知道 xml 的结构,直到我阅读了 xml 的内容。
一种可能的解决方案是使用包含许多字段的高级 xml 数据结构,其中一些可能会或可能不会被使用。但这似乎是一个不好的做法。
表示 XML 文档的最通用模型是 DOM,它实际上可以从任何 XML 文档创建。使用 DOM,您可以创建不依赖于您正在使用的 XML 文档模式的通用应用程序。然而,从 JAXB(或类似的 XML 到对象的映射)“向下”到 DOM 需要大量额外的工作。问题是你真的需要这个吗?你打算如何处理这些数据。
例如,如果您正在创建通用 XML 编辑器或查看器,这种方法看起来很合理,因为编辑器不“知道”任何关于它所使用的数据的信息。
但是,如果您正在创建“了解”数据的应用程序,则此方法可能不适用。在这种情况下,您无论如何都必须知道如何处理特定的 XML 标记,因此无论如何您都需要依赖于 XML 文档的模型。在这种情况下,您可能必须及时了解 XML 模式的变化,并根据 XML 模式的版本创建适当的 POJO。