Java - 为遗留系统生成XML

时间:2012-02-19 21:52:03

标签: java xml format legacy

我正在研究一个使用简单模板语言为遗留系统生成XML的现有系统。这显然不理想,因为很难看到生成的XML的结构,它遇到了逃避问题,并且很容易生成无效的XML。

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

正如我所说,模板方法远非理想,但它是务实的并且有效(通过一些努力)。有没有更好的方法来处理使用这种格式规则为遗留系统生成XML?我已经想到了XSL,但是在XSL中实现任何数量的逻辑都不是很诱人。

3 个答案:

答案 0 :(得分:2)

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

  1. 使用StAX并在对象中分发读写方法。
  2. 使用JAXB并插入自定义序列化。
  3. 甚至不要考虑用java之外的任何东西来表达你的自定义逻辑,即一些“超级”框架。

答案 1 :(得分:1)

我不确定,如果这是您正在寻找的,但也许像JAXB一样尝试XML绑定......

换句话说:您可以从xsd-Schema生成一个类库,然后在java代码中构建对象图,然后在一次调用xml中对其进行序列化。

答案 2 :(得分:0)

我可以使用简单的xml和一些转换器:

http://simple.sourceforge.net/download/stream/doc/tutorial/tutorial.php