Proposal to allow empty string to be used as a value for DFDL variables of
type xs:string and xs:hexBinary (or derived from them) without resorting
to using an expression.
To set empty string use the attribute syntax, eg:
The following are schema definition errors as they do not set the value to
anything.
That allows us to apply a semantic to these syntaxes in a future DFDL
release if we need to (eg, unsets the value).
Regards
Steve Hanson
Architect, Data Format Description Language (DFDL)
Co-Chair, OGF DFDL Working Group
IBM SWG, Hursley, UK
smh@uk.ibm.com
tel:+44-1962-815848
From: Steve Hanson/UK/IBM
To: Mike Beckerle ,
Cc: Mark Frost/UK/IBM, Tim Kimber/UK/IBM@IBMGB
Date: 21/11/2012 09:48
Subject: Re: [DFDL-WG] Fw: setVariable with no value set -
supported?
Here's what Sandy had to say on this. He raised a good point about the
future possibility of unsetting a variable using the empty syntax.
Steve Hanson
Hi Sandy - please can you ping back when free ? Ta!
Sandy (S.) Gao
hi steve
Steve Hanson
Hi
◄
From DFDL WG call today...
◄
2. What is correct syntax for setting the value of a variable to empty
string?
DFDL variables allow both XSDL lexical form and DFDL expressions as
values, so it seems
plausible that or even
is an allowed
syntax for setting the value of a string or hexBinary variable to empty
string
◄
What's your opinion here?
◄
Syntax for setting a DFDL variable to empty string.
Sandy (S.) Gao
the first looks reasonable. if you want to distinguish between an unset
value / null value vs. empty value, then you may not want to use the
second. in xml, there's a difference between an attribute that's not
present and an attribute with empty value.
◄
unless you are using element content as the value for the second case.
Steve Hanson
That's the issue - DFDL treats the attr form and element form as
equivalent
Sandy (S.) Gao
so for non-empty value, you could or abc</setV>?
Steve Hanson
correct
Sandy (S.) Gao
ic... then i suppose you need to be consistent and allow both of those
forms.
◄
but can someone specify a null value? or unset a variable?
Steve Hanson
null not allowed
◄
I don't think we allow unsetting either
◄
Good points though
Sandy (S.) Gao
if a value is required, then i don't see any issue in this approach.
Steve Hanson
ok - I will raise the unset issue, as we don't want to box ourselves in
for future
◄
thanks Sandy
Sandy (S.) Gao
np... i guess you'll need to add a new element e.g. <unsetValue> or a
special value ##unset</setV> to support it.
Steve Hanson
yes - if we don't allow the empty element + missing attr to mean that
Sandy (S.) Gao
exactly
Regards
Steve Hanson
Architect, Data Format Description Language (DFDL)
Co-Chair, OGF DFDL Working Group
IBM SWG, Hursley, UK
smh@uk.ibm.com
tel:+44-1962-815848
From: Mike Beckerle
To: Steve Hanson/UK/IBM@IBMGB,
Date: 19/11/2012 15:11
Subject: Re: [DFDL-WG] Fw: setVariable with no value set -
supported?
Here is the way I would set a variable to the empty string.
{ "" }
Note that the value is an expression and so must have the {...} surround,
the expression returns an empty string as its value.
If you don't mind quoting hell, then
would also work.
The DFDL validator doesn't catch the error about the value attribute being
missing because both the above forms are accepted and XML Schema's
validation can't enforce an OR of "you have to have an element child
value OR the value attribute".
This check has to be done by the DFDL implementation itself, not just XSD
validation of the DFDL annotations.
On Mon, Nov 19, 2012 at 9:34 AM, Steve Hanson wrote:
See below...
Regards
Steve Hanson
Architect, Data Format Description Language (DFDL)
Co-Chair, OGF DFDL Working Group
IBM SWG, Hursley, UK
smh@uk.ibm.com
tel:+44-1962-815848
----- Forwarded by Steve Hanson/UK/IBM on 19/11/2012 14:23 -----
From: Steve Hanson/UK/IBM
To: Mark Frost/UK/IBM,
Cc: Shane Cartledge/Toronto/IBM@IBMCA, Anita
Leung/Toronto/IBM@IBMCA
Date: 16/11/2012 11:46
Subject: Re: setVariable with no value set - supported?
The specific example that Shane gives is invalid anyway as you can't set
the value of one of the pre-defined DFDL variables. Assuming a realistic
example like:
I'm wondering how you would set empty string for an element of type
xs:string or xs:hexBinary.
But why isn't that the same as
which in XML rules is equivalent to:
I will raise with the DFDL WG.
Thanks
Steve Hanson
Architect, Data Format Description Language (DFDL)
Co-Chair, OGF DFDL Working Group
IBM SWG, Hursley, UK
smh@uk.ibm.com
tel:+44-1962-815848
From: Mark Frost/UK/IBM
To: Shane Cartledge/Toronto/IBM@IBMCA, Steve Hanson/UK/IBM@IBMGB,
Cc: Anita Leung/Toronto/IBM@IBMCA
Date: 16/11/2012 11:19
Subject: Re: setVariable with no value set - supported?
Hi Shane,
While the spec isn't super-specific, I'd interpret it to mean "you must
give exactly one of the value attribute or element value"
Spec Section 7.9 :
"The syntax supports both a dfdl:value attribute and the 'value'
being specified by the element value. Only one or the other may be
present. (Schema definition error otherwise.)"
Steve:
do you think altering the spec wording above to something like "
Exactly one of the dfdl:value or the element value must be present.
(Schema definition error otherwise.)"
Regards,
Mark Frost
_____________________________________
MP 211, IBM Hursley, Winchester, SO21 2JN
Phone: (01962) 817009 or x247009
Email: frostmar@uk.ibm.com
From: Shane Cartledge/Toronto/IBM@IBMCA
To: Mark Frost/UK/IBM@IBMGB,
Cc: Anita Leung/Toronto/IBM@IBMCA
Date: 15/11/2012 22:56
Subject: setVariable with no value set - supported?
Hi Mark,
Do you know if DFDL should supports a setVariable with no value set?
Thought this may have already come up with your runtime testing.
For example:
The DFDL specification is not clear on this point, and the DFDL validator
does not flag it as an error.
Thanks.
Shane Cartledge
Business Integration Tooling
Phone: 1-905-413-5171, Tie Line: 313-5171
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
--
dfdl-wg mailing list
dfdl-wg@ogf.org
https://www.ogf.org/mailman/listinfo/dfdl-wg
--
Mike Beckerle | OGF DFDL WG Co-Chair
Tel: 781-330-0412
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
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