Subject:XML back to EDI ? how? Author:toadie d. Date:20 Dec 2005 07:29 PM
So I watched the video on how to go from EDI to XML and then back to EDI. It looks like I have to write an XSLT ? Am I correct in that respect?
Using the adapter to go from EDI to the 'canonical' form of Stylus EDI XML , i would hope that i can also go back the otherway without having to write a custom XSLT. Or am i missing the boat altogether?
Subject:XML back to EDI ? how? Author:Minollo I. Date:20 Dec 2005 08:24 PM
The video shows how you can dynamically create an EDI message using XSLT or XQuery. But if you just want to convert an XML document consistent with the EDI schemas supported by Stylus Studio into its original EDI format, you can just apply the same converter in the other direction.
In Stylus Studio you'll do a save-as checking the "Convert from XML using adapter" check box. From the API you can just use the same API accessing the adapter in the other direction. The demo.java sample in Examples\Adapters does that with some other converter; the same logic applies to the EDI converter.
Subject:XML back to EDI ? how? Author:Tony Lavinio Date:20 Dec 2005 11:13 PM
The page on our website http://www.stylusstudio.com/edi/
includes many links, including for XML to both EDIFACT
and X12. The pages those links take you to will include
step-by-step examples and instructions.
Subject:XML back to EDI ? how? Author:toadie d. Date:21 Dec 2005 01:39 AM
this is the error that I am getting
test 4 succeeded: ./831.x12-> OutputFile: ./831.xml
java.io.IOException: Unable to determine type of EDI file
What I did was modified the demo.java to read in a file called 831.x12 as a stream and feed it to the adapter to create 831.xml. THe xml looks good. I even verified that the xml is good by following Minollo's instruction to convert the XML back to X12
Using the adapter string generated from the studio, i went back to the java adapter to do the same conversion. That's when I am getting the error.
Subject:XML back to EDI ? how? Author:Minollo I. Date:21 Dec 2005 02:54 PM
the error you get is caused by the fact that you are invoking the adapter in the EDI->XML direction even when trying to convert XML back into EDI.
This code uses the right direction:
FileInputStream fis = new FileInputStream( inputFile );
File out_1 = new File( ouputFileName);
OutputStream fos = new FileOutputStream(out_1);
StylusFile converter = sff.createStylusFile("adapter:EDI:newline=crlf:val=yes:decode=yes:field=yes:len=no:seg=yes:tbl=yes:typ=yes:opt=no:eol=yes?", fos);
OutputStream os = converter.getOutputStream();
StylusFile.getInputStream() and StylusFile.getOutputStream are always streams for the *XML* documents; the stream specified in StylusFile.createStylusFile is always the *non-XML* document. Keeping those rules in mind you can control the direction of the conversion.
That said, I'm seeing an empty output using BL501f, which might be a problem in the current build; we are investigating further.
In the meanwhile, the following approach will work:
File in_2 = new File("831.xml");
StylusFile out_2 = sff.createStylusFile("adapter:EDI:newline=crlf:val=yes:decode=yes:field=yes:len=no:seg=yes:tbl=yes:typ=yes:opt=no:eol=yes?file:reconverted.831.x12");
InputStream is = new FileInputStream(in_2);
OutputStream os = out_2.getOutputStream();