Smooks EDI作家

时间:2012-10-09 06:55:56

标签: java edi smooks

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

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

2 个答案:

答案 0 :(得分:4)

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

的Smooks-配置:

<?xml version="1.0"?>
<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
                      xmlns:core="http://www.milyn.org/xsd/smooks/smooks-core-1.4.xsd">
    <import file="/org/milyn/edi/unedifact/d96a/message-bindingconfig.xml" />
    <import file="/org/milyn/smooks/edi/unedifact/model/r41/bindings/unedifact-interchange.xml" />
    <core:exports>
        <core:result type="org.milyn.payload.JavaResult"/>
    </core:exports>
</smooks-resource-list>

结果是带有元素的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());

答案 1 :(得分:0)

根据Smooks website

  

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

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