Details
-
New Feature
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
None
-
None
Description
This is an unparser corner case.
If you take the dfdl:contentLength(....) of an element of complex type, then if that complex type contains itself an element with dfdl:outputValueCalc, where the length of this dfdl:outputValueCalc element is dependent on the data value that needs to be computed, well then taking the dfdl:contentLength is not possible until the dfdl:outputValueCalc element's value has been computed so that its length can be computed and aggregated with the rest of the complex element.
Hence, evaluation of the dfdl:contentLength(...) must be suspended until the dfdl:outputValueCalc element's length has been determined.
This becomes another thing about the daffodil infoset than an expression can block on the evaluation of. An expression can be blocked waiting for the contentLength of an element to be determined.