【问题标题】:How to convert a json to EDIFACT using smooks with java如何使用带有 java 的 smooks 将 json 转换为 EDIFACT
【发布时间】:2021-12-05 19:32:17
【问题描述】:

我发现的唯一方法是 edi 不是 edifact,但是当我用 edifact 更改 smooks-config.xml 时

<smooks-resource-list
    xmlns="https://www.smooks.org/xsd/smooks-2.0.xsd"
    xmlns:edifact="https://www.smooks.org/xsd/smooks/edifact-2.0.xsd">

<edifact:unparser   unparseOnElement="/Order" schemaURI="/edi-to-xml-mapping.dfdl.xsd" segmentTerminator="%NL;" compositeDataElementSeparator="^"/>

<edifact:parser schemaURI="/edi-to-xml-order-mapping.dfdl.xsd" segmentTerminator="%NL;" dataElementSeparator="*"
                compositeDataElementSeparator="^"/>

我总是收到一个错误:架构定义错误:位置 /EDIFACT-Interchange.dfdl.xsd 没有架构文档。

【问题讨论】:

    标签: java smooks


    【解决方案1】:

    Smooks EDI cartridge docs 中所述,应导入EDIFACT-Messages.dfdl.xsd DFDL 架构。例如:

    <?xml version="1.0"?>
    <smooks-resource-list xmlns="https://www.smooks.org/xsd/smooks-2.0.xsd"
                          xmlns:edifact="https://www.smooks.org/xsd/smooks/edifact-2.0.xsd">
    
        <edifact:parser schemaURI="/d03b/EDIFACT-Messages.dfdl.xsd"/>
    
        <edifact:unparser schemaURI="/d03b/EDIFACT-Messages.dfdl.xsd" unparseOnNode="/Interchange"/>
    
    </smooks-resource-list>
    

    确保相应的模式包位于您的 Java 类路径中。上述示例的schema pack Maven dependency 声明为:

    <dependency>
      <groupId>org.smooks.cartridges.edi</groupId>
      <artifactId>edifact-schemas</artifactId>
      <version>2.0.0-M3</version>
      <classifier>d03b</classifier>
    </dependency>
    

    【讨论】:

      【解决方案2】:

      尝试edigenerator.com,接收任意数量的#X12 或#EDIFACT 文件。将它们翻译成您喜欢的格式,例如 JSON、XML、CSV 等,然后点击几下即可推送到您的网络挂钩。

      它比你目前的方法更快。

      【讨论】:

      • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
      猜你喜欢
      • 2018-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-10
      • 1970-01-01
      • 2021-07-11
      • 2014-11-18
      • 1970-01-01
      相关资源
      最近更新 更多