Hey Mike,

Wanted to get your opinion on the issue I've been running into with 
IBM4690-TLOG schemas.  I talked with Steve for a while trying to figure out 
what was going on and we came to the opinion that there is either an issue with 
the TLOG schemas, or (perhaps more likely) there is an error in the 
separatorSuppressionPolicy code when dealing with infix separators in Daffodil.

In the TlogAce.xsd file 
(https://github.com/DFDLSchemas/IBM4690-TLOG/blob/master/ACE/TlogAce.xsd#L155) 
it seems that the way the schema and data files were written assumed that the 
IBM4690 packed format could have a valid zero length representation, ie an 
optional element that doesn't occur would just be an empty string surrounded by 
separators.  While this works just fine for strings or hex binary that have 
valid zero length representations, for IBM4690 and other packed binary formats 
the associated separators aren't processed, and in the TlogAce.xsd file, when 
the element SpecialTime is missing all subsequent parsed data in the sequence 
become CustomUserField's as that is the only element that matches the 
separators (I think).

So, just wanted to get your opinion on whether or not this is an issue with the 
current Daffodil separator suppression policy code or if this is a case of an 
incorrectly formed schema.  Steve may jump in to clarify anything I didn't 
explain correctly, as he is a bit more familiar with the separatorSuppression 
code in Daffodil.

Thanks,

Josh

Reply via email to