[DFDL-WG] DFDL: Minutes from OGF WG call, 02 Apr 2008

Ian W Parkinson PARKIW at uk.ibm.com
Thu Apr 3 08:28:36 CDT 2008


Open Grid Forum: Data Format Description Language Working Group

Weekly Working Group Conference Call
16:00 GMT, 2 Apr 2008


Attendees
Mike Beckerle (Oco)
Steve Hanson (IBM)
Ian Parkinson (IBM)
Alan Powell (IBM)

1. Calculated Values
Mike has distributed a revised calculated values section. Alan has replied 
with some comments which will be incorporated.

2. Nil, Defaults and Optional Elements
The working group reviewed Alan's revised treatment of nil, defaults and 
optional elements, based on some discussions which took place within IBM. 
The following points were touched upon:
The "nullKind" property has a possible value "xpath", this has changed to 
be "nullIndicator"
When "nullIndicator" used, the associated descriptions of 
"nullIndicatorPath" and "nullIndicatorIndex" are not clear, and may not 
describe the intended use of these properties. They currently allow the 
null indicator to be any data type, and the null indicator value is 
compared against the "nullValues" list. The group opted to change this so 
that the null indicator must be xs:boolean, logical value "true" meaning 
that the field is null (no comparison against "nullValues").  Also it was 
decided to limit the "nullIndicatorPath" to a path XPath, and not a full 
expression, to allow inversion of the XPath on output. 
When "nullIndicator" used and unparsing, it is not obvious what bytes to 
write into a nil field - in principle, the minimum length of the field is 
filled with either fillByte or padChar. However, if an optional variable 
length field may be zero bytes long, we may not be able to distinguish 
between fields which are present but nil, and fields which are not 
present. Just as we disallow strings with a default value to have 
minLength="0", we could disallow potentially zero-length nillable 
elements.
The specification should follow the convention established by XML Schema, 
and refer to 'nil' rather than 'null'.
The "useNullValueForDefault" property presently only has meaning during 
unparse, and Steve felt this was asymmetric with parsing, where to get a 
missing element to have the value NULL in the infoset, you use an empty 
string as a null value. Mike observed an important symmetry in the 
ordinary case where the element is present but nil in either the source 
document during parse, or the source InfoSet during unparse, in that the 
nullValues list is used in both cases. After discussion, the group agreed 
that the property should be renamed to "useNilForDefault" and honoured for 
both parse and unparse.
The format of the "nullValues" list is awkward, but it does allow all 
possible values to be represented. Alan will consider adding an 'empty 
string' entity to the set of defined DFDL entities.

3. Scoping Rules
Steve suggested that DFDL could simplify its scoping rules, by treating 
all properties on elements, simpleTypes and sequences as if they were set 
with scope "hereOnly"; and giving scope applicability to properties on 
complexType definitions. This may, in particular, simplify DFDL tooling. 
This might require users to introduce an element and complexType 
definition into the middle of a structure purely for scoping purposes, 
however Mike suggested we allow scope-applicable properties to also be set 
on (named) model group definitions. This enables a model group definition 
and associated group reference to be used in the middle of a structure, 
instead of an element and complexType, which does not affect the infoset. 
Steve and Mike to think further on this subject, it sounds a promising 
simplification.

4. Other business
Simplification: Steve asked Mike to consider whether we could remove the 
occursSeparator property. If an array has a separator, this can be 
achieved by wrapping the array in a sequence, which we already have to do 
if the array (as a whole) has an initiator or terminator. This provides a 
consistent rule - array has markup, array needs sequence wrapper. Mike 
agreed this was a desired simplification. Steve to write up proposal.
Simplification: Steve asked Mike whether it would be possible to remove 
the occursStopValue property as it could be considered a terminator of an 
enclosing group. Mike pointed out that if the stop value is literal value 
that's fine, but not when it's logical value. Agreed that we could remove 
occursStopKind and always treat occursStopValue as logical value. Steve to 
write up proposal. 
Steve has distributed a new revision of the Decimal supplement, and is 
looking for feedback.
Next weeks meeting should include a discussion of the Decimal supplement, 
and of Mike's work on calculated values.

Meeting closed, 17:15 GMT


Ian Parkinson
WebSphere ESB Development
Mail Point 211, Hursley Park, Hursley, Winchester, SO21 2JN, UK





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/20080403/283f39be/attachment.html 


More information about the dfdl-wg mailing list