The problem has more to do with "myIVC" not being required. If a default is not permitted then "myIVC" is required during unparse.


Regards,

Bradd Kadlecik
z/TPF Development

Phone: 1-845-433-1573
E-mail:
braddk@us.ibm.com
2455 South Rd
Poughkeepsie, NY 12601-5400
United States


Inactive hide details for Mike Beckerle ---10/16/2019 04:50:58 PM---So you are suggesting this:         <element name="myOVC" tMike Beckerle ---10/16/2019 04:50:58 PM---So you are suggesting this: <element name="myOVC" type="xs:int" dfdl:outputValueCalc="{

From: Mike Beckerle <mbeckerle.dfdl@gmail.com>
To: Bradd Kadlecik <braddk@us.ibm.com>
Cc: DFDL-WG <dfdl-wg@ogf.org>
Date: 10/16/2019 04:50 PM
Subject: [EXTERNAL] Re: [DFDL-WG] DFDL inputValueCalc restrictions






So you are suggesting this:

        <element name="myOVC" type="xs:int" dfdl:outputValueCalc="{ ../myIVC + 3 }" />
        <element name="myIVC" type="xs:int" dfdl:inputValueCalc="{ compute here }" default="0"/><!-- default only used when unparsing -->

That's not unreasonable.

Question: Can the behavior you need be represented by way of a test for existence of the IVC element?

<element name="myOVC" type="xs:int" dfdl:outputValueCalc="{ if (fn:not(fn:exists(../myIVC))) then 0 else ....do the real computation here.... }"/>
<!-- an optional IVC element -->
<choice>
    <sequence> <!-- IVC can't be root of a choice branch so workaround -->
        <element name="myIVC" dfdl:inputValueCalc="{ compute here }"/>
    </sequence>
    <sequence/> <!-- nothing at all is the other alternative -->
</choice>

That's clumsier, but does achieve, I think, the same behavior without depending on defaulting. It does depend on fn:exists and fn:not functions.


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



On Wed, Sep 25, 2019 at 11:49 AM Bradd Kadlecik <braddk@us.ibm.com> wrote:
Regards,

Bradd Kadlecik

z/TPF Development

Phone: 1-845-433-1573
E-mail:
braddk@us.ibm.com
2455 South Rd
Poughkeepsie, NY 12601-5400
United States