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
Conferences Close Tree View
+ Stylus Studio Feature Requests (1192)
- Stylus Studio Technical Forum (14621)
-> + External Cascading Style Sheet... (2)
-> + Need help with XML mapping - P... (2)
-> + Convert image to base64 in xsl... (2)
-> + Automation (2)
-> - Changing Default Property valu... (1)
-> + Help in reading cdata using xs... (4)
-> + Ok, I can programatically conv... (2)
-> + How do I prevent the previewer... (2)
-> + Can I programatically convert ... (2)
-> + XML To Flat File - Reverse Eng... (3)
-> + Check for valid attribute valu... (3)
-> + Java.lang.OutOfMemory - when I... (3)
-> + How to convert text in EBCDIC ... (8)
-> + First steps in XSLT mapping (4)
-> + Option to build XSL-FO is not ... (3)
-> + using Adaptor convert XML to e... (2)
-> + Using XML Converter on a Compl... (2)
-> + Java built-in processor needed... (3)
-> + XSL to draw a table (2)
-> - Stylus Studio in c# solutions (1)
-> + entities within schemaLocation... (4)
-> + java runtime error during xslt... (2)
-> + Conversion of XML Doc for RSS ... (2)
-> + Does anyone know how to upgrad... (2)
-> + XML editor corrupts my file (5)
-> + Stylus Studio & Berkeley DB XM... (4)
-> + XSLT for page breakout (2)
-> + How to avoid creating empty el... (2)
-> + Error in converting 945 EDI us... (4)
-> + XML to X12 (invoice 810 edi) (2)
-> - Stylus Studio 2009 Enterprise ... (1)
-> + Stylus Studio 2007 - license d... (2)
-> + XML to X12 conversion error (6)
-> + How to reset JVM (to another j... (2)
-> + How to generate XML sample dat... (2)
-> + Document Path reference after ... (4)
-> + concatenate with xquery (6)
-> + i want to capture the xml tag ... (3)
-> + "View Sample XML" in schema an... (2)
-> + Can't get to Toolbar settings ... (2)
-> + SOAPException (3)
-> + how to patch xml files with wr... (2)
-> + wysiwug xslt editor (2)
-> + XML to Google Charts (10)
-> + XML to HL7 (2)
-> - Outputting this XML (1)
-> + Interpreting XSD Error Message... (2)
-> - converter EDI --> typ = no (8)
-> ->converter EDI --> typ = n...
-> ->converter EDI --> typ = n...
-> ->converter EDI --> typ = n...
-> ->converter EDI --> typ = n...
-> ->converter EDI --> typ = n...
-> ->converter EDI --> typ = n...
-> ->converter EDI --> typ = n...
-> + License issue (7)
-> + One of the simplest questions ... (3)
-> + xQuery transformation encounte... (2)
-> + Schema Evolution (2)
-> + Preview in Browser button gray... (4)
-> + converter:EDI:val=no AND chr=.... (4)
-> + [XQuery][DB2 JDBC Driver]Unsu... (2)
-> + Need Help Create XML file thro... (4)
-> + Flat file to XML conversion in... (5)
-> + How to set delimiters if it's ... (4)
-> + XSD Validation failing (4)
-> + XSD Validation failing (2)
-> + Web Service Call cannot retrie... (7)
-> + Flat file conversion to XML (2)
-> + Stylus Studio crash (5)
-> + Stylus Studio No Longer loads (2)
-> + How do I print in color? (2)
-> + Integrating Documentum WebPubl... (2)
-> + Stylus Studio crashes on openi... (4)
-> + Change format of XML output fo... (3)
-> + XSLT mapper / Source file not ... (7)
-> + Stylus Studio crashes on start... (3)
-> + Loading GML3.1 (3)
-> + NullPointerException when runn... (5)
-> + Can not open Stylus Studio (3)
-> + macros for custom validation e... (6)
-> + Does Stylus Studio generate XM... (4)
-> + another csv conversion (7)
-> + ADD CVS to Source Control drop... (2)
-> + Automate xquery (6)
-> + Correcting multiple XML docume... (2)
-> + Unable to locate Components\Da... (5)
-> + Runtime Error, Struzzo.exe, Ab... (11)
-> + Convert XML to EDIfact (3)
-> + I don't have the Mapper tab (6)
-> + CSV conversion with null field (3)
-> + Converting a Complex Flat File... (2)
-> - installion in batch mode (1)
-> + Complete Custom Validation Lis... (2)
-> + creating xml from csv flat fil... (9)
-> - need Help Regarding XBRL (1)
-> + Exception FODC0004: file or di... (2)
-> + Activation (2)
-> + java runtime error (2)
-> + connection problem with AS 400... (4)
-> + XML to 837I EDI -- multiple NM... (3)
-> + WYSIWYG in SSv7 (2)
-> - Write into < head /> tags us... (1)
-> + Maximum recursion depth exceed... (2)
-> - Code coverage testing (1)
-> - Passing JavaScript with multip... (1)
-> + preserving white space in XML ... (8)
-- Previous [721-740] [741-760] [761-780] Next
+ Website Feedback (249)
+ XSLT Help and Discussion (7625)
+ XQuery Help and Discussion (2017)
+ Stylus Studio FAQs (159)
+ Stylus Studio Code Samples & Utilities (364)
+ Stylus Studio Announcements (113)
Topic  
Postnext
DG SarboSubject: converter EDI --> typ = no
Author: DG Sarbo
Date: 10 Aug 2009 07:01 AM
Originally Posted: 10 Aug 2009 06:51 AM
Please take a look at the xquery in sample1.

In the EDI message (sample1.edi) there is a line MEA+AAE+G+KGM:16920'
here I want to be sure that the '16920' is an instance of decimal. So I check this in the mapping (see xquery sample1.xquery take scenario 1).

This does not work. I first assumed that because the converter makes a stringtype out of the '16920', it is impossible to check if the value is an instance of decimal.

However, if I change '16920' to e.g. 'string' (see sample2.edi) the same xquery (see sample1.xquery but now with scenario 2) throws an error:

Error during conversion: [DDEE0012] ERROR Invalid character in numeric value string (often caused by incorrect decimal character).

This is how it should be! SS checks the EDIFACT D95B CODECO, sees that the type of
Segment: MEA (line 18)
Position: MEA0302
Element: C174:6314
Measurement value Value: "string" ... is not numeric.

But the error message SS gives is very hard to read for the untrained eye (workers in our helpdesk also see this error message). We want to have a nicer message (in plain English) and further down in the error message SS makes a suggestion:

To turn off all data type validation, use the "typ=no" URI option.

I add the typ=no option in my xquery (see scenario 3) and now something happens that I do not understand. There is no error but also no output... The whole <xlEquipmentGrossWeight> is gone from the output.

What did happen?


Unknownsample1.xquery
the xquery

Unknownsample2.edi
sample 2

Unknownsample1.edi
sample 1

Postnext
Tony LavinioSubject: converter EDI --> typ = no
Author: Tony Lavinio
Date: 11 Aug 2009 05:57 PM
First, the issue is not with typ=no, but in your query. The query
line:
where $MEA/MEA02/MEA0201/text() = 'G'
should be
where $MEA/MEA02/text() = 'G'

But there is a more subtle problem in your XQuery.

saying "$lmnt instance of xs:decimal" depends on the declared type of
the element based on XML Schema, not based on whether the string value
of the element looks like a number.

So without an XML schema defined, "instance of" will not do what you
expect. If you want to test if an untyped element looks like a number,
use this:

string(number($lmnt)) != 'NaN'

In any case, this should not be needed. The XML Converters already
have builtin code to check for all sorts of conditions, including
whether a specific element has the correct characters for that
datatype and minimum and maximum lengths.

One issue your code does not test is the proper way of handling
lengths for numeric values. For example, the '-' sign is not counted
as part of the length, ".5" and "5." are illegal values, etc. The
converter handles all of these issues, but you are for some reason
disabling those checks and handling them manually.

Possibly a better method would be to intercept the errors via a
EDIConverterListener Java class, and reporting your own errors. This
would let the converters handle their validation as designed, and
would save you duplicating much effort.

Postnext
DG SarboSubject: converter EDI --> typ = no
Author: DG Sarbo
Date: 12 Aug 2009 04:18 AM
Originally Posted: 12 Aug 2009 03:52 AM
Sorry but I think you are wrong about:

>$MEA/MEA02/MEA0201/text() =
>'G'
>should be
>where $MEA/MEA02/text() = 'G'

The D95B EDIFACT message has a MEA segment in GROUP_3. The MEA/MEA02 is a 'C502' composite element that holds composites: 6313, 6321, 6155 and 6154. Beacuse the 'G' is in the first composite (in 6313), in the EDI message (see e.g. sample 1) the line: MEA+AAE+G+KGM:string' should be seens as MEA+AAE+:G+KGM:string' (notice the ':' before G).

*****
Thank you for the help, I will try this!


Also could you please look at my initial question about the typ=no?

In scenario1 I use: "converter:EDI?file://C:.....\sample1.edi"

In scenario3 I use: "converter:EDI:typ=no?file://C:.....\sample2.edi"

In scenario1, it executes the local:checkField function but I don't know what happens in scenario3.

Postnext
Tony LavinioSubject: converter EDI --> typ = no
Author: Tony Lavinio
Date: 12 Aug 2009 04:16 AM
>Sorry but I think you are wrong about:
> $MEA/MEA02/MEA0201/text() = 'G'
> should be
> $MEA/MEA02/text() = 'G'

No, I am not wrong, based on the sample1.edi and sample2.edi
that you posted earlier. Neither has a +:G+, but both have just
+G+.

Perhaps the real definition uses +:G+, but that's not the sample
you posted, and that's why your sample didn't work.

For the rest, after fixing either your input file or your XQuery
to handle the +G+ issue, please re-read the comments above.

Your code to do "instance of decimal" will not do what you think.

Postnext
DG SarboSubject: converter EDI --> typ = no
Author: DG Sarbo
Date: 12 Aug 2009 04:40 AM
>No, I am not wrong, based on
>the sample1.edi and
>sample2.edi
>that you posted earlier.
>Neither has a +:G+, but both
>have just
>+G+.

Yes you are wrong... I know for a FACT that it MUST be MEA/MEA02/MEA0201
Just open the D95B EDIFACT standard... see that it has a composite element and look inside it to see that the 'G' is in 'MEA0201'.

It is impossible to have a composite element (like MEA02) with a string/AN value (like 'G').

If you think this:

>Perhaps the real definition
>uses +:G+, but that's not the
>sample
>you posted, and that's why
>your sample didn't work.

Than you did not try my xquery in SS. If you change the code like you suggested the 'G' will not be found and the code would not reach the part where the local:checkField function is.

On the other hand if you do it like I wrote the code, than the function is reached (as you can try for yourself), executed and the error message that is in it, is displayed by SS (in the error message the value of MEA/MEA03/MEA0302 is displayed, this could not happen if my code was wrong!!!)

EDIFACT works like this:

if there is a composite element and a value from the first composite (like I said: 6313) holds 'G' than there is no need to use '+:' in a EDIFACT message. That is why I said: "it can be seen as"

If the 'G' would be in the 2nd/ 3d of 4th composit (in: 6321, 6155 or 6154) than the ':' would be used.

Please just try running the xquery before stating something that is not true.

Postnext
Jordy BakkerSubject: converter EDI --> typ = no
Author: Jordy Bakker
Date: 12 Aug 2009 05:07 AM
A value can never be found in a composite.
It should always be in an element or a composite element.

MEA/MEA01 is element 6311, which can contain a value.
MEA/MEA02 is composite C502, which cannot contain a value itself.
Only its composite elements C502/6313, C502/6321, C502/6155 and C502/6154 can contain a value.

The elements and composites are divided by a +
The composite elements are divided by a :

Since C502/6313 is the first composite element of composite C502, it should not be preceded by a :

MEA+AAE+G+KGM:1000' is a segment which has the following values:
'MEA' is the segment (MEA)
'AAE' is in element 6311 (MEA/MEA01)
'G' is in composite element C502/6313 (MEA/MEA02/MEA0201)
'KGM' is in composite element C174/6411 (MEA/MEA03/MEA0301)
'1000' is in composite element C174/6314 (MEA/MEA03/MEA0302)

Postnext
Tony LavinioSubject: converter EDI --> typ = no
Author: Tony Lavinio
Date: 12 Aug 2009 10:41 AM
Originally Posted: 12 Aug 2009 10:30 AM
Ah! You have discovered a problem.

I was looking just at the XML output.

It appears that when typ=no, we can't distinguish in the input from
content being in a 01 vs. a 0101 position.

This is a bug, and will be fixed for the 5.0 release.

But the other pieces about "instance of xs:decimal" are still
correct.

That particular bug has been in the product for several years.
The reason it was never encountered is that in general our other
users never turn off type checking.

Posttop
DG SarboSubject: converter EDI --> typ = no
Author: DG Sarbo
Date: 12 Aug 2009 12:06 PM
Ok, I wait on it for release 5.0

The code you have given to solve the "instance of xs:decimal" problem is very helpful. Thank you for that.

   
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.