Last active
March 24, 2021 08:43
-
-
Save cjmamo/a65e33b1ee62984cb507b77baea75100 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<SegGrp-25> | |
<LIN> | |
<E1082>${record.item[0]}</E1082> | |
<E1229></E1229> | |
<C212> | |
<E7140>${record.item[1]}</E7140> | |
<E7143>SRS</E7143> | |
</C212> | |
</LIN> | |
<QTY> | |
<C186> | |
<E6063>21</E6063> | |
<E6060>${record.item[2]}</E6060> | |
<E6411>${record.item[4]}</E6411> | |
</C186> | |
</QTY> | |
<SegGrp-28> | |
<PRI> | |
<C509> | |
<E5125>AAA</E5125> | |
<E5118>${record.item[3]}</E5118> | |
</C509> | |
</PRI> | |
</SegGrp-28> | |
</SegGrp-25> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
... | |
... | |
public class CrmVisitor implements AfterVisitor { | |
private static final Logger LOGGER = LoggerFactory.getLogger(CrmVisitor.class); | |
private AsyncHttpClient asyncHttpClient; | |
@PostConstruct | |
public void postConstruct() { | |
this.asyncHttpClient = asyncHttpClient(); | |
} | |
@Override | |
public void visitAfter(Element element, ExecutionContext executionContext) { | |
Request request = post("https://crm.example/api/orders").setHeader("Content-Type", "application/xml").setBody(XmlUtil.serialize(element)).build(); | |
asyncHttpClient.executeRequest(request, new AsyncCompletionHandler<Response>() { | |
@Override | |
public Response onCompleted(Response response) { | |
if (response.getStatusCode() != 200) { | |
LOGGER.error("Error => " + response.getResponseBody(StandardCharsets.UTF_8)); | |
} | |
return response; | |
} | |
}); | |
} | |
... | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" | |
xmlns:dfdl="http://www.ogf.org/dfdl/dfdl-1.0/" xmlns:ex="http://example.com" | |
targetNamespace="http://example.com" elementFormDefault="unqualified"> | |
<xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd" /> | |
<xs:annotation> | |
<xs:appinfo source="http://www.ogf.org/dfdl/"> | |
<dfdl:defineVariable name="Delimiter" type="xs:string" external="true" defaultValue=","/> | |
<dfdl:format ref="ex:GeneralFormatPortable" separator="" initiator="" | |
terminator="" textTrimKind="none" initiatedContent="no" ignoreCase="no" | |
separatorPosition="infix" occursCountKind="implicit" | |
emptyValueDelimiterPolicy="both" representation="text" textNumberRep="standard" | |
lengthKind="delimited" encoding="ASCII" encodingErrorPolicy="replace" /> | |
</xs:appinfo> | |
</xs:annotation> | |
<xs:element name="file"> | |
<xs:complexType> | |
<xs:sequence dfdl:separator="%NL;" dfdl:separatorPosition="postfix"> | |
<xs:element name="header" minOccurs="0" maxOccurs="1" | |
dfdl:occursCountKind="implicit"> | |
<xs:complexType> | |
<xs:sequence dfdl:separator="{$ex:Delimiter}"> | |
<xs:element name="title" type="xs:string" maxOccurs="unbounded" /> | |
</xs:sequence> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="record" maxOccurs="unbounded"> | |
<xs:complexType> | |
<xs:sequence dfdl:separator="{$ex:Delimiter}"> | |
<xs:element name="item" type="xs:string" maxOccurs="unbounded"/> | |
</xs:sequence> | |
</xs:complexType> | |
</xs:element> | |
</xs:sequence> | |
</xs:complexType> | |
</xs:element> | |
</xs:schema> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<ex:file xmlns:ex="http://example.com"> | |
<header> | |
<title>LINE_NUMBER</title> | |
<title>UPC_NUMBER</title> | |
<title>QUANTITY</title> | |
<title>PRICE</title> | |
<title>UOM</title> | |
<title>PO_NUMBER</title> | |
<title>PO_DATE</title> | |
<title>CUSTOMER_NAME</title> | |
<title>CUSTOMER_NUMBER</title> | |
<title>ADDRESS</title> | |
<title>CITY</title> | |
<title>STATE</title> | |
<title>POSTAL_CODE</title> | |
</header> | |
<record> | |
<item>1</item> | |
<item>4000862141404</item> | |
<item>48</item> | |
<item>5</item> | |
<item>PCE</item> | |
<item>128576</item> | |
<item>20020830</item> | |
<item>KION GROUP AG</item> | |
<item>123456</item> | |
<item>Abraham-Lincoln-Str</item> | |
<item>Wiesbaden</item> | |
<item>65189</item> | |
</record> | |
... | |
</ex:file> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<D96A:Interchange xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
xmlns:D96A="http://www.ibm.com/dfdl/edi/un/edifact/D96A" | |
xmlns:srv="http://www.ibm.com/dfdl/edi/un/service/4.1"> | |
<UNB> | |
<S001> | |
<E0001>UNOB</E0001> | |
<E0002>1</E0002> | |
</S001> | |
<S002> | |
<E0004>SENDER1</E0004> | |
<E0007>14</E0007> | |
<E0008>ZZUK</E0008> | |
</S002> | |
<S003> | |
<E0010>RECEIVER1</E0010> | |
<E0007>1</E0007> | |
<E0014>ZZUK</E0014> | |
</S003> | |
<S004> | |
<E0017>071101</E0017> | |
<E0019>1701</E0019> | |
</S004> | |
<E0020>131</E0020> | |
<E0026>ORDERS</E0026> | |
<E0031>1</E0031> | |
<E0035>1</E0035> | |
</UNB> | |
<D96A:Message> | |
<UNH> | |
<E0062>000000101</E0062> | |
<S009> | |
<E0065>ORDERS</E0065> | |
<E0052>D</E0052> | |
<E0054>96A</E0054> | |
<E0051>UN</E0051> | |
</S009> | |
</UNH> | |
<D96A:ORDERS> | |
<BGM> | |
<C002> | |
<E1001>220</E1001> | |
</C002> | |
<E1004>128576</E1004> | |
<E1225>9</E1225> | |
</BGM> | |
<DTM> | |
<C507> | |
<E2005>137</E2005> | |
<E2380>20020830</E2380> | |
<E2379>102</E2379> | |
</C507> | |
</DTM> | |
<SegGrp-2> | |
<NAD> | |
<E3035>BY</E3035> | |
<C082> | |
<E3039>123456</E3039> | |
<E3055>9</E3055> | |
</C082> | |
<C080> | |
<E3036>Therese House</E3036> | |
</C080> | |
<C059> | |
<E3042>29-30 Glasshouse Yard</E3042> | |
</C059> | |
<E3164>London</E3164> | |
<E3251>EC1A 4JN</E3251> | |
<E3207>UK</E3207> | |
</NAD> | |
</SegGrp-2> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
LINE_NUMBER | UPC_NUMBER | QUANTITY | PRICE | UOM | PO_NUMBER | PO_DATE | CUSTOMER_NAME | CUSTOMER_NUMBER | ADDRESS | CITY | STATE | POSTAL_CODE | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 4000862141404 | 48 | 5 | PCE | 128576 | 20020830 | KION GROUP AG | 123456 | Abraham-Lincoln-Str | Wiesbaden | 65189 | ||
2 | 4000862141405 | 2 | 55 | KGM | 128577 | 20020830 | Maria Theresa | 123457 | Maria-Theresien-Strasse | Innsbruck | AT6020 | ||
3 | 4000862141406 | 17 | 15 | PCE | 128578 | 20020830 | Gianni l-Pastizz | 123458 | Republic Street | Valletta | VLT1117 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
... | |
... | |
public class InventoryVisitor implements AfterVisitor { | |
private static final XmlMapper XML_MAPPER = new XmlMapper(); | |
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); | |
@Override | |
public void visitAfter(Element element, ExecutionContext executionContext) { | |
try { | |
JsonNode jsonNode = XML_MAPPER.readTree(XmlUtil.serialize(element)); | |
Stream.out(executionContext).write(OBJECT_MAPPER.writeValueAsString(jsonNode)); | |
} catch (IOException e) { | |
throw new SmooksException(e); | |
} | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<purchaseOrder> | |
<id>${record.item[6]}</id> | |
<productId>${record.item[2]}</productId> | |
<quantity>${record.item[3]}</quantity> | |
<customerName>${record.item[9]}</customerName> | |
<address>${record.item[11]}</address> | |
<date>${record.item[7]}</date> | |
</purchaseOrder> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<smooks-resource-list xmlns="https://www.smooks.org/xsd/smooks-2.0.xsd" | |
xmlns:core="https://www.smooks.org/xsd/smooks/smooks-core-1.6.xsd"> | |
<core:smooks filterSourceOn="..."> | |
<core:action> | |
... | |
</core:action> | |
<core:config> | |
<smooks-resource-list> | |
... | |
</smooks-resource-list> | |
</core:config> | |
</core:smooks> | |
</smooks-resource-list> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<smooks-resource-list xmlns="https://www.smooks.org/xsd/smooks-2.0.xsd" | |
xmlns:core="https://www.smooks.org/xsd/smooks/smooks-core-1.6.xsd" | |
xmlns:ftl="https://www.smooks.org/xsd/smooks/freemarker-2.0.xsd" | |
xmlns:edifact="https://www.smooks.org/xsd/smooks/edifact-2.0.xsd" | |
xmlns:dfdl="https://www.smooks.org/xsd/smooks/dfdl-1.0.xsd"> | |
<dfdl:parser schemaURI="/csv.dfdl.xsd"/> | |
... | |
... | |
<core:smooks filterSourceOn="#document"> | |
<core:action> | |
<core:inline> | |
<core:replace/> | |
</core:inline> | |
</core:action> | |
<core:config> | |
<smooks-resource-list> | |
<core:delegate-reader> | |
<ftl:freemarker applyOnElement="#document" applyBefore="true"> | |
<ftl:template>header.xml.ftl</ftl:template> | |
</ftl:freemarker> | |
<core:smooks filterSourceOn="record" maxNodeDepth="0"> | |
<core:config> | |
<smooks-resource-list> | |
<ftl:freemarker applyOnElement="#document"> | |
<ftl:template>item.xml.ftl</ftl:template> | |
</ftl:freemarker> | |
</smooks-resource-list> | |
</core:config> | |
</core:smooks> | |
<ftl:freemarker applyOnElement="#document"> | |
<ftl:template>footer.xml.ftl</ftl:template> | |
</ftl:freemarker> | |
</core:delegate-reader> | |
<edifact:unparser schemaURI="/d96a/EDIFACT-Messages.dfdl.xsd" unparseOnElement="*"> | |
<edifact:messageTypes> | |
<edifact:messageType>ORDERS</edifact:messageType> | |
</edifact:messageTypes> | |
</edifact:unparser> | |
</smooks-resource-list> | |
</core:config> | |
</core:smooks> | |
</smooks-resource-list> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<smooks-resource-list xmlns="https://www.smooks.org/xsd/smooks-2.0.xsd" | |
xmlns:core="https://www.smooks.org/xsd/smooks/smooks-core-1.6.xsd" | |
xmlns:dfdl="https://www.smooks.org/xsd/smooks/dfdl-1.0.xsd"> | |
<dfdl:parser schemaURI="/csv.dfdl.xsd"/> | |
</smooks-resource-list> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<smooks-resource-list xmlns="https://www.smooks.org/xsd/smooks-2.0.xsd" | |
xmlns:core="https://www.smooks.org/xsd/smooks/smooks-core-1.6.xsd" | |
xmlns:dfdl="https://www.smooks.org/xsd/smooks/dfdl-1.0.xsd"> | |
<dfdl:parser schemaURI="/csv.dfdl.xsd"/> | |
<core:smooks filterSourceOn="record" maxNodeDepth="0"> | |
<core:action> | |
<core:outputTo outputStreamResource="inventoryOutputStream"/> | |
</core:action> | |
<core:config> | |
<smooks-resource-list> | |
<resource-config selector="#document"> | |
<resource>org.smooks.examples.pipeline.InventoryVisitor</resource> | |
</resource-config> | |
</smooks-resource-list> | |
</core:config> | |
</core:smooks> | |
... | |
</smooks-resource-list> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<smooks-resource-list xmlns="https://www.smooks.org/xsd/smooks-2.0.xsd" | |
xmlns:core="https://www.smooks.org/xsd/smooks/smooks-core-1.6.xsd" | |
xmlns:ftl="https://www.smooks.org/xsd/smooks/freemarker-2.0.xsd" | |
xmlns:dfdl="https://www.smooks.org/xsd/smooks/dfdl-1.0.xsd"> | |
<dfdl:parser schemaURI="/csv.dfdl.xsd"/> | |
... | |
<core:smooks filterSourceOn="record" maxNodeDepth="0"> | |
<core:config> | |
<smooks-resource-list> | |
<core:delegate-reader> | |
<ftl:freemarker applyOnElement="#document"> | |
<ftl:template>purchaseOrder.xml.ftl</ftl:template> | |
</ftl:freemarker> | |
</core:delegate-reader> | |
<resource-config selector="purchaseOrder"> | |
<resource>org.smooks.examples.pipeline.CrmVisitor</resource> | |
</resource-config> | |
</smooks-resource-list> | |
</core:config> | |
</core:smooks> | |
</smooks-resource-list> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<smooks-resource-list xmlns="https://www.smooks.org/xsd/smooks-2.0.xsd" | |
xmlns:core="https://www.smooks.org/xsd/smooks/smooks-core-1.6.xsd" | |
xmlns:ftl="https://www.smooks.org/xsd/smooks/freemarker-2.0.xsd" | |
xmlns:edifact="https://www.smooks.org/xsd/smooks/edifact-2.0.xsd" | |
xmlns:dfdl="https://www.smooks.org/xsd/smooks/dfdl-1.0.xsd"> | |
<dfdl:parser schemaURI="/csv.dfdl.xsd"/> | |
... | |
... | |
<core:smooks filterSourceOn="#document"> | |
<core:action> | |
<core:inline> | |
<core:replace/> | |
</core:inline> | |
</core:action> | |
... | |
</core:smooks> | |
</smooks-resource-list> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<smooks-resource-list xmlns="https://www.smooks.org/xsd/smooks-2.0.xsd" | |
xmlns:core="https://www.smooks.org/xsd/smooks/smooks-core-1.6.xsd" | |
xmlns:ftl="https://www.smooks.org/xsd/smooks/freemarker-2.0.xsd" | |
xmlns:edifact="https://www.smooks.org/xsd/smooks/edifact-2.0.xsd" | |
xmlns:dfdl="https://www.smooks.org/xsd/smooks/dfdl-1.0.xsd"> | |
<dfdl:parser schemaURI="/csv.dfdl.xsd"/> | |
... | |
... | |
<core:smooks filterSourceOn="#document"> | |
<core:action> | |
<core:inline> | |
<core:replace/> | |
</core:inline> | |
</core:action> | |
<core:config> | |
<smooks-resource-list> | |
<core:delegate-reader> | |
<ftl:freemarker applyOnElement="#document" applyBefore="true"> | |
<ftl:template>header.xml.ftl</ftl:template> | |
</ftl:freemarker> | |
<core:smooks filterSourceOn="record" maxNodeDepth="0"> | |
<core:config> | |
<smooks-resource-list> | |
<ftl:freemarker applyOnElement="#document"> | |
<ftl:template>body.xml.ftl</ftl:template> | |
</ftl:freemarker> | |
</smooks-resource-list> | |
</core:config> | |
</core:smooks> | |
<ftl:freemarker applyOnElement="#document"> | |
<ftl:template>footer.xml.ftl</ftl:template> | |
</ftl:freemarker> | |
</core:delegate-reader> | |
... | |
</smooks-resource-list> | |
</core:config> | |
</core:smooks> | |
</smooks-resource-list> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<core:delegate-reader> | |
<ftl:freemarker applyOnElement="#document" applyBefore="true"> | |
<ftl:template>header.xml.ftl</ftl:template> | |
</ftl:freemarker> | |
... | |
</core:delegate-reader> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<core:delegate-reader> | |
... | |
<core:smooks filterSourceOn="record" maxNodeDepth="0"> | |
<core:config> | |
<smooks-resource-list> | |
<ftl:freemarker applyOnElement="#document"> | |
<ftl:template>body.xml.ftl</ftl:template> | |
</ftl:freemarker> | |
</smooks-resource-list> | |
</core:config> | |
</core:smooks> | |
... | |
</core:delegate-reader> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<core:delegate-reader> | |
... | |
<ftl:freemarker applyOnElement="#document"> | |
<ftl:template>footer.xml.ftl</ftl:template> | |
</ftl:freemarker> | |
</core:delegate-reader> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<smooks-resource-list xmlns="https://www.smooks.org/xsd/smooks-2.0.xsd" | |
xmlns:core="https://www.smooks.org/xsd/smooks/smooks-core-1.6.xsd" | |
xmlns:ftl="https://www.smooks.org/xsd/smooks/freemarker-2.0.xsd" | |
xmlns:edifact="https://www.smooks.org/xsd/smooks/edifact-2.0.xsd" | |
xmlns:dfdl="https://www.smooks.org/xsd/smooks/dfdl-1.0.xsd"> | |
<dfdl:parser schemaURI="/csv.dfdl.xsd"/> | |
<core:smooks filterSourceOn="record" maxNodeDepth="0"> | |
<core:action> | |
<core:outputTo outputStreamResource="inventoryOutputStream"/> | |
</core:action> | |
<core:config> | |
<smooks-resource-list> | |
<resource-config selector="#document"> | |
<resource>org.smooks.examples.pipeline.InventoryVisitor</resource> | |
</resource-config> | |
</smooks-resource-list> | |
</core:config> | |
</core:smooks> | |
<core:smooks filterSourceOn="record" maxNodeDepth="0"> | |
<core:config> | |
<smooks-resource-list> | |
<core:delegate-reader> | |
<ftl:freemarker applyOnElement="#document"> | |
<ftl:template>purchaseOrder.xml.ftl</ftl:template> | |
</ftl:freemarker> | |
</core:delegate-reader> | |
<resource-config selector="purchaseOrder"> | |
<resource>org.smooks.examples.pipeline.CrmVisitor</resource> | |
</resource-config> | |
</smooks-resource-list> | |
</core:config> | |
</core:smooks> | |
<core:smooks filterSourceOn="#document"> | |
<core:action> | |
<core:inline> | |
<core:replace/> | |
</core:inline> | |
</core:action> | |
<core:config> | |
<smooks-resource-list> | |
<core:delegate-reader> | |
<ftl:freemarker applyOnElement="#document" applyBefore="true"> | |
<ftl:template>header.xml.ftl</ftl:template> | |
</ftl:freemarker> | |
<core:smooks filterSourceOn="record" maxNodeDepth="0"> | |
<core:config> | |
<smooks-resource-list> | |
<ftl:freemarker applyOnElement="#document"> | |
<ftl:template>body.xml.ftl</ftl:template> | |
</ftl:freemarker> | |
</smooks-resource-list> | |
</core:config> | |
</core:smooks> | |
<ftl:freemarker applyOnElement="#document"> | |
<ftl:template>footer.xml.ftl</ftl:template> | |
</ftl:freemarker> | |
</core:delegate-reader> | |
<edifact:unparser schemaURI="/d96a/EDIFACT-Messages.dfdl.xsd" unparseOnElement="*"> | |
<edifact:messageTypes> | |
<edifact:messageType>ORDERS</edifact:messageType> | |
</edifact:messageTypes> | |
</edifact:unparser> | |
</smooks-resource-list> | |
</core:config> | |
</core:smooks> | |
</smooks-resource-list> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment