XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
toadie d.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?

Thanks in advance
Toadie.

Postnext
Minollo I.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.

Hope this helps,
Minollo

Postnext
Tony LavinioSubject: 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.

Postnext
toadie d.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
at com.stylusstudio.adapter.edi.SegmentReader.readSegment(SegmentReader.java:178)
at com.stylusstudio.adapter.edi.EDI.toXML(EDI.java:240)
at com.stylusstudio.adapter.fs.AdapterRunner.run(AdapterRunner.java:65)
at java.lang.Thread.run(Thread.java:534)


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.

Attached are the sample files and code


Unknowndemo.java


Unknown831.x12


Unknown831.xml

Postnext
Minollo I.Subject: XML back to EDI ? how?
Author: Minollo I.
Date: 21 Dec 2005 02:54 PM
Toadie,
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();
copy(fis, os);

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();
copy(is, os);
out_2.close();

Hope this helps,
Minollo

Postnext
toadie d.Subject: XML back to EDI ? how?
Author: toadie d.
Date: 21 Dec 2005 04:04 PM
ya rock again!

Thanks for the clarification. I guess i wasn't paying attention to the Adapter string when using it via the studio.

Postnext
Sean MacLellanSubject: XML back to EDI ? how?
Author: Sean MacLellan
Date: 30 Dec 2005 06:41 PM
<snip>

>That said, I'm seeing an empty
>output using BL501f, which
>might be a problem in the
>current build; we are
>investigating further.
>
>Hope this helps,
>Minollo

Has your investigation found anything?
If not, could you reply to this topic when you do?

Thanks.

Posttop
Minollo I.Subject: XML back to EDI ? how?
Author: Minollo I.
Date: 30 Dec 2005 08:03 PM
Using the latest public build (BL501f), things will work well if you don't close the output stream explicitly, but let the StylusFile object do that:

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();
copy(fis, os);
os.close();
fis.close();
// fos.close(); Don't do this
converter.close();

As this is not particularly intuitive, we are working at solving it in future updates; but in the meanwhile the code above will work fine.

Minollo

 
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.