如何使用带 java 的 smooks 将 json 转换为 EDIFACT
How to convert a json to EDIFACT using smooks with java
我发现的唯一方法是 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 没有模式文档。
如 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>
我发现的唯一方法是 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 没有模式文档。
如 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>