[DFDL-WG] Minutes for OGF DFDL Working Group Call, October-14-2009

Alan Powell alan_powell at uk.ibm.com
Thu Oct 15 05:19:21 CDT 2009


Open Grid Forum: Data Format Description Language Working Group

OGF DFDL Working Group Call, October-14-2009

Attendees
Suman Kalia (IBM)
Steve Hanson (IBM)
Mike Beckerle (Oco)
Peter Lambros (IBM)
Steve Marting (Progeny)

Apologies
Alan Powell (IBM)


1. Scoping Rules 
Continued the discussion on scopig rules. Mike and Steve H have returned 
comments on Alan's scoping document draft.

For the benefit of Suman & Steve M, the rationale behind the revised rules 
was explained.

Suman was concerned that we no longer supported a use case, where a DFDL 
author creates in an xsd a reusable complex type which has local element 
children that are silent or incomplete with respect to DFDL properties, 
then includes/imports that into other DFDL xsds that supply the remaining 
DFDL properties. The old scoping rules would have allowed the local 
element children to pick up in-scope properties. Is this a major use case? 
Concensus was that it was not.  The majority of xsds will not allow much 
if any customisation, and those that do can handle it via DFDL variables 
(eg, encoding) or via DFDL properties that permit multiple entries (eg, 
separator). 

The behaviour of XSDL with respect to global default attributes was 
confirmed. They only act on the objects in the same xsd. An 
included/imported object does not pick up the parent xsd's global default 
attributes. But it was noted that there was an exception to this rule, the 
so-called 'chameleon namespace' scenario, where if an xsd is silent about 
its namespace, a parent with a target namespace can import it and impose 
that namespace on the imported xsds objects.

In the spirit of this, Mike proposed a way of supporting Suman's use case, 
where a new DFDL attribute is provided that allows an xsd to decide 
whether it gets its defaults from a local xsd's dfdl:format or from parent 
xsd's dfdl:format. This should work ok, but it was agreed not to add this 
to DFDL 1.0, and to keep for a future version. (Mike's write up is at the 
foot of these minutes)

Whether to allow dfdl:ref to take a variable was also discussed, currently 
it does not. 

Agreed that Steve H's type oriented approach to DFDL properties would not 
be adopted for DFDL 1.0.

Actions 051 & 060 updated below.


2. Binary/Boolean 
For a  Boolean with representation='binary' you can specify separate 
values for true and false. However you cannot say false = 0 and true = 
non-zero. This facility is needed by some formats, eg, ASN.1. 

Discussed alternative solutions:
a) Use an entity to indicate any non-zero value (eg, %anz;)
b) Use a separate property to control this
c) Use empty string to indicate any value other than the associated false 
value
d) Use strict/lax processing to control this.

Decided that c) was the neatest solution. Applies to 
dfdl:binaryBooleanTrueRep only. Empty string means any value other than 
dfdl:binaryBooleanFalseRep.

Work item added for draft 37.

3. numberBase and text numbers  
We didn't properly consider dfdl:numberBase when defining text number 
representation properties as they mostly assume base 10.

Agreed that the use of bases 2, 8 and 16 would invariably be used for 
integers only, without signs, decimal separators, exponents and other 
formatting options.  That rules out the use of several properties, which 
is good. But you still need a dfdl:textNumberFormat to define the pattern 
for an integer, which seems overkill.  The numberBase property probably 
needs moving from dfdl:textNumberFormat altogether, and placing outside.

New action 061 raised to come up with a proposal for this refactoring.


4. Validating min/maxOccurs
The spec in a couple of places clearly states that violation of 
min/maxOccurs constraints are processing errors, not validation errors. 
Reason being that both properties get dragged into parsing and unparsing. 
However, for values of dfdl:occursCountKind other than 'fixed', maxOccurs 
is not actually used, so perhaps it is better to treat maxOccurs 
violations under those circumstances as a validation error. Violations of 
maxOccurs when dfdl:occursCountKind='fixed' is still a processing error. 
This was agreed.

