Java - 为遗留系统生成 XML

标签 java xml format legacy

我正在开发一个现有系统,该系统使用简单的模板语言为遗留系统生成 XML。这显然不理想,因为很难看到生成的 XML 的结构,存在转义问题,并且很容易生成无效的 XML。

对于任何正常的 XML 格式,我只需要 Xstream 或另一个 Java XML 序列化库,但是这个遗留系统有很多奇怪的规则,例如“如果值小于 10,则应排除该节点”和“节点 x 中的日期取决于节点 y 的值”。还有其他奇怪的规则,但这应该足以理解这个想法。

正如我所说,模板方法远非理想,但它很实用并且有效(需要付出一些努力)。是否有更好的方法来为具有如此数量的格式化规则的遗留系统生成 XML?我曾想过 XSL,但坦率地说,在 XSL 中实现任何数量的逻辑都不是很有吸引力。

最佳答案

基本上,您在序列化期间需要一些自定义逻辑。我猜测内存中的对象结构没有直接镜像到XML结构中?替代方案:

  1. 使用 StAX 并在对象内分发读写方法。
  2. 使用 JAXB 并插入自定义序列化。

甚至不要考虑用 java 以外的任何东西来表达你的自定义逻辑,即一些“ super ”框架。

关于Java - 为遗留系统生成 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9353616/

相关文章:

java - Jasper 报告未找到 HtmlComponent 类

java - 为什么Java中的许多Collection类都扩展抽象类并实现接口(interface)?

xml - 在 XSLT 中查找两个日期时间之间的差异

php - 如何根据值删除特定的 XML 子节点

android - R 无法解析为变量,XML 问题?

python - 在不使用库的情况下以格式打印表格,SQLite 3 python

javascript - 在 JSON 代码中更改时间格式(对于 AmCharts)

java - Java中无法解释的括号

java - 关于在 TableXYDataset 中添加系列

mysql - SQL日期格式转换? [dd.mm.yy 到 YYYY-MM-DD]