
1. DFDL Specification status 2 Nils, defaults and unparsing Confirm tables for parsing/unparsing simple types in last call minutes. 2.1 Nils and Defaults for complex elements I have assumed - emptyValueDelimiterPolicy does apply to complex elements. - on parsing a complex element is empty if its children's content is empty. That is the child delimiters may be present. - on unparsing defaulting occurs if a complex item is missing or present present but has no children. Defaulting for complex elements on parsing initiator region content region Logical Value matching Not empty parsed children matching empty A default is specified emptyValueDelimiterPolicy must be initiator or both default value of children empty Not empty Initiator must not be specified parsed children empty empty A default is specified emptyValueDelimiterPolicy must be none or Initiator must not be specified default value of children Defaulting for complex elements on unparsing Logical Value initiator region contains content region contains Missing or present with no children default of all children is empty string emptyValueDelimiterPolicy none empty empty emptyValueDelimiterPolicy initiator or both initiator string default of any child is not empty string initiator string representation of the child default value. a least on child exists initiator string representation of children Examples Defaulting Complex types ONE:one, TWO: TWOONE:twoone; TWOTWO:twotwo; TWOTHREE:twothree, THREE:three <end> In the following TWO is 'empty' (when relevant dfdl properties are set) ONE:one,THREE:three<end> |separatorPolicy='suppressed', emptyValueDelimiterPolicy='none' ONE:one,,THREE:three<end> separatorPolicy='required', emptyValueDelimiterPolicy='none' ONE:one<end> separatorPolicy='suppressed' or 'suppressedAtEnd', emptyValueDelimiterPolicy='none' <end> separatorPolicy='suppressed' or 'suppressedAtEnd', emptyValueDelimiterPolicy='none' ONE:one,TWO:,THREE:three<end> separatorPolicy= don't care , emptyValueDelimiterPolicy='initiator' ONE:one,TWO:<end> separatorPolicy= 'suppressed' or 'suppressedAtEnd', emptyValueDelimiterPolicy='initiator' ONE:one,TWO:,<end> separatorPosition='postfix' separatorPolicy= 'suppressed' or 'suppressedAtEnd', emptyValueDelimiterPolicy='initiator' *** Should 'postfix' separator be there when 'supressedAtEnd' *** ONE:one,TWO:TWOONE:,THREE:three<end> separatorPolicy= 'suppressed' or 'suppressedAtEnd', (TWO)emptyValueDelimiterPolicy='initiator' (TWOONE)emptyValueDelimiterPolicy='initiator' ONE:one,TWOONE:,THREE:three<end> separatorPolicy= 'suppressed' or 'suppressedAtEnd', (TWO)emptyValueDelimiterPolicy='none' (TWOONE)emptyValueDelimiterPolicy='initiator' *** We should discuss this example. *** 3. Current Actions: Current Actions: No Action 066 Investigate format for defining test cases 25/11:IBM to see if it is possible to publish its test case format. 04/12: no update ... 17/02: IBM is willing in principle to publish the test case format and some of the test cases. May need some time to build a 'compliance suite' 24/03: No progress 03/03: Discussions have been taking place on the subset of tests that will be provided. 10/03: work is progressing 17/03: work is progressing 31/03: work is progressing 14/04: And XML test case format has been defined and is being tested. 21/04. Schema for TDML defined. Need to define how this and the test cases will be made public 084 Check behaviour of dfdl:inputValueCalc and outputValueCalc. 14/04: no prorgess 21/04: no progress 085 ALL: publicize Public comments phase to ensure a good review.. 14/04: see minutes 21/04: Press release, OMG and other standards bodies. 086 AP: Nils and Defaults during unparsing - update table 31/03: TK to documetn use cases for parsing 14/04: Investigate new property to control empty string behaviour. 21/04: After investigation a new property is not required. New rules developed and tables updated. Need examples of complexTypes to confirm tables apply. Review Nils, defaulting spec section. 088 define semantics of choiceKind 'fixedLength' 31/03: TK to provide definition of calculable length. Investigate PL/I varchars and Cobol occurs dependingon. 14/04Tim had distributed a document starting the definition of calculable length for the longest choice member. Alan had done some investigation of COBOL occurs depending on and when used in the working section of a program then the maximum storage was reserved but when used in the linkage section the dependent number was uses. We need to understand how the WMB COBOL importer deals with ODO. 21/04: Need to define 'calculable length' and WMB importer ODO behaviour. 090 Semantics of separatorPolicy 14/04: Discussion on detecting when complex types should be defaulted. Examples needed. 21/04: Complex defaulting examples needed for new rules Regards Alan Powell Development - MQSeries, Message Broker, ESB IBM Software Group, Application and Integration Middleware Software ------------------------------------------------------------------------------------------------------------------------------------------- IBM MP211, Hursley Park Hursley, SO21 2JN United Kingdom Phone: +44-1962-815073 e-mail: alan_powell@uk.ibm.com 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