[ 
https://issues.apache.org/jira/browse/DAFFODIL-2873?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mike Beckerle updated DAFFODIL-2873:
------------------------------------
    Fix Version/s: 3.7.0

> zoned EBCDIC signed negative numbers not parsed correctly
> ---------------------------------------------------------
>
>                 Key: DAFFODIL-2873
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-2873
>             Project: Daffodil
>          Issue Type: Bug
>          Components: Back End
>    Affects Versions: 3.6.0
>            Reporter: Mike Beckerle
>            Assignee: Mike Beckerle
>            Priority: Major
>             Fix For: 3.7.0
>
>
> For zoned decimal numbers, if the encoding is ascii-based then the proeprty 
> dfdl:textZonedSignStyle is used to determine how the signs are overpunched.
>  
> But if the encoding is ebcdic based, then this property is supposed to be 
> ignored. 
> This appears to not be happening. 
>  
> In the COBOL1 example (on DFDLSchemas github), a number has this type:
>  
> {code:java}
> <simpleType
>   name="displayMoney7Digits"
>   dfdl:representation="text"
>   dfdl:textNumberRep="zoned"
>   dfdl:encoding="ebcdic-cp-us"
>   dfdl:decimalSigned="yes"
>   dfdl:textNumberPattern="+0000000V00"
>   dfdl:length="9">
>   <restriction base="xs:decimal" >
>     <maxInclusive value="9999999.99"/>
>     <minInclusive value="-9999999.99"/>
>   </restriction>
> </simpleType> {code}
> The data is:
> {code:java}
> R99999999 {code}
> But the R is not accepted as a -9 digit with negative overpunched. This is 
> EBCDIC character D9 which is the D minus indicator overpunched on the zone of 
> the 9 digit. 
> The error message is:
> {code:java}
> org.apache.daffodil.tdml.TDMLExceptionImpl: (Implementation: daffodil) 
> ParseError: Parse Error: Unable to parse zoned xs:decimal from text: 
> R99999999. Invalid zoned digit: R
> Schema context: TOTAL-CHARGES Location line 84 column 8 in 
> .../Cobol/target/classes/cobol1.dfdl.xsd
> Data location was preceding byte 90 {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to