dfdl-wg
Threads by month
- ----- 2025 -----
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
July 2010
- 5 participants
- 17 discussions
1. Current Actions
2 Nils and Defaults.
Review draft v9 (to be sent soon)
3. using textStringPadCharacter with charRef '%#r' on multi-byte encoding
Not discussed
textStringPadCharacter
DFDL String literal
The padding character or byte value that is used when justifying or
trimming text elements.
A pad character can be specified using DFDL entities.
A pad byte value must be specified using the %#r entity.
DFDL validation rules
- if a pad byte value is specified when lengthUnits='characters' then the
encoding must be a fixed-width encoding.
- if a pad character is specified when lengthUnits='bytes' then the pad
character must be a single-byte character.
If a pad byte value is specified when lengthUnits='characters' then
padding and trimming must be applied
using an array of N pad byte values, where N is the width of a character
in the fixed-width encoding.
Annotation: dfdl:element, dfdl:simpleType
Would adding fillByte to dfdl:padChar enumeration make it clearer.
padChar is a pad character (%#r not allowed)
fillByte is a fill byte
4. nilIndicatorPath and nilIndicatorIndex properties
These properties seem a bit of an anomaly. Tim has suggested they can be
simplified.
Tim had emaled Mike with a proposal and Steve had responded with 3
alternatives
1) Leave things as they are, perhaps renaming 'nilIndicator' to
'indicator'
2) Collapse nilIndicatorPath and nilIndicatorIndex to a single property.
It means the path is repeated, but it makes nils consistent with length
and occurs. For all, you can always use a string variable to hold the
constant part of the path and concatenate with the index. And if we
improve usability in a future DFDL release, we would improve it for nils,
lengths and occurs at the same time.
3) Drop the properties for 1.0 altogether on the grounds that it is a rare
case. I've never seen such a format, but we know Mike has.
Not discussed.
5. Alignment enumerations when dfdl:lengthUnits = 'bits'
When alignmentUnits='bits', the rule that alignment must be 1,2,4,8 etc or
multiple of 2 looks rather hard to justify.
We should either
a) remove the rule entirely and allow any postiive integer > 1 or
b) make the rule apply only when alignmentUnits='bytes'
6. Semantics of 'fixed'
7. Clarify the specification of error reporting from a DFDL processor
- section 2.3 needs to be updated
8 Asserts and discriminators
- specify the scope of forward references. Must be downward-only. The
expression must be resolvable by the time the component on which it is
positioned goes out of scope - otherwise it is a processing error.
9 Expressions
Discuss error behaviour when evaluating an expression in various contexts
- All properties:
wrong type returned : schema definition error
exception when evaluating expression : schema definition error
referenced variables/paths not available : schema definition error
- Properties which allow a forward reference
referenced variables/paths not available : no error. DFDL processor
continues processing until the expression result is available, then acts
on the result.
10. Grammar for DFDL expression
- currently allows multiple predicates on a single expression. Sounds as
if this was unintended.
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
05/05: Work still progressing
12/05: Work still progressing
02/06: Work still progressing on technical and legal considerations
16/06: work continues
23/06: work continues
30/06: work continues
07/07: work continues
085
ALL: publicize Public comments phase to ensure a good review..
14/04: see minutes
21/04: Press release, OMG and other standards bodies.
05/05: Alan and Steve H have contacted other standards bodies. Will ask
them to add comments on spec
15/05: still no public comments
02/06: No public comments
16/06: Public comments period has ended with no external comments. Alan
had posted changes made in draft 041. Steve suggested send a note to the
WG highlighting these changes. Steve also suggested requesting an
extension as other IBM groups may review. We discussed whether this was
necessary as changes will need to be made during the implementation phase
anyway. Alan to ask OGF what the process is for changes post public
comment.
23/06: Still no comments. Alan will contact OGF to understand the rest of
the process.
30/06: Alan has emailed Joel asking what the process is now public comment
period is over andcan we update the published version with WG updates. No
response yet.
07/07: No response. Alan will chase up
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.
05/05: Discussed defaulting complex elements. Tables updated but need to
add terminator.
SH; to confirm WMD behaviour when infoset item has no value on unparsing
Need to describe defaulting choices.
15/05: More discussion. Alan updating sections
26/05: Discussed draft updates. Stephanie to confirm asserts do not make
an element required.
Alan will update draft.. All: review rest of draft.
02/06: Alan updated description. Please review.
Discussed Stephanie's example using discriminators. Decided no changes
needed.
16/05: went through Steves comments. Steve to update draft.
23/06: Steve's updates to the rules discussed. See minutes. Rest of
document needs updating.
30/06: Discussed Alans updates. Some corrections. Alan will send out
updated copy for review before next call.
07/07: Discussed Alan updates and Tim and Steve's comments. Still some
corrections and updates.
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.
05/05: TK: Still need definition of calculable length.
SKK: WMB COBOL imported behaviour with ODO
15/05: Suman sent an expmle of an imported Cobol ODo which suggested that
the maximum space was reserved. He will extend the example.
02/06: no progress
16/06: no progress
23/06: no progress
30/06: Alan looked at Tim's description of calculable length and suggested
that that real use case may be much simpler. If real use case is COBOL and
C importers then it would be cleaner to require the 'fixed length' to be
specified on the enclosing complex element and remove choiceKind 'fixed
length'. Ask Suman is COBOL and C importers can be enhance to provide
length on cpmplex element.
07/07: Steve had proposed 5 possible approaches to supporting main use
case.
i) Change the importer to add a parent element for each group. Con: This
changes the logical model by inserting an extra level.
ii) Allow dfdl:length to be carried on embedded xs:choice (along with
dfdl:lengthUnits & dfdl:lengthKind).
iii) New dfdl:choiceLength property to be carried on embedded xs:choice
(always bytes).
iv) dfdl:choiceKind as today. Con: length from TD model is lost and must
be recalculated.
v) dfdl:choiceKind but with limitations to make the calculation easier.
Con: length from TD model is lost and must be recalculated.
Agreed a modified version of iii)
dfdl:choiceKind becomes dfdl:choiceLengthKind with emuns 'implicit'
(length of selected branch) and 'explicit' ( length specified by
dfd;choiceLength)
New property dfdl:choiceLength
096
AP: using textStringPadCharacter with charRef '%#r' on multi-byte encoding
07/07: not discussed
097
nilIndicatorPath and nilIndicatorIndex properties
07/07: Tim had emaled Mike with a proposal and Steve had responded with 3
alternatives
1) Leave things as they are, perhaps renaming 'nilIndicator' to
'indicator'
2) Collapse nilIndicatorPath and nilIndicatorIndex to a single property.
It means the path is repeated, but it makes nils consistent with length
and occurs. For all, you can always use a string variable to hold the
constant part of the path and concatenate with the index. And if we
improve usability in a future DFDL release, we would improve it for nils,
lengths and occurs at the same time.
3) Drop the properties for 1.0 altogether on the grounds that it is a rare
case. I've never seen such a format, but we know Mike has.
Not discussed.
099
Splitting the specification in simpler sections.
07/07: Steve sent a proposal but not discussed. Alan will arrange a
separate call.
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(a)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
1
0
Open Grid Forum: Data Format Description Language Working Group
OGF DFDL Working Group Call, July 07-2010
Attendees
Steve Hanson (IBM)
Alan Powell (IBM)
Stephanie Fetzer (IBM)
Tim Kimber(IBM)
Suman Kalia (IBM)
Apologies
Mike Beckerle (Oco)
1. Current Actions
Updated below
2 Nils and Defaults.
Discussed Alan updates and Tim and Steve's comments. Still some
corrections and updates. Needs to have a introductory paragraph.
3 DFDL property types and other issues.
Not discussed
Tim has proposed more specific types for some properties. In particular
separating the different kinds of entities.
- Modify the meaning and usage of the type 'DFDL String Literal' and
modify the remainder of the specification accordingly
- Improve the description of DFDL entities to avoid confusion over the
intended usage of raw byte values.
- Clarify the standard sentence about forward references in DFDL
expressions - the current text implied that the restrictions only applied
to the unparser.
On parsing: No forward references allow for expressions that provide
property values. Asserts and discriminators may have downward references
(need to be defined)
and expression must be evaluated by the time the element has been
processed.
On unparsing: outputValueCalc may have a forward reference.
1.1 DFDL Properties
Properties on DFDL annotations may be one or more of the following types
· DFDL string literal
The property value is a string that represents a sequence of literal bytes
or characters which appear in the data stream.
· List of DFDL string literals
The property value is a space-separated list of DFDL string literals. When
parsing, if more than one string literal in the list matches the portion
of the
data stream being evaluated then the longest matching string literal in
the list must be used.
When unparsing, the first string literal in the list must be used.
· DFDL expression
The property value is an DFDL subset XPath 2.0 expression that returns a
value derived from other property values and/or from the DFDL infoset.
· DFDL regular expression
The property value is a regular expression that can be used as a pattern
to calculate the length of an element by applying that pattern to the
sequence
of literal bytes or characters which appear in the data stream.
· Enumeration
The property value is one of the allowed values listed in the property
description.
· Logical Value Simple Type
The property value is a string that describes a logical value. The type of
the logical value is one of the XML Schema simple types.
· QName
The property value is an XML Qualified Name as specified in ?Namespaces in
XML ?.
Identify which types can be a list or Union
The property value is a space-separated list. When parsing, if more than
one string literal in the list matches the portion of the data stream
being evaluated then the longest matching string literal in the list must
be used.
When unparsing, the first value in the list must be used.
1.1.1.1 DFDL Entities in String Literals
XML entities should not be listed as they are valid in any property value.
1.1.1.1 Character classes in DFDL String literals
1.1.1.1 Raw byte values in DFDL String Literals
4. using textStringPadCharacter with charRef '%#r' on multi-byte encoding
Not discussed
textStringPadCharacter
DFDL String literal
The padding character or byte value that is used when justifying or
trimming text elements.
A pad character can be specified using DFDL entities.
A pad byte value must be specified using the %#r entity.
DFDL validation rules
- if a pad byte value is specified when lengthUnits='characters' then the
encoding must be a fixed-width encoding.
- if a pad character is specified when lengthUnits='bytes' then the pad
character must be a single-byte character.
If a pad byte value is specified when lengthUnits='characters' then
padding and trimming must be applied
using an array of N pad byte values, where N is the width of a character
in the fixed-width encoding.
Annotation: dfdl:element, dfdl:simpleType
Would adding fillByte to dfdl:padChar enumeration make it clearer.
padChar is a pad character (%#r not allowed)
fillByte is a fill byte
5. nilIndicatorPath and nilIndicatorIndex properties
These properties seem a bit of an anomaly. Tim has suggested they can be
simplified.
Tim had emaled Mike with a proposal and Steve had responded with 3
alternatives
1) Leave things as they are, perhaps renaming 'nilIndicator' to
'indicator'
2) Collapse nilIndicatorPath and nilIndicatorIndex to a single property.
It means the path is repeated, but it makes nils consistent with length
and occurs. For all, you can always use a string variable to hold the
constant part of the path and concatenate with the index. And if we
improve usability in a future DFDL release, we would improve it for nils,
lengths and occurs at the same time.
3) Drop the properties for 1.0 altogether on the grounds that it is a rare
case. I've never seen such a format, but we know Mike has.
Not discussed.
Meeting closed, 17:00
Next call Wednesday 14 July 2010 15:00 UK (10:00 ET)
Next action: 100
Actions raised at this meeting
No
Action
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
05/05: Work still progressing
12/05: Work still progressing
02/06: Work still progressing on technical and legal considerations
16/06: work continues
23/06: work continues
30/06: work continues
07/07: work continues
085
ALL: publicize Public comments phase to ensure a good review..
14/04: see minutes
21/04: Press release, OMG and other standards bodies.
05/05: Alan and Steve H have contacted other standards bodies. Will ask
them to add comments on spec
15/05: still no public comments
02/06: No public comments
16/06: Public comments period has ended with no external comments. Alan
had posted changes made in draft 041. Steve suggested send a note to the
WG highlighting these changes. Steve also suggested requesting an
extension as other IBM groups may review. We discussed whether this was
necessary as changes will need to be made during the implementation phase
anyway. Alan to ask OGF what the process is for changes post public
comment.
23/06: Still no comments. Alan will contact OGF to understand the rest of
the process.
30/06: Alan has emailed Joel asking what the process is now public comment
period is over andcan we update the published version with WG updates. No
response yet.
07/07: No response. Alan will chance up
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.
05/05: Discussed defaulting complex elements. Tables updated but need to
add terminator.
SH; to confirm WMD behaviour when infoset item has no value on unparsing
Need to describe defaulting choices.
15/05: More discussion. Alan updating sections
26/05: Discussed draft updates. Stephanie to confirm asserts do not make
an element required.
Alan will update draft.. All: review rest of draft.
02/06: Alan updated description. Please review.
Discussed Stephanie's example using discriminators. Decided no changes
needed.
16/05: went through Steves comments. Steve to update draft.
23/06: Steve's updates to the rules discussed. See minutes. Rest of
document needs updating.
30/06: Discussed Alans updates. Some corrections. Alan will send out
updated copy for review before next call.
07/07: Discussed Alan updates and Tim and Steve's comments. Still some
corrections and updates.
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.
05/05: TK: Still need definition of calculable length.
SKK: WMB COBOL imported behaviour with ODO
15/05: Suman sent an expmle of an imported Cobol ODo which suggested that
the maximum space was reserved. He will extend the example.
02/06: no progress
16/06: no progress
23/06: no progress
30/06: Alan looked at Tim's description of calculable length and suggested
that that real use case may be much simpler. If real use case is COBOL and
C importers then it would be cleaner to require the 'fixed length' to be
specified on the enclosing complex element and remove choiceKind 'fixed
length'. Ask Suman is COBOL and C importers can be enhance to provide
length on cpmplex element.
07/07: Steve had proposed 5 possible approaches to supporting main use
case.
i) Change the importer to add a parent element for each group. Con: This
changes the logical model by inserting an extra level.
ii) Allow dfdl:length to be carried on embedded xs:choice (along with
dfdl:lengthUnits & dfdl:lengthKind).
iii) New dfdl:choiceLength property to be carried on embedded xs:choice
(always bytes).
iv) dfdl:choiceKind as today. Con: length from TD model is lost and must
be recalculated.
v) dfdl:choiceKind but with limitations to make the calculation easier.
Con: length from TD model is lost and must be recalculated.
Agreed a modified version of iii)
dfdl:choiceKind becomes dfdl:choiceLengthKind with emuns 'implicit'
(length of selected branch) and 'explicit' ( length specified by
dfd;choiceLength)
New property dfdl:choiceLength
096
AP: using textStringPadCharacter with charRef '%#r' on multi-byte encoding
07/07: not discussed
097
nilIndicatorPath and nilIndicatorIndex properties
07/07: Tim had emaled Mike with a proposal and Steve had responded with 3
alternatives
1) Leave things as they are, perhaps renaming 'nilIndicator' to
'indicator'
2) Collapse nilIndicatorPath and nilIndicatorIndex to a single property.
It means the path is repeated, but it makes nils consistent with length
and occurs. For all, you can always use a string variable to hold the
constant part of the path and concatenate with the index. And if we
improve usability in a future DFDL release, we would improve it for nils,
lengths and occurs at the same time.
3) Drop the properties for 1.0 altogether on the grounds that it is a rare
case. I've never seen such a format, but we know Mike has.
Not discussed.
099
Splitting the specification in simpler sections.
07/07: Steve sent a proposal but not discussed. Alan will arrange a
separate call.
Closed actions
No
Action
092
AP: Confirm behaviour of defaulting with various occursCountKinds and
separator policies.
16/06: no progress
23/06: discussed
- whether when number of instances doesn't match specified number of
occurrences is it an error or should missing instances be defaulted?
Decided it is an error.
- defaulting occurs up to minoccurs unless separator policy is required
when default up to maxOccurs and unbounded is an error.
30/06: Decided that defaulting for variable occurrence arrays should
always be to minOccurs. If separatorPolicy is 'required' then just the
separators will be output up to maxOccurs and unbounded is an error.
07/07: Agreed last call's decision. Closed
Work items:
No
Item
target version
status
005
Improvements on property descriptions
not started
012
Reordering the properties discussion: move representation earlier, improve
flow of topics
not started
036
Update dfdl schema with change properties
ongoing
042
Mapping of the DFDL infoset to XDM
none
not required for V1 specification
070
Write DFDL primer
071
Write test cases.
083
Implement RFC2116
105
AP: Describe trailingSkipBytes for delimited formats.
Alan suggested 'dfdl:terminator must be specified and not empty if
dfdl:lengthKind is delimited or endOfParent.'
106
AP: Skip Bytes should allow bits
Ageed that it should be possible to specify bits.
- LSB and TSB renames to dfdl:leadingSkip, dfdl:trailingSkip
- units are specified by dfdl:alignmentUnits.
107
Remove timing from dfdl:assert
108
AP: Confirm behaviour of defaulting with various occursCountKinds and
separator policies.
30/06: Decided that defaulting for variable occurrence arrays should
always be to minOccurs. If separatorPolicy is 'required' then just the
separators will be output up to maxOccurs and unbounded is an error.
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(a)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
2
1

