[DFDL-WG] unparsing with dfdl:setVariable referring to dfdl:outputValueCalc element

Steve Hanson smh at uk.ibm.com
Tue Aug 2 13:01:51 EDT 2016


New action 289 raised to clarify the behaviour when element A has an 
expression that refers back to an element B with OVC which refers ahead of 
A.

Regards
 
Steve Hanson
IBM Integration Bus, Hursley, UK
Architect, IBM DFDL
Co-Chair, OGF DFDL Working Group
smh at uk.ibm.com
tel:+44-1962-815848
mob:+44-7717-378890



From:   Mike Beckerle <mbeckerle.dfdl at gmail.com>
To:     "dfdl-wg at ogf.org" <dfdl-wg at ogf.org>
Date:   25/07/2016 20:59
Subject:        [DFDL-WG] unparsing with dfdl:setVariable referring to 
dfdl:outputValueCalc element
Sent by:        "dfdl-wg" <dfdl-wg-bounces at ogf.org>




I somehow think we already discussed this, but am unable to find the 
thread.


Suppose:

<xs:element name="len" type="xs:int" dfdl:outputValueCalc="{ 
dfdl:valueLength(../data) + 10 }"/>
<xs:sequence><xs:annotation><xs:appinfo ...>
    <dfdl:setVariable name="var">{ ../len }" />
</xs:appinfo></xs:annotation></xs:setVariable>
<xs:element name="data" dfdl:length="{ $var }">
    ....
</xs:element>

In the above, when unparsing, the output value calc for len can be 
evaluated, but we must delay its evaluation and unparsing until the 
subsequent data element is available. 

The next thing the unparse has to do, after delaying the unparsing of 
'len' is set the var variable. This requires the value of len, which has 
been deferred.

We have real schemas (e.g., even PCAP) where this occurs. 

This breaks the rule that when variables are evaluated, things they 
reference must have already been evaluated. Basically, when we delay 
evaluating the OVC for len we are suspending anything that depends on len 
having a value as well.

Did we discuss and/or agree on this behavior? I don't have any work around 
for this. 



Mike Beckerle | OGF DFDL Workgroup Co-Chair | Tresys Technology | 
www.tresys.com
Please note: Contributions to the DFDL Workgroup's email discussions are 
subject to the OGF Intellectual Property Policy
--
  dfdl-wg mailing list
  dfdl-wg at ogf.org
  https://www.ogf.org/mailman/listinfo/dfdl-wg


Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.ogf.org/pipermail/dfdl-wg/attachments/20160802/8dc34739/attachment-0001.html>


More information about the dfdl-wg mailing list