Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.1.0
Description
Test "scenario1_7" was made "threePass" to get it to pass, but really it should be onePass, and the underlying Daffodil behavior needs to change.
Specifically, an empty <y/> element appears in the infoset from the first parse pass, and that element should NOT be present, as the element is optional, the content is zero-length, and the type is xs:string. This <y/> element should only be created if there is some empty value syntax defined by way of initiator/terminator/emptyValueDelimiterPolicy.
See the shouldRemoveZLStringHexBinaryValue method, which the code has wired to 'false' currently. Note that the parse must be attempted so that asserts/discriminators and setVars are executed.
Furthermore, note that this does NOT terminate the array, as it is not a processing error.
This test, and other tests that construct these empty 'y' elements should be corrected, and should not require threePass treatment from the TDML runner.