Work item added for draft 37.


5. Resolving points of uncertainty and parsing rules 
Alan & Steve H spent some time discussing the uncertainty document and 
Alan has sent out a revision for review.  Comments welcome, especially on 
the listed rules for resolving uncertainty.

Steve H wants to ensure that the rules for resolving uncertainty do not 
preclude the use of 'on-demand' parsing as this is a valuable performance 
and memory technique for implementations. Steve thinks that the current 
rules should be ok. And there will always be some formats to which 
on-demand parsing can't be applied well.

A problem was spotted with uncertainty and arrays. If an element has 
minOccurs not equal to maxOccurs, but greater than zero (say x), then the 
point of uncertainty does not actually start until index x+1.  What does 
it mean to place a discriminator on that element (or one of its children 
if complex) ?  The rules as worded mean that for indices less than x+1, 
the discriminator might actually be used to resolve a higher point of 
uncertainty. Which is clearly wrong. 

Mike agreed that the full solution to this is part of existing action 033 
which is looking at the need to scope indicators on discriminators.  All 
agreed that scope indicators should be avoided if at all possible. 

A proposal was put forward for handling this specific array scenario.  As 
well as states 'certain' and 'uncertain' add the concept of a 'possibly 
uncertain' state (better name welcome). This state is entered for the 
array element described above when processing indices 1 through x. Any 
discriminator evaluated in this state can result in false and cause 
backtracking, but if it evaluates to true it does not resolve anything. 
That can only happen in the 'uncertain' state.

Actions 33 and 45 updated.


6. Comments on draft 036 
Please review the latest draft, the revision section describes the 
changes, plus change marking is on.

Agreed that the removal of dfdl:lengthKind = 'implicit' from text numbers 
and calendars was a good idea. It does make the easiest cases slightly 
less convenient to model, but avoids numerous issues with the hard cases. 
Disallowing now means we always have the option to add it back at a future 
date.


7. Extensibility
Steve H asked whether the DFDL language needs to be extended to handle 
'extensibility' scenarios, which he encounters in the real world. 

For example, an industry standard format has regular revisions. The format 
allows users to add their own extensions. When a revision occurs, a user 
wants to apply the revision but retain his extensions in the simplest way 
possible.

The XSDL mechanisms for doing this are substitution groups and wildcards.

DFDL language supports extensibility today. User can declare global 
elements in a separate xsd, include that xsd in the core model, and add 
element references into the core model at the appropriate point. 
Alternatively, user can additionally declare a global group in his 
separate xsd, add the element references in there, and just add a group 
reference to the core model. Even less invasive, the core model can ship 
with a dummy xsd containing an empty global group, and ship with a group 
reference already in place, in which case the user just swaps the dummy 
xsd for his own xsd.

Agreed that this should handle the use cases Steve H sees. No changes 
needed in DFDL 1.0.


Next call 21 October 13:00 UK

Meeting closed, 15:00

Next action: 062
Actions raised at this meeting

No
Action 
061
Refactor dfdl:textNumberFormat to remove dfdl:numberBase. 
14/10: Base 2, 8, 16 numbers are invariably integers without formatting, 
use of pattern etc is overkill


