smooks edi到xml的多映射模型

时间:2015-08-17 07:58:56

标签: xml java-ee-6 smooks

当我只添加一个mappingmodel然后它工作完美但实际上我想添加多个映射模型,因为我已添加到以下代码。有人可以帮助我怎么做。

的Smooks-config.xml中

<?xml version="1.0"?>
<smooks-resource-list
    xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
    xmlns:edi="http://www.milyn.org/xsd/smooks/edi-1.1.xsd">

    <edi:reader mappingModel="/example/edi-to-xml-author-full-mapping.xml" />
    <edi:reader mappingModel="/example/edi-to-xml-author-full-map.xml" /

</smooks-resource-list>

Test.java

  protected static String runSmooksTransform() throws IOException, SAXException, SmooksException {
        Locale.setDefault(new Locale("en", "IE"));


    Smooks smooks = new Smooks("smooks-config.xml");
    try {

        ExecutionContext executionContext = smooks.createExecutionContext();

        StringResult result = new StringResult();
        smooks.filterSource(executionContext, new StreamSource(new ByteArrayInputStream(messageIn)), result);

        return result.getResult();
    } finally {
        smooks.close();
    }
}

1 个答案:

答案 0 :(得分:2)

我担心这不起作用。 smooks配置中只能有一个顶级EDI阅读器。

如果您想模块化配置,那么您可以这样做并在EDI映射模型中使用导入。

如果您需要处理不同的EDI消息,则需要使用具有不同EDI阅读器映射模型配置的不同smooks实例。 UNEDIFACT阅读器确实支持不同的EDI消息作为“交换”的一部分,但这是一个不同的读者,并且特定于UNEDIFACT协议。