Feedback
Did this article resolve your question/issue?

   

Article

How the Connect for XML Converters handles simple elements when ignoring DDEE0001 and DDEE0010

Information

 
TitleHow the Connect for XML Converters handles simple elements when ignoring DDEE0001 and DDEE0010
URL Namehow-the-connect-for-xml-converters-handles-simple-elements-when-ignoring-ddee0001-and-ddee0010
Article Number000110111
EnvironmentProduct: Connect for XML Converters
Version: 6.2
O/S: Java
Database: N/A
Application: N/A
Question/Problem Description
When encountering a situation where a repetition character is used as part of the content of an element, the resulting XML will create extra instances of the associated tag.

EXAMPLE of ignoring DDEE0001

If the repetition character is '^' and starting with the following EDI:

PER*IC** URL*Http^//xyz.com~

This would produce error DDEE0001.

The resulting XML would look like this if choosing to configure the XMLConverters with "ignore=1" :

<PER> 
    <PER01>IC</PER01>
    <PER03>URL</PER03> 
    <PER04>Http</PER04> 
    <PER04>//xyz.com</PER04>
</PER>

As of hotfix 6.2.0.1893ay, the output will look like the following:

<PER> 
<PER01>IC</PER01>
<PER03>URL</PER03> 
<PER04>Http^//xyz.com</PER04>
</PER>

RISK:  There is no risk in using ignore=1 in this particular case as the converters will appropriately account for the syntax error in the input file with minimum chance for side-effects.

EXAMPLE of ignoring DDEE0010

If the composite separator character is '^' and the following EDI  is encountered:

PER|IC||UR|https^//WWW.XYZ.COM

This would produce error DDEE0010.

The resulting XML would look like this if choosing to configure the XMLConverters with "ignore=10" :

<PER> 
    <PER01>IC</PER01>
    <PER03>UR</PER03> 
    <PER04>http</PER04> 
    <PER04>//WWW.XYZ.COM</PER04>
</PER>

As of hotfix 6.2.0.1893ay, the output will look like the following:

<PER> 
<PER01>IC</PER01>
<PER03>UR</PER03> 
<PER04>http^//WWW.XYZ.COM</PER04>
</PER>

RISK:  While this does technically violate a minor aspect of the specification to deal with the syntax error in the input file, it is perfectly reasonable to use "ignore=10" to cause the output to be treated as valid.
Steps to Reproduce
Clarifying Information
Error Message[DDEE0001] ERROR Too many repetitions of an element (2 instead of at most 1).
Dialect: X12
Version: 00501/005010
Message: 835
Segment: PER (segment 14)
Loop: 1000
Position: PER04
Repetition: 2
Element: 364 (s): Communication Number
Value: "//xyz.com"
There are more repetitions of an element than the specification indicates are allowed.


[DDEE0010] ERROR Composite element seen where simple element expected.
Dialect: X12
Version: 00501/005010
Message: 835
Segment: PER (segment 11)
Loop: 1000
Position: PER04
Element: 364 (s): Communication Number
There either is a mismatch between the segment definition and the number of elements or composite elements, or a composite element appears where a simple element is expected.
Defect NumberDIS-16
Enhancement Number
Cause
Resolution
Fixed in hotfix 6.2.0.1893ay

Refer to "DataDirect XML Converters for Java hot fix download and install instructions" for instructions on how to download and install the hot fix.
Workaround
Notes
Excerpt of the change history as seen in the Converters README:
https://media.datadirect.com/download/docs/xmlconverters/java/readme/readme.htm

Build 1893ay:
In X12 or HIPAA, when a simple element contains a string that uses a character that is normally reserved as a separator, error DDEE0010 "Composite element seen where simple element expected." is generated.
  • This causes problems when a text element contains this character, because while according to strict rules this is an error, we know that in this particular case it should be treated as just a plain text character.
    For example, in the following segment, when ISA16 (I15: Component Element Separator) is ":", normally an error DDEE0010 would be emitted, since the URL element contains a colon:
    PER*IC**URL*http://www.progress.com~
    Even though PER04 is a string (AN) type and not a complex type, the parser sees the separator and wants to break it into pieces.
    A change in this patch allows the using ignore=10 to ignore the syntax error, and in this particular case, if the element is a simple type, the component separator will be treated like any other character.
  • A similar problem can happen when a simple element that is not marked as "repeating" has text containing the repeat character from ISA11 (I65: Repetition Separator). In this case, using ignore=1 will ignore the syntax error, and provide the fallback behavior of generating output as if the repetition character were just an ordinary character.
    For example, assuming a PER segment looked like this, and the repeat character was defined as a colon:
    PER*IC**URL*http://www.progress.com~
    Normally, an error DDEE0001 would be emitted, because PER04 is not marked as an element that repeats. The old behavior with ignore=1 would have generated this for output for the PER04 element:
    <PER04>http</PER04>
    <PER04>//www.progress.com</PER04>
    Note that since the parser detected the repeat character, the field would repeat.
    The new behavior with ignore=1 is different, since the definition for PER04 says it isn't supposed to repeat, so we have an improved compensating behavior:
    <PER04>http://www.progress.com</PER04>
Last Modified Date10/11/2023 4:29 AM
Files
Disclaimer The origins of the information on this site may be internal or external to Progress Software Corporation (“Progress”). Progress Software Corporation makes all reasonable efforts to verify this information. However, the information provided is for your information only. Progress Software Corporation makes no explicit or implied claims to the validity of this information.

Any sample code provided on this site is not supported under any Progress support program or service. The sample code is provided on an "AS IS" basis. Progress makes no warranties, express or implied, and disclaims all implied warranties including, without limitation, the implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample code is borne by the user. In no event shall Progress, its employees, or anyone else involved in the creation, production, or delivery of the code be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample code, even if Progress has been advised of the possibility of such damages.