Current Actions:
No
Action 
012
AP/SH: Update decimalCalendarScheme
10/9: Not allocated yet
17/9: No update
24/9: Add calendar binary formats to actions
22/10: No progress
16/1: proposal distributed and discussed. Will be redistributed
21/1: add locale, 
04/02: changed from locale to specific properties
18/2: Need more investigation of ICU strict/lax behaviour.
08/04: Not discussed
22/04: AP to complete asap once the ICU strict/lax behaviour is 
understood. 
29/04: No progress
06/05: No progress
13/05: Calendar has been added to latest spec version v034 but still a few 
details to clarify.
20/05: No Progress
27/05: No Progress
03/06: No Progress (low priority)
09/06: No Progress (low priority)
17/06: SH to check ICU code for lax calendar behaviour
24/06: no progress
01/07: no progress
15/07: no progress
29/07: no progress
05/08: no progress
12/08: no progress
19/08: Inconsistencies are being found in ICU behaviour so Calendars need 
reviewing again.
26/08: Specific three character short time zones may not be  maintained 
during round tripping when there is more than one short form for a time 
zone offset. Because dates and datetimes in the infoset only maintain a 
time zone offset so on unparsing it isn't possible to say which short form 
will be selected for a particular offset when there is more than one 
possible. Need to document.
09/09: no progress
16/09: no progress
30/09: no progress
07/10: no progress
14/10: no progress
033
MB: Need for scope indicator on discriminator
08/04: In progress within IBM
22/04: Waiting for TK to return from leave to complete. 
29/04: TK has sent examples shown need for discriminators beyond choice. 
Agreed. MB to respond to TK 
06/05: Discussed suggestion of adding type indicator to discriminator. MB 
to provide examples.
15/03: Semantic documented in v034. MB to provide examples of need for 
scope indicator on discriminator
20/05: MB to provide examples of need for scope indicator on discriminator 
(but lower priority than action 029)
27/05: No Progress (lower priority)
....
19/08: No Progress (lower priority)
26/08: No Progress (lower priority)
09/09: no progress
16/09: no progress
30/09: no progress
07/10: no progress
14/10: Action re-titled and assigned to Mike B
037
All: Approach for XML Schema 1.0 UPA checks.
22/04: Several non-XML models, when expressed in their most obvious DFDL 
Schema form, would fail XML Schema 1.0 Unique Particle Attribution checks 
that police model ambiguity.  And even re-jigging the model sometimes 
fails to fix this. Note this is equally applicable to XMl Schema 1.1 and 
1.0. While the DFDL parser/unparser can happily resolve the ambiguities, 
the issue is one of definition. If an XSD editor that implements UPA 
checks is used to create DFDL Schema, then errors will be flagged. DFDL 
may have to adopt the position that: 
a)DFDL parser/unparser will not implement some/all UPA checks (exact 
checks tbd)
b) XML Schema editors that implement UPA checks will not be suitable for 
all DFDL models
c) If DFDL annotations are removed, the resulting pure XSD will not always 
be valid (ie, the equivalent XML is ambiguous and can't be modelled by XML 
Schema 1.0)
Ongoing in case another solution can be found.
29/04: Will ask DG and S Gao for opinion before closing
06/05: Discussed S Gao email and suggestions. Decided need to review all 
XML UPA rules and decide which apply to dfdl.
20/05: SH or SKK to investigate
27/05: No Progress
03/06: The concern is that some dfdl schemas will fail UPA check when 
validation is turned on or when editted using tooling that enforces UPA 
checks. Renaming fields will resolve some/most issues. Need documentation 
that  describes issue and best practice.
17/06: no change
24/06: no change
01/07: no prgress
15/07: No Progress (lower priority)
29/07: No Progress (lower priority)
05/08: No Progress (lower priority)
12/08: No Progress (lower priority)
19/08: Clarify that this action is to go through the XML UPA checks to 
assess impact on dfdl schemas and advice best practice. Name clashes is 
just one example. SH or SKK
26/08: No Progress (lower priority)
09/09: no progress
16/09: no progress
30/09: no progress
07/10: no progress
14/10: no progress
045
20/05 AP: Speculative Parsing
27/05: Psuedo code has been circulated. Review for next call
03/06: Comments received and will be incorporated
09/06: Progress but not discussed
17/06: Discussed briefly
24/06: No Progress
01/07: No Progress
15/07: No progress. MB not happy with the way the algorithm is documented, 
need to find a better way.
29/07: No Progress 
05/08: No Progress. Will document behaviour as a set of rules.
12/08: No Progress 
19/08: No Progress 
26/08: No Progress 
09/09: no progress
16/09: no progress
30/09: AP distributed proposal and others commented. Brief discussion AP 
to incorporate update and reissue
07/10: Updated proposal was discussed.Comments will be incorporated into 
the next version.
14/10: Alan to update proposal to include array scenario where minOccurs > 
0
049
20/05 AP Built-in specification description and schemas
03/06: not discussed
24/06: No Progress
24/06: No Progress (hope to get these from test cases)
15/07: No progress. Once available, the examples in the spec should use 
the dfdl:defineFormat annotations they provide.
.....
19/08: No Progress (lower priority)
26/08: No Progress (lower priority)
09/09: no progress
30/09: no progress
07/10: no progress
14/10: no progress
051
Scoping rules.
MB: to document change to scoping rules to satisfy implementation concerns
17/06: MB and SH proposals discussed. Needs further discussion
24/06: AP to update presentation with latest proosal
24/06: AP had updated presentation. MB to review
08/07: Discussed at length. Simple types will now take annotations. 
Variables will be used for parameters.
15/07: No further progress. Needs final write up.
29/07: No Progress
05/08: No Progress 
12/08: No Progress 
19/08: AP will document new syntax rules.
26/08: No Progress 
09/09: AP has documented new scoping rules. Not discussed
16/09: Not disussed. AP to update element reference examples
30/09: Significant dissatisfaction with proposed new rules. New proposal 
developed during call. AP to document.
07/10: New proposal was refind. Details in minutes.
14/10: Discussed at length. Details in minutes. 
054
ICU DecimalNumber/ Calendar behaviour
15/07: No progress
29/07: No Progress.
05/08: No Progress. This action is to discover and document ICU behaviour. 
DFDL will do whatever ICU does.
12/08: No Progress 
19/09: More examples of inconsistent behaviour discovered
09/09: no progress
16/09: no progress
30/09: no progress
07/10: no progress
14/10: no progress
056
resolve lenghtUnit=bits including fillbytes
12/08: No Progress
19/08: No Progress
26/08: No Progress 
09/09: no progress
30/09: no progress
07/10: no progress
14/10: no progress
059
9/9: define how encoding,  byteorder and floating point format externally
16/09: no progress
07/10: no progress
14/10: no progress
061
Refactor dfdl:textNumberFormat to remove dfdl:numberBase. 
14/10: Base 2, 8, 16 numbers are invariably integers without formatting, 
use of pattern etc is overkill

