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

Reply via email to