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