You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@daffodil.apache.org by "Josh Adams (Jira)" <ji...@apache.org> on 2021/03/16 13:36:00 UTC

[jira] [Resolved] (DAFFODIL-1520) Unset variables referenced from dfdl:outputValueCalc expression should block/delay until they get a value.

     [ https://issues.apache.org/jira/browse/DAFFODIL-1520?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Josh Adams resolved DAFFODIL-1520.
----------------------------------
    Fix Version/s: 3.1.0
         Assignee:     (was: Josh Adams)
       Resolution: Fixed

This was fixed as part of the changes for DAFFODIL-2429 in commit f1603a0da8c9610f7ade79250315a2b5db333db2

Tests, such as var_Instance13 in variables.tdml, exercise this idea of variable needing to suspend in order to finish evaluating.

> Unset variables referenced from dfdl:outputValueCalc expression should block/delay until they get a value.
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: DAFFODIL-1520
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-1520
>             Project: Daffodil
>          Issue Type: Bug
>          Components: DFDL Language, Unparsing
>            Reporter: Mike Beckerle
>            Priority: Major
>             Fix For: 3.1.0
>
>
> This needs clarification in the DFDL spec from the DFDL workgroup.
> However,.... it seems pretty clear that an outputValueCalc expression needs to be able to refer to a variable (otherwise you can't use variables to decouple parts of schemas from each other.)
> And the variable needs to be able to be unbound until the future existence of things that give it a value. 
> As an example, one could have a length field in a header.
> One wants this lengh field to be computed based on the length of some body that comes after the header, and where the header's DFDL schema does not reference the body DFDL schema. They are separate schemas. 
> To do this one should use variables. The header needs a length from the body, then that length should come from a variable, which variable being set by the body. Since the body comes later, the variable needs to be set after the header OVC element has been encountered. So we have to be able to evaluate an OVC expression and block waiting for the variable to get its value.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)