Closed actions:

060
Should dfdl become more type oriented and split dfdl:properties between 
element and simpleType/complexType
14/10: Closed. No. 

Work items:
No
Item
target version
status
005
Improvements on property descriptions 

not started
011
How speculative parsing works (combining choice and variable-occurence - 
currently these are separate) (from action 045)

awaiting completion of actions 045  
012
Reordering the properties discussion: move representation earlier, improve 
flow of topics 

not started 
033
Numeric data - what physical reps are allowed for what logical types (from 
action 020)
037
ensure all behaviour documented
036
Update dfdl schema with change properties 
ongoing

038
Improve length section including bit handling

some improvement in 036
042
Mapping of the DFDL infoset to XDM 
none
not required for V1 specification
051
Revised scoping rules (from action 051)
037
awaiting completion of action 051
058
textPadCharacter %#rxx limitation and split to textxxxxPadCharacter
037

059
limit terminatorCanBeMissing to last element in schema. Ignore elsewhere.
037

060
New empty string semantic for dfdl:binaryBooleanTrueRep
037

061
Change maxOccurs violations from processing error to validation error (if 
not 'fixed')
037


ã Copyright IBM Corp. 1998, 2007 All Rights Reserved


Alan Powell

 MP 211, IBM UK Labs, Hursley,  Winchester, SO21 2JN, England
 Notes Id: Alan Powell/UK/IBM     email: alan_powell at uk.ibm.com 
 Tel: +44 (0)1962 815073                  Fax: +44 (0)1962 816898






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/20091015/d92a9f50/attachment-0001.html 


More information about the dfdl-wg mailing list