[DFDL-WG] Action 289: outputValueCalc refers back to expression that refers forward

Mike Beckerle mbeckerle.dfdl at gmail.com
Mon Nov 2 19:16:22 EST 2020


One of the open questions w.r.t. this action item is whether DFDL is
missing a property on dfdl:newVariableInstance and dfdl:setVariable to
indicate if they are to be evaluated at parse, unparse, or both.

I have updated the PCAP schema on github to illustrate this issue.

This is a pull request (code review) of the changes
https://github.com/DFDLSchemas/PCAP/pull/10

In the PCAP schema the IPSrcGrp group ref appears immediately before the
IPSrc element. Similarly the IPDestGrp reference appears immediately before
the IPDest element.

These groups contain elements which are the individual binary bytes of the
IP Source and IP Dest addresses. They are 4 unsigned bytes.
When parsing these are parsed and then their values concatenated as strings
into a string like "1.2.3.4".

When unparsing, these groups use dfdl:outputValueCalc to take apart a
string like "1.2.3.4" (which appears in the infoset after parsing), back
into its individual digits 1, 2, 3, 4, and creates an unsignedByte value of
each number.

The problem is, these groups are absolute nonsense if you view the
dfdl:newVariableInstance defaultValue expression as being evaluated at
parse time. The expression is for use *only* at unparse time and
immediately does a forward reference to the following IPSrc member
containing the "1.2.3.4" type string.

Without some sort of additional property on dfdl:newVariableInstance and
dfdl:setVariable to indicate that this only should be evaluated at unparse
time, there is no way to suppress evaluation and perform it only at unparse
time.

I suggest we need an additional property on newVariableInstance and
setVariable which I suggest is called 'direction', with values 'parse',
'unparse', 'both'. This property defaults to 'both', but if set to
'unparse' only evaluates the expression (and binds/sets variable) during
that direction of processing.

...mikeb


Mike Beckerle | OGF DFDL Workgroup Co-Chair | Owl Cyber Defense |
www.owlcyberdefense.com
Please note: Contributions to the DFDL Workgroup's email discussions are
subject to the OGF Intellectual Property Policy
<http://www.ogf.org/About/abt_policies.php>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.ogf.org/pipermail/dfdl-wg/attachments/20201102/8592aba1/attachment.html>


More information about the dfdl-wg mailing list