When testing DFDL/Daffodil I examine the exit codes following each step of following sequence... [image: image.png]
1. daffodil parse 2. daffodil unparse 3. diff between parse input ASCII file and reconstituted unparse output ASCII file 4. xmllint of intermediate ~.xml file against DFDL schema If parsing throws an error, how is it possible step three (3) above indicates there is "no" difference between parse input ASCII file and reconstituted unparse output ASCII file? The log clearly shows value 'abcdef' violates the regex string '[A-Z]{0,11}'... + daffodil parse --validate=on -s cefms-gl.dfdl.xsd -r cefms-gl.dfdl.xsd '-DSeparator=|' header=absent -o out/_-_home_-_attila_-_CDES_-_trunk_-_aud-it_-_data_-_JITC_-_AUD-IT_L2H_ASCII_-_CEFMS-GL_-_Invalid_Format_Content_-_cefms-gl-fy2017-09-00001.xml /home/attila/CDES/trunk/aud-it/data/JITC/AUD-IT_L2H_ASCII/CEFMS-GL/Invalid_Format_Content/cefms-gl-fy2017-09-00001.txt [error] Validation Error: cvc-type.3.1.3: The value 'abcdef' of element 'N_1_accrual_ind' is not valid. Schema context: element reference {}cefms-gl.dfdl.xsd Location line 2 in file:/home/attila/CDES/trunk/aud-it/ascii/structured/l2h/hsg-5.x/xsd/cefms-gl.dfdl.xsd Data location was preceding byte 20043 [error] Validation Error: cvc-pattern-valid: *Value 'abcdef' is not facet-valid with respect to pattern '[A-Z]{0,11}' *for type '#AnonType_N_1_accrual_indRecdType-aud-it'. Schema context: element reference {}cefms-gl.dfdl.xsd Location line 2 in file:/home/attila/CDES/trunk/aud-it/ascii/structured/l2h/hsg-5.x/xsd/cefms-gl.dfdl.xsd Data location was preceding byte 20043 [error] Validation Error: N_1_accrual_ind failed facet checks due to: facet pattern(s): [A-Z]{0,11} Schema context: N_1_accrual_ind Location line 97 column 14 in file:/home/attila/CDES/trunk/aud-it/ascii/structured/l2h/hsg-5.x/xsd/cefms-gl.dfdl.xsd Data location was preceding byte 6 + parse_exit_code=1 + echo daffodil parse exit code: 1 daffodil parse exit code: 1 So I would expect the erroneous record to |NOT| appear in intermediate ~.xml file which would exclude the record from the unparsed/reconstituted out ASCII file, yet the bad record does appear in the intermediate ~.xml... [image: image.png] Thx in advance Attila