07 Jul '10
All
Latest draft (v7 )of the nils and default document incorporating comments
from this week.
Please send comments before next WG call.
Still having problems with bulleted lists
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(a)uk.ibm.com
----- Forwarded by Alan Powell/UK/IBM on 02/07/2010 15:32 -----
From:
Alan Powell/UK/IBM@IBMGB
To:
dfdl-wg(a)ogf.org
Date:
30/06/2010 13:05
Subject:
[DFDL-WG] Fw: Fw: Fw: Action 086 Nils and Default processing
All
Latest draft of the nils and default document incorporating comments from
last week.
As you will see I have been having problems with bulleted lists in word
which are still not correct but I assume I can fix for the spec.
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(a)uk.ibm.com
----- Forwarded by Alan Powell/UK/IBM on 30/06/2010 13:01 -----
From:
Steve Hanson/UK/IBM
To:
Alan Powell/UK/IBM@IBMGB
Date:
25/06/2010 16:07
Subject:
Fw: [DFDL-WG] Fw: Fw: Action 086 Nils and Default processing
Hi Alan - were you going to take the updates forward, or did you want me
to make some changes first?
Reviewed Steve's updates to the parsing and unparsing rules.
- it might be possible to simplify the nil processing in the rules by
having a defintion up front.
- 'nil indicator set' need a definition
- Discussion about whether 'usNilForDefaults' could be replaced by some
way of defining a literal, out of band value for the default.
- 'value' used when should be 'output value'
- dfdl:emptyValueDelimietrPolicy description should be moved from
defaulting section to initiator section.
- 'text markup' used in section 14.2 of spec
Regards
Steve Hanson
Strategy, Common Transformation & DFDL
Co-Chair, OGF DFDL WG
IBM SWG, Hursley, UK,
smh(a)uk.ibm.com,
tel +44-(0)1962-815848
----- Forwarded by Steve Hanson/UK/IBM on 25/06/2010 16:00 -----
From:
Steve Hanson/UK/IBM
To:
dfdl-wg(a)ogf.org
Date:
23/06/2010 11:18
Subject:
Re: [DFDL-WG] Fw: Fw: Action 086 Nils and Default processing
Here's my latest updates. As discussed I have reworked the 'Nils &
Defaults on parsing/unparsing' sections.
One question was thrown up. On parsing when a required complex element is
missing, we add it to the infoset as long as applying default processing
to its missing children does not cause an error. You will see I have used
the phrase 'Missing element processing is applied to all child elements.'
to cover this. But 'Missing element processing' as now spelled out in the
same section includes 'nillable and empty string' processing when the
child is simple. Does this apply here?
[attachment "dfdl-nils-defaults-v5-SMH.doc" deleted by Alan Powell/UK/IBM]
Regards
Steve Hanson
Strategy, Common Transformation & DFDL
Co-Chair, OGF DFDL WG
IBM SWG, Hursley, UK,
smh(a)uk.ibm.com,
tel +44-(0)1962-815848
From:
Steve Hanson/UK/IBM
To:
Alan Powell/UK/IBM@IBMGB
Cc:
dfdl-wg(a)ogf.org
Date:
16/06/2010 14:40
Subject:
Re: [DFDL-WG] Fw: Fw: Action 086 Nils and Default processing
Hi Alan
I've updated the document and added some comments. Still quite a bit to
discuss.
Regards
Steve Hanson
Strategy, Common Transformation & DFDL
Co-Chair, OGF DFDL WG
IBM SWG, Hursley, UK,
smh(a)uk.ibm.com,
tel +44-(0)1962-815848
From:
Alan Powell/UK/IBM@IBMGB
To:
dfdl-wg(a)ogf.org
Date:
02/06/2010 11:21
Subject:
[DFDL-WG] Fw: Fw: Action 086 Nils and Default processing
Sent by:
dfdl-wg-bounces(a)ogf.org
I have updated based on last weeks call
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(a)uk.ibm.com
----- Forwarded by Alan Powell/UK/IBM on 02/06/2010 11:20 -----
From:
Alan Powell/UK/IBM@IBMGB
To:
dfdl-wg(a)ogf.org
Date:
25/05/2010 17:27
Subject:
[DFDL-WG] Fw: Action 086 Nils and Default processing
All
I have added unparsing and corrected some of the existing information in
this latest version.
I did attempt to write out the dfdl:nilValueDelimiterPolicy and
dfdl:emptyValueDelimiterPolicy options in full but it became unreadable
hence the 'as controlled by' short cut.
Links still don't work
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(a)uk.ibm.com
----- Forwarded by Alan Powell/UK/IBM on 25/05/2010 17:22 -----
From:
Alan Powell/UK/IBM
To:
dfdl-wg(a)ogf.org
Date:
13/05/2010 17:28
Subject:
Action 086 Nils and Default processing
All
Attached is an updated version of the nils and defaults sections of the
specification. I have only completed the parsing section so far which you
should be able to review while I am on vacation. If someone would like to
add the unparsing section that would be great.
Note that the cross references are not correct.
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(a)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
#### dfdl-nils-defaults v2.doc moved to MyAttachments Repository V3.8 (
Link) on 23 May 2010 by Alan Powell.
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
--
dfdl-wg mailing list
dfdl-wg(a)ogf.org
http://www.ogf.org/mailman/listinfo/dfdl-wg
#### dfdl-nils-defaults v3.doc moved to MyAttachments Repository V3.8 (
Link) on 01 June 2010 by Alan Powell.
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
--
dfdl-wg mailing list
dfdl-wg(a)ogf.org
http://www.ogf.org/mailman/listinfo/dfdl-wg
#### dfdl-nils-defaults v4.doc moved to MyAttachments Repository V3.8 (
Link) on 08 June 2010 by Steve Hanson.
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
#### dfdl-nils-defaults-v4-SMH.doc moved to MyAttachments Repository V3.8
(Link) on 22 June 2010 by Steve Hanson.
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
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
[attachment "dfdl-nils-defaults-v6.1.doc" deleted by Alan Powell/UK/IBM]
--
dfdl-wg mailing list
dfdl-wg(a)ogf.org
http://www.ogf.org/mailman/listinfo/dfdl-wg
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
4
3
1. Current Actions
2 Nils and Defaults.
Reviewed Alan's latest draft v7. Please send comments before the call
3 DFDL property types and other issues.
Tim has proposed more specific types for some properties. In particular
separating the different kinds of entities.
- Modify the meaning and usage of the type 'DFDL String Literal' and
modify the remainder of the specification accordingly
- Improve the description of DFDL entities to avoid confusion over the
intended usage of raw byte values.
- Clarify the standard sentence about forward references in DFDL
expressions - the current text implied that the restrictions only applied
to the unparser.
1.1 DFDL Properties
Properties on DFDL annotations may be one or more of the following types
· DFDL string literal
he property value is a string that represents a sequence of
literal bytes or characters which appear in the data stream.
· List of DFDL string literals
The property value is a space-separated list of DFDL string literals. When
parsing, if more than one string literal in the list matches the portion
of the data stream being evaluated then the longest matching string
literal in the list must be used.
When unparsing, the first string literal in the list must be used.
· DFDL expression
The property value is an DFDL subset XPath 2.0 expression that returns a
value derived from other property values and/or from the DFDL infoset.
· DFDL regular expression
The property value is a regular expression that can be used as a pattern
to calculate the length of an element by applying that pattern to the
sequence of literal bytes or characters which appear in the data stream.
· Enumeration
The property value is one of the allowed values listed in the property
description.
· Simple Type
The property value is a string that describes a logical value. The type of
the logical value is one of the XML Schema simple types.
· QName
The property value is an XML Qualified Name as specified in ?Namespaces in
XML ?
1.1.1.1 DFDL Entities in String Literals
1.1.1.1 Character classes in DFDL String literals
1.1.1.1 Raw byte values in DFDL String Literals
4. using textStringPadCharacter with charRef '%#r' on multi-byte encoding
textStringPadCharacter
DFDL String literal
The padding character or byte value that is used when justifying or
trimming text elements.
A pad character can be specified using DFDL entities.
A pad byte value must be specified using the %#r entity.
DFDL validation rules
- if a pad byte value is specified when lengthUnits='characters' then the
encoding must be a fixed-width encoding.
- if a pad character is specified when lengthUnits='bytes' then the pad
character must be a single-byte character.
If a pad byte value is specified when lengthUnits='characters' then
padding and trimming must be applied
using an array of N pad byte values, where N is the width of a character
in the fixed-width encoding.
Annotation: dfdl:element, dfdl:simpleType
Would adding fillByte to dfdl:padChar enumeration make it clearer.
padChar is a pad character (%#r not allowed)
fillByte is a fill byte
5. nilIndicatorPath and nilIndicatorIndex properties
These properties seem a bit of an anomaly. Tim has suggested they can be
simplified.
6 Remove timing from dfdl:assert.
As timing property has been removed from discriminators it is inconsistent
to still have it on assert. Agreed
There was also a discussion about adding a message property to
discriminators which was inconclusive so decided not to change.
7. Splitting the specification in simpler sections.
Concern has been raised that a full DFDL implementation is complicated and
expensive.
A number of reviewer have said that they might implement only part of the
sepcification.
It has been suggested that the WG should look to see if it possible to
split the specification into more
manageable optional sections.
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
05/05: Work still progressing
12/05: Work still progressing
02/06: Work still progressing on technical and legal considerations
16/06: work continues
23/06: work continues
30/06: work continues
085
ALL: publicize Public comments phase to ensure a good review..
14/04: see minutes
21/04: Press release, OMG and other standards bodies.
05/05: Alan and Steve H have contacted other standards bodies. Will ask
them to add comments on spec
15/05: still no public comments
02/06: No public comments
16/06: Public comments period has ended with no external comments. Alan
had posted changes made in draft 041. Steve suggested send a note to the
WG highlighting these changes. Steve also suggested requesting an
extension as other IBM groups may review. We discussed whether this was
necessary as changes will need to be made during the implementation phase
anyway. Alan to ask OGF what the process is for changes post public
comment.
23/06: Still no comments. Alan will contact OGF to understand the rest of
the process.
30/06: Alan has emailed Joel asking what the process is now public comment
period is over andcan we update the published version with WG updates. No
response yet.
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.
05/05: Discussed defaulting complex elements. Tables updated but need to
add terminator.
SH; to confirm WMD behaviour when infoset item has no value on unparsing
Need to describe defaulting choices.
15/05: More discussion. Alan updating sections
26/05: Discussed draft updates. Stephanie to confirm asserts do not make
an element required.
Alan will update draft.. All: review rest of draft.
02/06: Alan updated description. Please review.
Discussed Stephanie's example using discriminators. Decided no changes
needed.
16/05: went through Steves comments. Steve to update draft.
23/06: Steve's updates to the rules discussed. See minutes. Rest of
document needs updating.
30/06: Discussed Alans updates. Some corrections. Alan will send out
updated copy for review before next call.
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.
05/05: TK: Still need definition of calculable length.
SKK: WMB COBOL imported behaviour with ODO
15/05: Suman sent an expmle of an imported Cobol ODo which suggested that
the maximum space was reserved. He will extend the example.
02/06: no progress
16/06: no progress
23/06: no progress
30/06: Alan looked at Tim's description of calculable length and suggested
that that real use case may be much simpler. If real use case is COBOL and
C importers then it would be cleaner to require the 'fixed length' to be
specified on the enclosing complex element and remove choiceKind 'fixed
length'. Ask Suman is COBOL and C importers can be enhance to provide
length on cpmplex element.
092
AP: Confirm behaviour of defaulting with various occursCountKinds and
separator policies.
16/06: no progress
23/06: discussed
- whether when number of instances doesn't match specified number of
occurrences is it an error or should missing instances be defaulted?
Decided it is an error.
- defaulting occurs up to minoccurs unless separator policy is required
when default up to maxOccurs and unbounded is an error.
30/06: Decided that defaulting for variable occurrence arrays should
always be to minOccurs. If separatorPolicy is 'required' then just the
separators will be output up to maxOccurs and unbounded is an error.
096
AP: using textStringPadCharacter with charRef '%#r' on multi-byte encoding
097
nilIndicatorPath and nilIndicatorIndex properties
099
Splitting the specification in simpler sections.
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(a)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
1
0
Forwarding to DFDL WG mailing list in anticipation of discussion on this
week's call.
Regards
Steve Hanson
Strategy, Common Transformation & DFDL
Co-Chair, OGF DFDL WG
IBM SWG, Hursley, UK,
smh(a)uk.ibm.com,
tel +44-(0)1962-815848
----- Forwarded by Steve Hanson/UK/IBM on 06/07/2010 10:46 -----
From:
Steve Hanson/UK/IBM
To:
Suman Kalia/Toronto/IBM@IBMCA
Cc:
Alan Powell/UK/IBM@IBMGB, Tim Kimber/UK/IBM@IBMGB
Date:
05/07/2010 16:06
Subject:
Re: Action : 088 define semantics of choiceKind 'fixedLength'
We discussed this briefly on the last DFDL OGF WG call. The use case we
are trying to support is where a programming language has reserved memory
for the longest branch of the choice.
I would love to be able to drop the dfdl:choiceKind property and instead
use the dfdl:length property of the parent element of the choice, set from
the TD size attribute. In other words, we do nothing special for choices;
- on input we expect dfdl:length bytes or characters, we parse the chosen
branch, if it is short we then skip to the end
- on output we serialise the chosen branch, if it is short we then pad out
to dfdl:length bytes or characters using dfdl:fillByte.
But this has some limitations...
a) It only works with choices that are the content model of a complex type
b) It forces the DFDL modeller to calculate the length of the choice
While b) is not a problem in practice because the importer sets it and not
the user, unfortunately a) is, because the importers today generate a
xs:group ref to a global choice group, so there is nowhere to carry the
dfdl:length property. I think the alternatives are:
i) Change the importer to add a parent element for each group. Con: This
changes the logical model by inserting an extra level.
ii) Allow dfdl:length to be carried on embedded xs:choice (along with
dfdl:lengthUnits & dfdl:lengthKind).
iii) New dfdl:choiceLength property to be carried on embedded xs:choice
(always bytes).
iv) dfdl:choiceKind as today. Con: length from TD model is lost and must
be recalculated.
v) dfdl:choiceKind but with limitations to make the calculation easier.
Con: length from TD model is lost and must be recalculated.
The DFDL bottom-up 'model the data' principle would point at i) but there
are compatibility issues with existing uses of the importer. That leaves
iii) and v) as main contenders. It seems a real shame to throw away the
length that the TD model has calculated, so I think we should discuss
iii).
Regards
Steve Hanson
Strategy, Common Transformation & DFDL
Co-Chair, OGF DFDL WG
IBM SWG, Hursley, UK,
smh(a)uk.ibm.com,
tel +44-(0)1962-815848
From:
Suman Kalia/Toronto/IBM@IBMCA
To:
Alan Powell/UK/IBM@IBMGB, Steve Hanson/UK/IBM@IBMGB, Tim
Kimber/UK/IBM@IBMGB
Date:
12/05/2010 16:25
Subject:
Re: Action : 088 define semantics of choiceKind 'fixedLength'
See the updated contentSize() function in the attached mxsd file. It takes
the largest size value for the choice branch; in this case element x of
size 20.
01 A.
05 b pic 9(3).
05 c occurs 1 to 10 times depending on b.
10 x pic x(20).
10 y redefines x.
20 d pic x(5).
20 e pic 9(3).
<?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="
http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="A">
<xsd:sequence>
<xsd:element name="b">
<xsd:annotation>
<xsd:appinfo source="WMQI_APPINFO">
<cwfInclRep messageSetDefaultRep="Binary1">
<cwfSimpleRep accessor="readWrite" addrUnit="byte"
alignment="byte" attributeInBit="false" contentSize="3" offset="0"
signFormat="trailing" signed="false" size="3"
typeName="MRCWFExternalDecimalRep" width="3"/>
</cwfInclRep>
</xsd:appinfo>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:short">
<xsd:minInclusive value="0"/>
<xsd:maxInclusive value="999"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element maxOccurs="10" minOccurs="1" name="c" type="A_c">
<xsd:annotation>
<xsd:appinfo source="http://www.wsadie.com/appinfo">
<dependingOn>/0/A;XSDComplexTypeDefinition/XSDParticle/XSDModelGroup/XSDParticle/b;XSDElementDeclaration</dependingOn>
</xsd:appinfo>
<xsd:appinfo source="WMQI_APPINFO">
<cwfInclRep messageSetDefaultRep="Binary1"
repeatRef="/0/A;XSDComplexTypeDefinition/XSDParticle/XSDModelGroup/XSDParticle/b;XSDElementDeclaration">
<cwfAggrRep accessor="readWrite" attributeInBit="false"
contentSize="mpy(20,val(1,1))" offset="3" size="200">
<ArrayTD_arrayDescr alignmentKind="byte" lowerBound="1"
stride="20" strideInBit="false" upperBound="val(1,1)"/>
</cwfAggrRep>
</cwfInclRep>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="A_c">
<xsd:group ref="a_c"/>
</xsd:complexType>
<xsd:group name="a_c">
<xsd:sequence>
<xsd:group ref="RedefinedElement_a_c_x_y">
<xsd:annotation>
<xsd:appinfo source="WMQI_APPINFO">
<cwfInclRep messageSetDefaultRep="Binary1">
<cwfAggrRep accessor="readWrite" attributeInBit="false"
contentSize="20" offset="3" size="20"/>
</cwfInclRep>
</xsd:appinfo>
</xsd:annotation>
</xsd:group>
</xsd:sequence>
</xsd:group>
<xsd:group name="RedefinedElement_a_c_x_y">
<xsd:choice>
<xsd:element name="x">
<xsd:annotation>
<xsd:appinfo source="http://www.wsadie.com/appinfo">
<initialValue kind="SPACE"/>
</xsd:appinfo>
<xsd:appinfo source="WMQI_APPINFO">
<cwfInclRep messageSetDefaultRep="Binary1">
<cwfSimpleRep accessor="readWrite" addrUnit="byte"
alignment="byte" attributeInBit="false" characterSize="1" contentSize="20"
lengthEncoding="fixedLength" offset="3" paddingCharacter="SPACE"
prefixLength="0" size="20" typeName="MRCWFStringRep" width="20"/>
</cwfInclRep>
</xsd:appinfo>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="y" type="a_c_y">
<xsd:annotation>
<xsd:appinfo source="WMQI_APPINFO">
<cwfInclRep messageSetDefaultRep="Binary1">
<cwfAggrRep accessor="readWrite" attributeInBit="false"
contentSize="8" offset="3" size="8"/>
</cwfInclRep>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:choice>
</xsd:group>
<xsd:group name="a_c_y">
<xsd:sequence>
<xsd:element name="d">
<xsd:annotation>
<xsd:appinfo source="WMQI_APPINFO">
<cwfInclRep messageSetDefaultRep="Binary1">
<cwfSimpleRep accessor="readWrite" addrUnit="byte"
alignment="byte" attributeInBit="false" characterSize="1" contentSize="5"
lengthEncoding="fixedLength" offset="3" paddingCharacter="SPACE"
prefixLength="0" size="5" typeName="MRCWFStringRep" width="5"/>
</cwfInclRep>
</xsd:appinfo>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="5"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="e">
<xsd:annotation>
<xsd:appinfo source="WMQI_APPINFO">
<cwfInclRep messageSetDefaultRep="Binary1">
<cwfSimpleRep accessor="readWrite" addrUnit="byte"
alignment="byte" attributeInBit="false" contentSize="3" offset="8"
signFormat="trailing" signed="false" size="3"
typeName="MRCWFExternalDecimalRep" width="3"/>
</cwfInclRep>
</xsd:appinfo>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:short">
<xsd:minInclusive value="0"/>
<xsd:maxInclusive value="999"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:group>
<xsd:complexType name="a_c_y">
<xsd:group ref="a_c_y"/>
</xsd:complexType>
<xsd:element name="msg_A" type="A">
<xsd:annotation>
<xsd:appinfo source="WMQI_APPINFO">
<MRMessage
messageDefinition="/0/msg_A;XSDElementDeclaration$MRObject"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:schema>
Suman Kalia
IBM Toronto Lab
WebSphere Message Broker Toolkit Architect and Development Lead
WebSphere Business Integration Application Connectivity Tools
http://www.ibm.com/developerworks/websphere/zones/businessintegration/wmb.h…
Tel : 905-413-3923 T/L 969-3923
Fax : 905-413-4850 T/L 969-4850
Internet ID : kalia(a)ca.ibm.com
From: Suman Kalia/Toronto/IBM
To: Alan Powell/UK/IBM@IBMGB, Steve Hanson/UK/IBM@IBMGB, Tim
Kimber/UK/IBM@IBMGB
Date: 05/12/2010 10:22 AM
Subject: Action : 088 define semantics of choiceKind 'fixedLength'
Attached is the sample cobol copy book and the mxsd generated from it.. It
contains the TD model annotations that we don't use in WMB. The TD model
annotations that are of particular interest for this action is the
contentSize which is an expression that tells the compiler runtime how
much memory is actually allocated for the repeating element. The size
attribute tells what is the maximum it can have based on the definition in
the copy book.
>From DFDL perspective, the calculated length (reference Tim's note) would
be similar to the contentSize() attribute..
01 A.
05 b pic 9(3).
05 c occurs 1 to 10 times depending on b.
10 d pic x(5).
10 e pic 9(3).
<?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="
http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="A">
<xsd:sequence>
<xsd:element name="b">
<xsd:annotation>
<xsd:appinfo source="WMQI_APPINFO">
<cwfInclRep messageSetDefaultRep="Binary1">
<cwfSimpleRep accessor="readWrite" addrUnit="byte"
alignment="byte" attributeInBit="false" contentSize="3" offset="0"
signFormat="trailing" signed="false" size="3"
typeName="MRCWFExternalDecimalRep" width="3"/>
</cwfInclRep>
</xsd:appinfo>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:short">
<xsd:minInclusive value="0"/>
<xsd:maxInclusive value="999"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element maxOccurs="10" minOccurs="1" name="c" type="A_c">
<xsd:annotation>
<xsd:appinfo source="http://www.wsadie.com/appinfo">
<dependingOn>/0/A;XSDComplexTypeDefinition/XSDParticle/XSDModelGroup/XSDParticle/b;XSDElementDeclaration</dependingOn>
</xsd:appinfo>
<xsd:appinfo source="WMQI_APPINFO">
<cwfInclRep messageSetDefaultRep="Binary1"
repeatRef="/0/A;XSDComplexTypeDefinition/XSDParticle/XSDModelGroup/XSDParticle/b;XSDElementDeclaration">
<cwfAggrRep accessor="readWrite" attributeInBit="false"
contentSize="mpy(8,val(1,1))" offset="3" size="80">
<ArrayTD_arrayDescr alignmentKind="byte" lowerBound="1"
stride="8" strideInBit="false" upperBound="val(1,1)"/>
</cwfAggrRep>
</cwfInclRep>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="A_c">
<xsd:group ref="a_c"/>
</xsd:complexType>
<xsd:group name="a_c">
<xsd:sequence>
<xsd:element name="d">
<xsd:annotation>
<xsd:appinfo source="http://www.wsadie.com/appinfo">
<initialValue kind="SPACE"/>
</xsd:appinfo>
<xsd:appinfo source="WMQI_APPINFO">
<cwfInclRep messageSetDefaultRep="Binary1">
<cwfSimpleRep accessor="readWrite" addrUnit="byte"
alignment="byte" attributeInBit="false" characterSize="1" contentSize="5"
lengthEncoding="fixedLength" offset="3" paddingCharacter="SPACE"
prefixLength="0" size="5" typeName="MRCWFStringRep" width="5"/>
</cwfInclRep>
</xsd:appinfo>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="5"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="e">
<xsd:annotation>
<xsd:appinfo source="WMQI_APPINFO">
<cwfInclRep messageSetDefaultRep="Binary1">
<cwfSimpleRep accessor="readWrite" addrUnit="byte"
alignment="byte" attributeInBit="false" contentSize="3" offset="8"
signFormat="trailing" signed="false" size="3"
typeName="MRCWFExternalDecimalRep" width="3"/>
</cwfInclRep>
</xsd:appinfo>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:short">
<xsd:minInclusive value="0"/>
<xsd:maxInclusive value="999"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:group>
<xsd:element name="msg_A" type="A">
<xsd:annotation>
<xsd:appinfo source="WMQI_APPINFO">
<MRMessage
messageDefinition="/0/msg_A;XSDElementDeclaration$MRObject"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:schema>
Suman Kalia
IBM Toronto Lab
WebSphere Message Broker Toolkit Architect and Development Lead
WebSphere Business Integration Application Connectivity Tools
http://www.ibm.com/developerworks/websphere/zones/businessintegration/wmb.h…
Tel : 905-413-3923 T/L 969-3923
Fax : 905-413-4850 T/L 969-4850
Internet ID : kalia(a)ca.ibm.com
More work to do on this, but no time before the meeting. Let's discuss the
rules below, and refine afterwards:
If dfdl:choiceKind='fixedLength' then there must be at least one branch of
the choice for which all of the content has a calculable length.
Definition : A DFDL region is a region of the data stream described by the
DFDL grammar.
Note : we need to define this term - we use the term 'region' without
definition throughout the specification. Sometimes we call it a 'grammar
region'.
Definition: A DFDL region has a calculable length if the length of its
representation in units of bytes can be calculated from the DFDL
description alone.
The leading alignment region has a calculable length if the alignment of
the component is the same as the alignment of the parent.
The trailing alignment region has a calculable length if the alignment of
the component is the same as the alignment of the parent.
Q: Is this rule necessary?
The initiator region has a calculable length if all of the possible
initiator values have a calculable length.
An initiator value is a DFDL string literal. It has a calculable length if
the DFDL string literal does not contain any variable-length parts.
The terminator region has a calculable length if all of the possible
terminator values have a calculable length.
A terminator value is a DFDL string literal. It has a calculable length if
the DFDL string literal does not contain any variable-length parts.
A variable-length part is any of the following
- a character string in a variable-width encoding
- a DFLD entity in a variable-width encoding
- a DFDL generic entity which can match a variable number of characters (
NL, WSP+, WSP* )
The simple content region has a calculable length if both of the following
are true:
- either the encoding is a fixed-width encoding or the representation does
not contain characters.
- either lengthKind is 'explicit' and the length is not a DFDL expression
or lengthKind is 'implicit' and there is an implicit length for the simple
type and its dfdl:representation
The complex content region has a calculable length if all of the following
are true:
- either the encoding is a fixed-width encoding or the representation (
recursively ) does not contain characters.
- the element has lengthKind='explicit' and dfdl:length is not a DFDL
expression
- all group members, recursively, are required ( minOccurs=maxOccurs )
regards,
Tim Kimber, Common Transformation Team,
Hursley, UK
Internet: kimbert(a)uk.ibm.com
Tel. 01962-816742
Internal tel. 246742
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
1
0
re: 6.
6 Remove timing from dfdl:assert.
As timing property has been removed from discriminators it is inconsistent
to still have it on assert. Agreed
There was also a discussion about adding a message property to
discriminators which was inconclusive so decided not to change.
I remembered the reason why I thought this was a good idea.
Consider the situation where someone is generating their DFDL schema from
meta-data. The model is large, and consists of many references to global
structures. Each global structure ( e.g. an HL7 segment ) is identified in
a particular way. Sometimes the segment is required, sometimes it is not.
Sometimes it occurs as a child of a choice group, and sometimes not.
Regardless, it is highly likely that the segment will be identified in the
same way wherever it occurs. A natural decision for the modeler would be
to create a dfdl:discriminator on all references to the segement, even if
the ref is not under a point of uncertainty. It's harmless, and it carries
no performance penalty. If we disallow the "message" attribute, it will
force the modeler to put in extra logic to work out whether the ref is
under a POI, and generate an assert/discriminator as appropriate.
I'd be interested to know what Steph thinks about this - I think I've
heard her say that she sometimes uses discriminators where an assert would
have done the job, just to maintain consistency throughout the model.
regards,
Tim Kimber, Common Transformation Team,
Hursley, UK
Internet: kimbert(a)uk.ibm.com
Tel. 01962-816742
Internal tel. 246742
From:
dfdl-wg-request(a)ogf.org
To:
dfdl-wg(a)ogf.org
Date:
01/07/2010 14:47
Subject:
dfdl-wg Digest, Vol 47, Issue 1
Send dfdl-wg mailing list submissions to
dfdl-wg(a)ogf.org
To subscribe or unsubscribe via the World Wide Web, visit
http://www.ogf.org/mailman/listinfo/dfdl-wg
or, via email, send a message with subject or body 'help' to
dfdl-wg-request(a)ogf.org
You can reach the person managing the list at
dfdl-wg-owner(a)ogf.org
When replying, please edit your Subject line so it is more specific
than "Re: Contents of dfdl-wg digest..."
Today's Topics:
1. Minute for OGF DFDL Working Group Call, June 30-2010 (Alan Powell)
----- Message from Alan Powell <alan_powell(a)uk.ibm.com> on Thu, 1 Jul 2010
14:47:07 +0100 -----
To:
dfdl-wg(a)ogf.org
Subject:
[DFDL-WG] Minute for OGF DFDL Working Group Call, June 30-2010
Open Grid Forum: Data Format Description Language Working Group
OGF DFDL Working Group Call, June 30-2010
Attendees
Steve Hanson (IBM)
Alan Powell (IBM)
Stephanie Fetzer (IBM)
Tim Kimber(IBM)
Apologies
Suman Kalia (IBM)
Mike Beckerle (Oco)
1. Current Actions
Updated below
2 Nils and Defaults.
Reviewed Alan's latest draft.
Agreed with definition of 'required parent context'
Preferred the combining of initiated and not initiated rules.
Would still like a separate definition of nillable
Minor editorial changes.
3 DFDL property types and other issues.
Not discussed
Tim has proposed more specific types for some properties. In particular
separating the different kinds of entities.
- Modify the meaning and usage of the type 'DFDL String Literal' and
modify the remainder of the specification accordingly
- Improve the description of DFDL entities to avoid confusion over the
intended usage of raw byte values.
- Clarify the standard sentence about forward references in DFDL
expressions - the current text implied that the restrictions only applied
to the unparser.
1.1 DFDL Properties
Properties on DFDL annotations may be one or more of the following types
· DFDL string literal
The property value is a string that represents describes a sequence of
literal bytes and or characters which appear in the data stream.
· List of DFDL string literals
The property value is a space-separated list of DFDL string literals. When
parsing, if more than one string literal in the list matches the portion
of the data stream being evaluated then the longest matching string
literal in the list must be used.
When unparsing, the first string literal in the list must be used.
· DFDL expression
The property value is an XPath 2.0 expression that calculates evaluates to
returns a value derived from other property values and/or from the DFDL
infoset. DFDL expressions can be used to calculate property values, and to
calculate logical values for simple elements.
· DFDL regular expression
The property value is a regular expression that can be used as a pattern
to calculate the length of an element by comparing applying that pattern
to the sequence of literal bytes or characters which appear in the data
stream.
· Enum
The property value is a string literal that must be one of the allowed
values listed in the property description.
· QName
The property value is a string literal that also conforms to an XML
Qualified Name as specified in “Namespaces in XML “
· Simple Type
The property value is a string that describes a logical value. The type of
the logical value is one of the XML Schema simple types in the DFDL
allowed subset.
1.1.1.1 DFDL Entities in String Literals
1.1.1.1 Character classes in DFDL String literals
1.1.1.1 Raw byte values in DFDL String Literals
4. using textStringPadCharacter with charRef '%#r' on multi-byte encoding
Not discussed
textStringPadCharacter
DFDL String literal
The padding character or byte value that is used when justifying or
trimming text elements.
A pad character can be specified using DFDL entities.
A pad byte value must be specified using the %#r entity.
DFDL validation rules
- if a pad byte value is specified when lengthUnits='characters' then the
encoding must be a fixed-width encoding.
- if a pad character is specified when lengthUnits='bytes' then the pad
character must be a single-byte character.
If a pad byte value is specified when lengthUnits='characters' then
padding and trimming must be applied
using an array of N pad byte values, where N is the width of a character
in the fixed-width encoding.
Annotation: dfdl:element, dfdl:simpleType
Would adding fillByte to dfdl:padChar enumeration make it clearer.
padChar is a pad character (%#r not allowed)
fillByte is a fill byte
5. nilIndicatorPath and nilIndicatorIndex properties
These properties seem a bit of an anomaly. Tim has suggested they can be
simplified.
Not discussed
6 Remove timing from dfdl:assert.
As timing property has been removed from discriminators it is inconsistent
to still have it on assert. Agreed
There was also a discussion about adding a message property to
discriminators which was inconclusive so decided not to change.
7. Splitting the specification in simpler sections.
Concern has been raised that a full DFDL implementation is complicated and
expensive.
A number of reviewer have said that they might implement only part of the
sepcification.
It has been suggested that the WG should look to see if it possible to
split the specification into more
manageable optional sections.
Meeting closed, 17:00
Next call Wednesday 07 July 2010 15:00 UK (10:00 ET)
Next action: 100
Actions raised at this meeting
No
Action
096
AP: using textStringPadCharacter with charRef '%#r' on multi-byte encoding
097
nilIndicatorPath and nilIndicatorIndex properties
099
Splitting the specification in simpler sections.
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
05/05: Work still progressing
12/05: Work still progressing
02/06: Work still progressing on technical and legal considerations
16/06: work continues
23/06: work continues
30/06: work continues
085
ALL: publicize Public comments phase to ensure a good review..
14/04: see minutes
21/04: Press release, OMG and other standards bodies.
05/05: Alan and Steve H have contacted other standards bodies. Will ask
them to add comments on spec
15/05: still no public comments
02/06: No public comments
16/06: Public comments period has ended with no external comments. Alan
had posted changes made in draft 041. Steve suggested send a note to the
WG highlighting these changes. Steve also suggested requesting an
extension as other IBM groups may review. We discussed whether this was
necessary as changes will need to be made during the implementation phase
anyway. Alan to ask OGF what the process is for changes post public
comment.
23/06: Still no comments. Alan will contact OGF to understand the rest of
the process.
30/06: Alan has emailed Joel asking what the process is now public comment
period is over andcan we update the published version with WG updates. No
response yet.
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.
05/05: Discussed defaulting complex elements. Tables updated but need to
add terminator.
SH; to confirm WMD behaviour when infoset item has no value on unparsing
Need to describe defaulting choices.
15/05: More discussion. Alan updating sections
26/05: Discussed draft updates. Stephanie to confirm asserts do not make
an element required.
Alan will update draft.. All: review rest of draft.
02/06: Alan updated description. Please review.
Discussed Stephanie's example using discriminators. Decided no changes
needed.
16/05: went through Steves comments. Steve to update draft.
23/06: Steve's updates to the rules discussed. See minutes. Rest of
document needs updating.
30/06: Discussed Alans updates. Some corrections. Alan will send out
updated copy for review before next call.
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.
05/05: TK: Still need definition of calculable length.
SKK: WMB COBOL imported behaviour with ODO
15/05: Suman sent an expmle of an imported Cobol ODo which suggested that
the maximum space was reserved. He will extend the example.
02/06: no progress
16/06: no progress
23/06: no progress
30/06: Alan looked at Tim's description of calculable length and suggested
that that real use case may be much simpler. If real use case is COBOL and
C importers then it would be cleaner to require the 'fixed length' to be
specified on the enclosing complex element and remove choiceKind 'fixed
length'. Ask Suman is COBOL and C importers can be enhance to provide
length on cpmplex element.
092
AP: Confirm behaviour of defaulting with various occursCountKinds and
separator policies.
16/06: no progress
23/06: discussed
- whether when number of instances doesn't match specified number of
occurrences is it an error or should missing instances be defaulted?
Decided it is an error.
- defaulting occurs up to minoccurs unless separator policy is required
when default up to maxOccurs and unbounded is an error.
30/06: Decided that defaulting for variable occurrence arrays should
always be to minOccurs. If separatorPolicy is 'required' then just the
separators will be output up to maxOccurs and unbounded is an error.
096
AP: using textStringPadCharacter with charRef '%#r' on multi-byte encoding
097
nilIndicatorPath and nilIndicatorIndex properties
099
Splitting the specification in simpler sections.
Closed actions
No
Action
098
Remove timing from dfdl:assert
Work items:
No
Item
target version
status
005
Improvements on property descriptions
not started
012
Reordering the properties discussion: move representation earlier, improve
flow of topics
not started
036
Update dfdl schema with change properties
ongoing
042
Mapping of the DFDL infoset to XDM
none
not required for V1 specification
070
Write DFDL primer
071
Write test cases.
083
Implement RFC2116
105
AP: Describe trailingSkipBytes for delimited formats.
Alan suggested 'dfdl:terminator must be specified and not empty if
dfdl:lengthKind is delimited or endOfParent.'
106
AP: Skip Bytes should allow bits
Ageed that it should be possible to specify bits.
- LSB and TSB renames to dfdl:leadingSkip, dfdl:trailingSkip
- units are specified by dfdl:alignmentUnits.
107
Remove timing from dfdl:assert
108
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(a)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
--
dfdl-wg mailing list
dfdl-wg(a)ogf.org
http://www.ogf.org/mailman/listinfo/dfdl-wg
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
1
0
Open Grid Forum: Data Format Description Language Working Group
OGF DFDL Working Group Call, June 30-2010
Attendees
Steve Hanson (IBM)
Alan Powell (IBM)
Stephanie Fetzer (IBM)
Tim Kimber(IBM)
Apologies
Suman Kalia (IBM)
Mike Beckerle (Oco)
1. Current Actions
Updated below
2 Nils and Defaults.
Reviewed Alan's latest draft.
Agreed with definition of 'required parent context'
Preferred the combining of initiated and not initiated rules.
Would still like a separate definition of nillable
Minor editorial changes.
3 DFDL property types and other issues.
Not discussed
Tim has proposed more specific types for some properties. In particular
separating the different kinds of entities.
- Modify the meaning and usage of the type 'DFDL String Literal' and
modify the remainder of the specification accordingly
- Improve the description of DFDL entities to avoid confusion over the
intended usage of raw byte values.
- Clarify the standard sentence about forward references in DFDL
expressions - the current text implied that the restrictions only applied
to the unparser.
1.1 DFDL Properties
Properties on DFDL annotations may be one or more of the following types
· DFDL string literal
The property value is a string that represents describes a sequence of
literal bytes and or characters which appear in the data stream.
· List of DFDL string literals
The property value is a space-separated list of DFDL string literals. When
parsing, if more than one string literal in the list matches the portion
of the data stream being evaluated then the longest matching string
literal in the list must be used.
When unparsing, the first string literal in the list must be used.
· DFDL expression
The property value is an XPath 2.0 expression that calculates evaluates to
returns a value derived from other property values and/or from the DFDL
infoset. DFDL expressions can be used to calculate property values, and to
calculate logical values for simple elements.
· DFDL regular expression
The property value is a regular expression that can be used as a pattern
to calculate the length of an element by comparing applying that pattern
to the sequence of literal bytes or characters which appear in the data
stream.
· Enum
The property value is a string literal that must be one of the allowed
values listed in the property description.
· QName
The property value is a string literal that also conforms to an XML
Qualified Name as specified in ?Namespaces in XML ?
· Simple Type
The property value is a string that describes a logical value. The type of
the logical value is one of the XML Schema simple types in the DFDL
allowed subset.
1.1.1.1 DFDL Entities in String Literals
1.1.1.1 Character classes in DFDL String literals
1.1.1.1 Raw byte values in DFDL String Literals
4. using textStringPadCharacter with charRef '%#r' on multi-byte encoding
Not discussed
textStringPadCharacter
DFDL String literal
The padding character or byte value that is used when justifying or
trimming text elements.
A pad character can be specified using DFDL entities.
A pad byte value must be specified using the %#r entity.
DFDL validation rules
- if a pad byte value is specified when lengthUnits='characters' then the
encoding must be a fixed-width encoding.
- if a pad character is specified when lengthUnits='bytes' then the pad
character must be a single-byte character.
If a pad byte value is specified when lengthUnits='characters' then
padding and trimming must be applied
using an array of N pad byte values, where N is the width of a character
in the fixed-width encoding.
Annotation: dfdl:element, dfdl:simpleType
Would adding fillByte to dfdl:padChar enumeration make it clearer.
padChar is a pad character (%#r not allowed)
fillByte is a fill byte
5. nilIndicatorPath and nilIndicatorIndex properties
These properties seem a bit of an anomaly. Tim has suggested they can be
simplified.
Not discussed
6 Remove timing from dfdl:assert.
As timing property has been removed from discriminators it is inconsistent
to still have it on assert. Agreed
There was also a discussion about adding a message property to
discriminators which was inconclusive so decided not to change.
7. Splitting the specification in simpler sections.
Concern has been raised that a full DFDL implementation is complicated and
expensive.
A number of reviewer have said that they might implement only part of the
sepcification.
It has been suggested that the WG should look to see if it possible to
split the specification into more
manageable optional sections.
Meeting closed, 17:00
Next call Wednesday 07 July 2010 15:00 UK (10:00 ET)
Next action: 100
Actions raised at this meeting
No
Action
096
AP: using textStringPadCharacter with charRef '%#r' on multi-byte encoding
097
nilIndicatorPath and nilIndicatorIndex properties
099
Splitting the specification in simpler sections.
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
05/05: Work still progressing
12/05: Work still progressing
02/06: Work still progressing on technical and legal considerations
16/06: work continues
23/06: work continues
30/06: work continues
085
ALL: publicize Public comments phase to ensure a good review..
14/04: see minutes
21/04: Press release, OMG and other standards bodies.
05/05: Alan and Steve H have contacted other standards bodies. Will ask
them to add comments on spec
15/05: still no public comments
02/06: No public comments
16/06: Public comments period has ended with no external comments. Alan
had posted changes made in draft 041. Steve suggested send a note to the
WG highlighting these changes. Steve also suggested requesting an
extension as other IBM groups may review. We discussed whether this was
necessary as changes will need to be made during the implementation phase
anyway. Alan to ask OGF what the process is for changes post public
comment.
23/06: Still no comments. Alan will contact OGF to understand the rest of
the process.
30/06: Alan has emailed Joel asking what the process is now public comment
period is over andcan we update the published version with WG updates. No
response yet.
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.
05/05: Discussed defaulting complex elements. Tables updated but need to
add terminator.
SH; to confirm WMD behaviour when infoset item has no value on unparsing
Need to describe defaulting choices.
15/05: More discussion. Alan updating sections
26/05: Discussed draft updates. Stephanie to confirm asserts do not make
an element required.
Alan will update draft.. All: review rest of draft.
02/06: Alan updated description. Please review.
Discussed Stephanie's example using discriminators. Decided no changes
needed.
16/05: went through Steves comments. Steve to update draft.
23/06: Steve's updates to the rules discussed. See minutes. Rest of
document needs updating.
30/06: Discussed Alans updates. Some corrections. Alan will send out
updated copy for review before next call.
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.
05/05: TK: Still need definition of calculable length.
SKK: WMB COBOL imported behaviour with ODO
15/05: Suman sent an expmle of an imported Cobol ODo which suggested that
the maximum space was reserved. He will extend the example.
02/06: no progress
16/06: no progress
23/06: no progress
30/06: Alan looked at Tim's description of calculable length and suggested
that that real use case may be much simpler. If real use case is COBOL and
C importers then it would be cleaner to require the 'fixed length' to be
specified on the enclosing complex element and remove choiceKind 'fixed
length'. Ask Suman is COBOL and C importers can be enhance to provide
length on cpmplex element.
092
AP: Confirm behaviour of defaulting with various occursCountKinds and
separator policies.
16/06: no progress
23/06: discussed
- whether when number of instances doesn't match specified number of
occurrences is it an error or should missing instances be defaulted?
Decided it is an error.
- defaulting occurs up to minoccurs unless separator policy is required
when default up to maxOccurs and unbounded is an error.
30/06: Decided that defaulting for variable occurrence arrays should
always be to minOccurs. If separatorPolicy is 'required' then just the
separators will be output up to maxOccurs and unbounded is an error.
096
AP: using textStringPadCharacter with charRef '%#r' on multi-byte encoding
097
nilIndicatorPath and nilIndicatorIndex properties
099
Splitting the specification in simpler sections.
Closed actions
No
Action
098
Remove timing from dfdl:assert
Work items:
No
Item
target version
status
005
Improvements on property descriptions
not started
012
Reordering the properties discussion: move representation earlier, improve
flow of topics
not started
036
Update dfdl schema with change properties
ongoing
042
Mapping of the DFDL infoset to XDM
none
not required for V1 specification
070
Write DFDL primer
071
Write test cases.
083
Implement RFC2116
105
AP: Describe trailingSkipBytes for delimited formats.
Alan suggested 'dfdl:terminator must be specified and not empty if
dfdl:lengthKind is delimited or endOfParent.'
106
AP: Skip Bytes should allow bits
Ageed that it should be possible to specify bits.
- LSB and TSB renames to dfdl:leadingSkip, dfdl:trailingSkip
- units are specified by dfdl:alignmentUnits.
107
Remove timing from dfdl:assert
108
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(a)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
1
0