Smooks EDI作家

在smooks网站上可以看到它支持EDI生成。 但是没有办法为edi writer指定配置(如在模式http://www.milyn.org/xsd/smooks/edi-1.1.xsd中定义的读取器的情况)。

在某些论坛的一些旧帖中,我看到smooks正计划这样一个作家。 是可用的么? 提前致谢。

我设法使用unedifact中使用的相同模式执行此操作:reader

Smooks的-配置:

        

结果是带有元素的HashMap。 现在我有objets我可以进行任何修改,然后我使用文档交换工厂:ex D96AInterchangeFactory

 D96AInterchangeFactory factory = D96AInterchangeFactory.getInstance(); UNEdifactInterchange41 unEdifactInterchange = (UNEdifactInterchange41) map.get("unEdifactInterchange"); StringWriter ediOutStream = new StringWriter(); factory.toUNEdifact(unEdifactInterchange, ediOutStream); 

最后我可以使用toString()来获取我的文档:

 System.out.println("document: " + ediOutStream.toString()); 

根据Smooks网站的说法 :

Smooks可以读写除XML以外的数据格式,包括EDI,CSV,JSON,YAML,Java。 要读取非XML数据,通常需要为该数据类型配置a。 编写数据通常涉及配置一个模板,该模板对由(在XSLT的情况下)生成的事件流进行操作,或者在BeanContext中的bean上进行操作(如FreeMarker的情况)。 您还可以简单地允许Smooks序列化由输入读取器生成的事件流,这将生成XML,通过简单地为输入源配置读取器,为XML转换提供有效的NNN。

所以,是的,有可能用Smooks生成EDI。