我正在开发一个现有系统,该系统使用简单的模板语言为遗留系统生成 XML。这显然不理想,因为很难看到生成的 XML 的结构,存在转义问题,并且很容易生成无效的 XML。
对于任何正常的 XML 格式,我只需要 Xstream 或另一个 Java XML 序列化库,但是这个遗留系统有很多奇怪的规则,例如“如果值小于 10,则应排除该节点”和“节点 x 中的日期取决于节点 y 的值”。还有其他奇怪的规则,但这应该足以理解这个想法。
正如我所说,模板方法远非理想,但它很实用并且有效(需要付出一些努力)。是否有更好的方法来为具有如此数量的格式化规则的遗留系统生成 XML?我曾想过 XSL,但坦率地说,在 XSL 中实现任何数量的逻辑都不是很有吸引力。
最佳答案
基本上,您在序列化期间需要一些自定义逻辑。我猜测内存中的对象结构没有直接镜像到XML结构中?替代方案:
- 使用 StAX 并在对象内分发读写方法。
- 使用 JAXB 并插入自定义序列化。
甚至不要考虑用 java 以外的任何东西来表达你的自定义逻辑,即一些“ super ”框架。
关于Java - 为遗留系统生成 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9353616/