
Open Grid Forum: Data Format Description Language Working Group OGF DFDL Working Group Calls, June 23-24 2009 These minutes cover the series of meetings and calls which took place June 23-24 2009 Meeting opened, 14:00 UK Attendees Steve Hanson (IBM) Suman Kalia (IBM) Alan Powell (IBM) Peter Lambros (IBM) Stephanie Fetzer(IBM) Apologies Mike Beckerle (Oco) Agenda: 1. Go through actions Actions updated below Major discussions listed here. Action 026 Envelopes and Payloads Continued discussion of using variables to extract syntax from header but also allowing body to be used stand alone. Use cases expanded to : 1.Input -value of syntax item comes from header and is used in the body 2.Input -value of the syntax item is found in the header and is used in the body but may change if the actual syntax used in the body changes 3.Input - no header. value of syntax item comes from first time used in the body and must be one of a known set and doesn't change. 4.Input - no header, value of syntax item comes from first time used in the body and may be changed if the actual syntax used in a following body changes 5.Output - value of sytnax item set in header infoset and is used throughout in the body 6 Output - no header.the default value syntax item is used throughout in the body We considered adding a 'dynamic' property to defineVariable to show that if unset when first used the value should be taken from the data. However it was felt that this may be unnecessarily complicated. Alternatively allowing syntax properties to be a list satisfies most of the use cases. SH to document. Action 042 Variables. The uses cases for variables refined to Variable markup - set once from document content (typically near start of document) Variable markup - set (possibly multiple times) based on first usage (eg first instance of separator determines separator character used) Values set externally - eg encoding, byteorder Parameterization of global entity - parameter set as fixed value or as expression Envelope/payload - payload markup/discriminator set by value(s) in envelope And the following aspects need to be defined Scoping of defineVariable naming/namespaces - include/import Unparsing Variable Type - enums Multiple setVariables in loops etc SKK had refined his proposal to allow defineVariable at schema, defineFormat and locally which are analogous to Java global static, private static and local variables. SKK also felt it would be difficult for a dfdl editor to show which variables were available at particular elements. However the rest of the group did not think that the extra complication was needed for the defined use cases. It was proposed that defineVariable is at schema level only and are global. (though need to go through uses cases to see if local needed also). Variables are name space qualified Variables can be set multiple times (needed for parameterization) PL to document Action 051 Scoping rules. New lexical scoping rules need to cover How parameterization works Global simple types dfdl;hidden We went through examples of using variables for parameterization and it seemed to hang together although the scope of variables meant that the scope of parameters was different from scoping for properties. To simplify the validation of global simple types it is proposed that there are no dfdl annotaions on simple types. The unit of reuse is a global element. Hidden fields must be defined in a global group declaration. This must be valid but this can be achieved by adding a ref to the same defineFormat as the parent complexType. Tooling could do the 'automatically' when fields are hidden. The MB presentation will be updated to include these proposals. Action Unresolvable choices. It has been agreed to defer unresolvable choices from DFDL V1 Action 052 Discriminator Timing Currently disciminator timing is implictly 'after' which means that a component will be parsed before the discriminator is evaluated. However that means that a parsing failure of the component will cause speculative parsing to backtrack even though the discriminator might have evaluated to true and fixed the point of uncertainty. We need to add a timing property to discriminator so that it can be evaluated before parsing when the content of the component is not needed for the evaluation. Action 053 XPATH position() function Use cases of arrays of existence flags or field lengths would be simplified is there was a position() function <xs:element name="size" type="xs:int" dfdl:lengthKind="explicit" dfdl:length="4"/> <xs:element name="len" type="xs:int" maxOccurs="unbounded" dfdl:occursKind="explicit" dfdl:occursCount="{../size}" dfdl:lengthKind="explicit" dfdl:length="4"/> <xs:element name="image" type="xs:hexBinary" maxOccurs="unbounded" dfdl:occursKind="explicit" dfdl:occursCount="{../size}" dfdl:lengthKind="explicit" dfdl:length="{../len[fn:position()]}"/> This implies that a context is maintained while navigating arrays and the expression is evaluated for every occurrence of a element. Agreed to add poistion() AOB Note: we can only make one call next week Next call 1st July 14:00 UK Scheduled for 2 hours Meeting closed, 16:00 UK Actions raised at this meeting No Action 052 Discriminator timing property 24/06: Need to add timing property to discriminator 053 poistion() function 24/06: agreed to add 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 026 SH: Envelopes and Payloads 08/04: Not discussed explicity, but recursive use of DFDL is tied up with this 22/04: Two aspects. Firstly compositional - do sufficient mechanisms exist to model an envelope with a payload that varies. Secondly markup syntax - this might be defined in the envelope. The second of these is very much tied up with the variable markup action 028, so will be considered there. SH to verify the composition aspect. 29/04: SH and AP working on proposal. related to Action 028 06/05: No progress 06/05: No progress 20/05: No Progress 27/05: Still a number of aspects to be decided. - Compostion - Does the envelope and payload need to be defined in the same schema or should they be dynamically bound at runtime? - Compostion- How is a variable payload specified. Choice or xs:any; New action raised to discuss xs:any - extracting dymanic syntax from data. Covered by action 029 valuecalc. 03/06: Dynamic runtime binding will not be supported. SH investigating use of variables to enable standalone and use in envelope of global element. 09/06: Payload should be specified using a choice rather than xs:any 17/06: SH still working on example using variables 24/06: SH to document how property list satisfies uses cases. 027 SH: Property precedence tables 08/04: Not discussed 22/04: Two things missing from the existing precedence trees. Firstly, does not show alternates (eg, initiator v initiatorkind). Secondly, need a tree per concrete DFDL object (eg, element). SH to update. 29/04: No progress 06/05: SH is updating tables which will be ready for next call 13/05: SH emailed updated version. AP commented.. See minutes for issues and property changes. 20/05: Updated version circulated. Review before next call and be ready for vote. 27/05: Updated version circulated. more comments raised. 03/06: Further updates to clarify 'core'. Also identified missing design for outputMinLength 17/06: Being updated to include outputMinlength 24/06: Table now in maintenance mode. Move to work item 029 MB: valueCalc (output length calculation) 08/04: Not discussed 22/04: Action allocated to MB, this is to complete the work started at the Hursley WG F2F meeting. 29/04: No progress 06/05: MB will have update for next call 13/05: MB will have update for next call 20/05: Some progress. will be circulated this week 27/05: MB circulated proposal and got comments. Will update and review on next call 03/06: Discussed proposal. MB to update dealing with uses cases raised. Options include a new lenghtKind='Reference' to make it easier to distinguish from fixed length case. Or use outputLengthCalc to separate calculation of parsing and unparsing length. 09/06: SH/AP proposal discussed and MB to document 17/06: MB to document proposal. Grammar updated and reviewed. Minor changes needed. 24/06: Grammar description was updated and approved. Need to describe new function. 033 AP/TK: Assert/Discriminator semantics. AP to document. TK to check uses of discriminator besides choice. 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) 03/06: No Progress (lower priority) 09/06: No Progress (lower priority) 24/06: No Progress (lower priority) 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 038 MB: Submit response to OMG RFI for non-XML standardization 22/04: First step is for MB to mail the OGF Data Area chair to say that we want to submit 29/04: MB has been in contact with OMG and will sunbit dfdl. 06/05: MB has prepared response to OMG. Will send DFDL sepc v033 20/05: Response has been sent to OMG based on v034 27/05: Awaiting response from OMG. 03/06: On hold 042 MB: Complete variable specification. To include how properties such as encoding can be set externally. Must be a known variable name. 06/05: No progress 20/05: AP to make proposal 27/05: MB proposed differentiating between input and output variables to avoid unnecessary evaluations during parse and unparse. Need to complete rest of variable specification. 03/06: Pointed out problem of declaring variables input or output when used to define syntax which is used both times. MB to update proposal to include how variables are set externally and how specific properties such as encoding are set. 09/06: SKK to use example to dicument his proposal 17/06: SKK to refine proposal. Other aspects need progress. 24/06: SKK proposal discussed but not accepted. PL to document simpler proposal. 044 13/05: Bidi 20/05: AP: will check what IBM products support. 27/05: Bidi is supported so will be needed in dfdl v1 03/06: No Progress 09/06: No Progress 24/06: 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 049 20/05 AP Built-in specification description and schemas 03/06: not discussed 24/06: 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 052 Discriminator timing property 24/06: Need to add timing property to discriminator 053 poistion() function 24/06: agreed to add Closed actions: 028 SH: Variable markup 08/04: Discussed briefly at end of call, IBM to see whether there any use cases that require recursive use of DFDL. 15/04: Use case was distributed and will be discussed on next call. 22/04: The use case in question is EDI where the terminating markup for the payload segments is defined in the ISA envelope segment. The markup is modelled as an element of simple type where the allowable markup values are defined as enums on the type. But we need to handle two cases - firstly where the envelope is present, so the value used by the payload is taken from the envelope. Secondly where only the payload is present. Here we need a way of scanning for all the enum values, and adopting the one we actually find, when parsing. And using a default when unparsing. SH to explore use of a DFDL variable, where the variable has a default, but also has a type that is the same as the markup element - that way we get to use the enums without defining everything twice. 29/04: SH and AP working on proposal. 06/05: No progress 13/05: No progress 20/05: No Progress 27/05: Progress made and will tie to other actions 03/06: General desire to avoid having to introduce variable markup in V1. Proposed having a property to control case behaviour of all syntax (initiator, terminator,separator) rather than separate ones for each. Similar property to 'values' (textZeroRep, textBooleanTrueRep, etc). and allowing lists of values. SH need to solve remaining uses case as described in action 026 09/06: SH proposal discussed. ICU questions to be researched 17/06: ICU is always case insensitive. SH to update proposal. 24/06 Recursive use of dfdl will not be supported in dfdl v1 (except for prefixlengthType). Closed. 050 27/05: xs:any currently limited to initiated text element. Is this sufficient? Should xs:any in its current form be deferred? 03/06: not discussed 09/06: Proposed dropping xs:any support 17:06: Agreed to defer from DFDL v1 subject to final checks that IBM do not need function. 24/06: Not needed by IBM. Closed Work items: No Item target version status 003 Variables - ??, 2008 (Mike) 005 Improvements on property descriptions - ??, 2008 (All - split TBD) 006 Envelopes and Payloads (Steve) - Apr 30, 2008 007 (from draft 32) valueCalc (Mike) - ??, 2008 mostly complete 008 (from draft 32) Property precedence for writing (Steve) - under review 009 (from draft 32) Variable markup (Steve) - Mar 31, 2008 proposal needs writing up 011 (from draft 32) How speculative parsing works (combining choice and variable-occurence - currently these are separate) ??, 2008 (IBM) in progress 012 (from draft 32) Reordering the properties discussion: move representation earlier, improve flow of topics ??, 2008 (Alan) not started 027 Calendar schemes 034 032 Floating components 033 Changes from action 020 and 027 - renaming properties etc 035 Remove unorderedInitiated, add initiated content (a041) 036 Update dfdl schema with change properties (Suman) 037 Infoset text codepage 038 Improve length section 039 Change scoping of simple types (A 046) 040 Document outputMinLength (A027) 042 mapping of the dfdl infoset to XDM Not required for V1 specification 043 Document infoset data types (A043) 044 non-format scoping rules (A047) 045 Defer unresolvable choice. 046 Document properties for syntax ignore case, etc alternative to variable markup 047 Remove xs:any 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