Subject:Bug in X12 parsing/Validation: resource "XSB-040300.properties" was not found Author:toadie d. Date:19 Dec 2005 08:57 PM
I've modified the demo.java to add 2 more test cases
Test 5: reading in file 831.x12 and parse it.
Test 6: reading in fiel bad831.x12 and parse it
When running against file bad831.x12, i am getting a resource not found error. ???
I am attaching the snippet of code that I added to demo.java.
test 1 succeeded: one.csv -> OutputFile: one.xml
test 1 succeeded: one.csv -> OutputFile: one_stream.xml
test 2 succeeded: two.xml -> OutputFile: two.csv
test 3 succeeded: three.txt -> OutputFile: three.xml
test 4 succeeded: 831.x12-> OutputFile: 831.xml
java.io.FileNotFoundException: The necessary resource "XSB-040300.properties" was not found
Subject:Bug in X12 parsing/Validation: resource Author:Tony Lavinio Date:20 Dec 2005 09:52 AM
First, the reason the error occurred was probably because for X12
work, the X12.jar file needs to be in the classpath, and 831.x12 is
definitely an X12 file.
But the question you asked was, what does the 'validation' option do?
It validates as to STRUCTURE, not CONTENT. It makes sure that the
segments provided are in the proper order, all mandatory segments
are present, the version is a version we support in the library,
and that segments have the correct number of elements.
Subject:Bug in X12 parsing/Validation: resource Author:toadie d. Date:20 Dec 2005 12:26 PM
>For validation on CONTENT, we
>use the XML Schema files that we can generate from the EDI >dictionaries.
Does the schema implementation currently validate the IEA counts etc??
>We do not currently validate the contents of IEA/GE/SE segments, nor
>the EDIFACT equivalent UNB/UNH/UNT/UNZ (or UI* either). Is this
>something that you would like to see?
I think from a product perspective, it'd be great to be able to (ie. out of the box) validate against ANSI X12 or UN/EDIFACT standard.
Beyond the standards, if any customizations are to be needed, custom schemas should be created.
Also a few other nice things that would be great to have:
1. When a parsing error occurs, you throw an IOException which contains a serialized error msg from a previously thrown Stylus Exception. The Stylus exception contains decent detailed information. However, it would be much preferred if you can return.
a) a nested exception along with related ISA/GS/ST information
b) or better, keep parsing as far as possible and return a list of all exceptions as array of nested exceptions (along with related GS/ST information)
That way, the error messages in the nested exceptions along with the ISA/GS/ST information can be used constructing a 997 or CONTRL message.
With the above structure
1. it's very difficult to use an XPath to find the children ST of a particular GS.
2. For a given GS, it's hard to find the matching GE. You'd have to use the GS06 to match with GE02
possibly a better structure is model the hiearchical relationship of the X12 document?
Subject:Bug in X12 parsing/Validation: resource Author:Tony Lavinio Date:27 Dec 2005 03:41 PM
If you are using the native X12 adapter, you should see a structure
that is nested just the way you want:
...rest of this 831 transaction...
...rest of this 831 transaction...
I'm not sure where your problem lies. Could we see an example of a
document procudes XML that doesn't include the TS_... wrappers around
(Now, if you are using the Convert-to-XML tool instead of the native
adapter, you will get flat XML. In that case, you can use the output
from there as input to XSLT or XQuery to transform it in whatever way
Subject:Bug in X12 parsing/Validation: resource Author:Tony Lavinio Date:09 Jan 2006 11:36 AM
I noticed that this wasn't directly answered.
You can still find the associated GS even when there are multiple
TS_* elements. Just use the prev-sibling:: axis to look for the
first preceding element named GS.