Minutes for OGF DFDL Working Group Call, October-14-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@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
participants (1)
-
Alan Powell