[DFDL-WG] Minutes for OGF DFDL Working Group Call, September 29 2010
Alan Powell
alan_powell at uk.ibm.com
Thu Sep 30 08:31:11 CDT 2010
Open Grid Forum: Data Format Description Language Working Group
OGF DFDL Working Group Call, September 29 2010
Attendees
Stephanie Fetzer (IBM)
Steve Hanson (IBM)
Alan Powell (IBM)
Tim Kimber(IBM)
Apologies
Mike Beckerle (Oco)
Suman Kalia (IBM)
Bob McGrath (National Center for Supercomputing Applications)
Alejandro Rodriguez (National Center for Supercomputing Applications)
1. Current Actions
Updated Below
2. textNumberRoundingMode.
29/09: The interaction between textNumberRoundingMode and the rounding
number in the numberPattern is not clearly described. It was agreed to
make textNumberRoundingMode the controlling switch and add 'none' to the
enumerations.
3. Syntax of assert/discriminator
29/09: Alan suggested that the value form of assert/discriminator be made
the same as the element form of representation properties. Steve felt that
they were not the same as format properties (eg they can have defaults) so
should not have the same syntax.
Agreed there will be a new property
dfdl:testKind 'expression' 'pattern'
Meeting closed, 16:35
Next call Wednesday 06 October 2010 15:00 UK (10:00 ET)
Next action: 123
Actions raised at this meeting
No
Action
121
2. textNumberRoundingMode.
29/09: The interaction between textNumberRoundingMode and the rounding
number in the numberPattern is not clearly described. It was agreed to
make textNumberRoundingMode the controlling switch and add 'none' to the
enumerations.
Closed
122
Syntax of assert/discriminator
29/09: Alan suggested that the value form of assert/discriminator be made
the same as the element form of representation properties. Steve felt that
the assert attributes were not the same as format properties (eg they can
have defaults) so should not have the same syntax.
Agreed there will be a new property
dfdl:testKind 'expression' 'pattern'
Closed
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
...
25/08: Will chase to allow Daffodil access to test cases. The WG should
define how implementation confirm that they 'conform to DFDL v1'
01/09: IBM still progressing the legal aspect. Intends to publish 100 or
so tests as soon as it can, ahead of a full compliance suite.
08/09: IBM still progressing
15/09: IBM still progressing, expect tests to be available within a few
weeks
22/09: IBM still progressing, expect tests to be available within a few
weeks
29/09:Test cases are being prepared.
085
ALL: publicise 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 and can we update the published version with WG updates. No
response yet.
07/07: No response. Alan will chase up
14/07: No response from Joel. Sent email to Greg Newby by no response.
21/07: Still no response.
04/08: Joel has responded that it is up to the WG to decide if the changes
are significant enough to need additional review. Alan to contact David
Martin and Erwin Laure for guidance if we split the specification.
11/08: Received a response from Joel that the WG can decide if a re-
public review is necessary before becoming a 'proposed recommendation'.
Alan responded that the WG agreed that a re-review was not necessary. The
next stage is for OGF review committee to approve publication.
11/08: Specification is now 'awaiting author changes' before being
submitted to the OGF technical committee for approval as a 'proposed
specification'.
Alan would like to have the updated specification complete by Sept 10th.
The WG needs to complete all actions by then or decide that they do not
need to be included in this phase of the process.
01/09: Alan and Steve have discussed and propose Sept 30th for completion
of draft 43 and closure of all actions.
08/09: Target for completion September 30.
15/09: as above
22/09: as above
29/09: Draft 43 will be published this week for WG review prior to
submitting to OGF
111
Daffodil DFDL parser
11/08: Bob and Alejandro described the new implementation that they have
developed. It is a new code base and is not based on the Deffudle
prototype. It is written in scala and implements approximately 80% of the
features in the public comments draft of DFDL V1. Alejandro will send a
list of the features not implemented.
We discussed the scenarios that motivated the development which was to
extract data from various sources and transform into canonical formats.
Bob offered to make Daffodil available for the WG to assess the
functionality. IBM WG members will get approval the company to allow them
to receive Daffodil.
Bob raised the question that if Daffodil becomes the public implementation
of DFDL then we will need to work out how that would be funded and
managed.
It would be helpful if IBM test cases were available to Daffodil. IBM will
investigate
25/08: Alejandro had sent a list of the functions that he has implemented
and Steve ahd responding indicating the extra functions he thought were
essential.
Since then Alejandro has implemented some of the missing functions, such
as escape schemes, pre-defined variables, binary decimal numbers, etc, and
will update his list.
Bob is planning to make the parser available on the internet to allow
testing.
His organisation is being reorganised and he doesn't know what the
priority of Daffodill will be so it is essential that we move quickly. It
would help if IBM could indicate its support for Daffodil in some
semi-formal way.
01/09: Alejandro updating Daffodil to include escape schemes, unordered
sequences and ignoreCase.
Daffodil being placed under formal source control in anticipation of
external release.
Bob has a start October deadline to create a report on what has been done
for his sponsors.
It would be great if we could get Daffodil on the web and have run some
IBM tests so it could be highlighted at OGF 30 at end October.
08/09: Alejandro is marking up Spec draft 42 to indicate which features
Daffodil implement. Bob expects Daffodil to be available on the web soon.
15/09: Alejandro had indicated in the specification which functions were
implemented in Daffodill. Steve had reviewed and identified which function
need to be implemented and which could be considered optional (see action
099). Alejandro is implementing the missing core functions. There was some
discussion about the limitations on unordered groups. (stop value and
expression not supported). It was agreed that it should be a schema
definition error if dfdl:occursCountKind is 'stopValue' on any element
within an unordered sequence and a floating element.
22/09: not discussed
29/09: not discussed
112
DFDL certification process
25/08: Discussed how to certify DFDL implementations. Alan to investigate
if OGF have a defined process.
01/09: In progress, spec needs to state what conformance means, as part of
this work
08/09: Discussed what needs to be said in the spec and agreed that details
of a conformance test suite should be in another document.
Alan to draft conformance section.
15/09: Alan had look at the conformance sections in XML and Schema
specifications both of which indicate sections which must be implemented.
None just say 'execute the test suite'. They talk in terms of conformance
of document, schema and processors..
22/09: no progress
22/09: Alan has added short Conformance and Optional Features sections to
spec which was briefly discussed. Discussed naming for processors that
don't implement optional features and those that implement all features.
114
OGF 30
25/08: OGF30 takes place on October 25-29 in Brussels. Should we have a
WG session?
09/01: Given emergence of NCSA implementation and spec completion target
of 30th Sept it makes sense to host a session at OGF 30.
08/09: Steve to request permission to go
15/09: Travel request has be submitted
22/09: DFDL session is scheduled at 11:00am Monday Oct 25th.
Closed actions
No
Action
107
teston/testoff dfdl expression functions.
Are these functions still needed. They were introduced to allow individual
bits to be set in a byte. Steve to look at TLog and ISO 8583 formats that
use existence flags to see if they are still required.
04/08: Not discussed
11/08: Not discussed
25/08: Not discussed
01/09: Steve to progress by Sept 30th
08/09: Steve to progress by Sept 30th
15/09: The ISO 8583 standard has existence flags at the beginning that are
encoded so cannot be defined as an array of bits. Therefore DFDL needs the
ability to set individual bits within an unsigned int. However the
functions, particualry SetOn/Off, as currently defined are not correct.
SetOn returns a byte with the relevant bit set on. This must then be
combined with other bytes which isn't very usable. Steve to circulate
example of use and suggested improvements.
22/09: Steve had documented the why the functions were required to parse
ISO 8583 messages. He had suggested the following improvements
xs:boolean dfdl:testBit(xs:unsignedByte, xs:unsignedByte)
Returns Boolean true if the bit number given by arg #2 is set on
in the byte given by arg #1, otherwise returns Boolean false.
xs:unsignedByte dfdl:setBits(xs:boolean+)
Returns an byte being the value of the bit positions provided by
the Boolean arguments, where true=1, false=0. The # of args must 8.
Note that the bit numbering goes from left to right, in accordance with
section 12.3.7.2 of the spec.
The type was changed from unSignedLong to unSignedByte to avoid problems
with padding when not enough bits are provided.
29/09: Syntax agreed. Some errors in existing function descriptions need
fixing. Closed
118
2. Rules for 'missing' elements
lengthKind='implicit' and xs:maxLength or xs:length is "0": element is
missing
lengthKind='implicit' and length is not "0": element is missing if it has
an initiator AND emptyValueDelimiterPolicy excludes the initiator AND the
initiator is not found in the data ( regardless of discriminators or
initiatedContent )
lengthKind='explicit' and length is an expression : element is missing if
the expression evaluates to zero.
lengthKind='explicit' and length is "0": element is missing
lengthKind='explicit' and length is not "0": element is missing if it has
an initiator AND emptyValueDelimiterPolicy excludes the initiator AND the
initiator is not found in the data ( regardless of discriminators or
initiatedContent )
lengthKind='pattern' : element is missing if the length of the pattern
match is zero
lengthKind='prefixed' : element is missing if the prefixed length region
parses as zero
lengthKind='delimited' and delimiterPolicy='suppressed' and the end of the
group has not been encountered : element is missing if it has an initiator
AND emptyValueDelimiterPolicy excludes the initiator AND the initiator is
not found in the data ( regardless of discriminators or initiatedContent )
lengthKind='delimited' and delimiterPolicy='suppressed' or
'suppressedAtEnd' and the end of the group has been encountered : element
is missing
lengthKind='delimited', all other cases : element is missing if its
scanned length is zero
lengthKind='endOfParent': element is missing if its scanned length is zero
It is a schema definition error to specify emptyValueDelimiterPolicy
'initiator' for lengthKind 'explicit' or 'implicit'.
22/09: We discussed if these rules could be simplified to say an element
is missing if it's initiator is missing or its content region is empty.
Need further discussion.
22/09: Tim suggested simplifying the above rules with
An element is missing
1. if it has an initiator AND emptyValueDelimiterPolicy excludes the
initiator AND the initiator is not found in the data
2. else if the content region is empty
Also:
It is a schema definition error if a sequence has 'initiated content and
one of its children has emptyValueDelimiterPolicy or
nilValueInitiatorPolicy set to 'none' or 'terminator'.
It is a schema definition error to specify emptyValueDelimiterPolicy
'initiator' or 'both' for lengthKind 'explicit' or 'implicit'.
Closed
119
In passing we noted that the position of the prefix length relative to the
initiator was not defined in the grammar and whether the prefix could have
an initiator and terminator. Need further discussion
22/09:
The prefix length region is between the initiator and the content region (
leftFraming prefixLengthRegion simple/complexContent)
The simpleType for the length prefix can specify any dfdl property with
the exception of lengthKind 'prefixed' and 'endOfParent'
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
109
Add 'message' attribute to dfdl:discriminator
01/09: Closed: Conclusion was that this is genuinely useful, and has low
implementation cost. Will add a 'message' attribute to dfdl:discriminator.
43
110
Clarify expression limitations for defineVariable, newVariableInstance and
setVariable
01/09: Closed: Spec should distinguish newVariableInstance defaultValue
from setVariable value.
For newVariableInstance defaultValue, disallow downward references and
references to self (must be usable from the point of declaration)
For setVariable allow downward references and references to self, and
always evaluate at end of component.
(defineVariable defaultValue should be same as newVariableInstance)
43
113
Be specific about regular expression syntax
43
108
Updates to hidden mechanism
43
99
Updates to reflect subsetting and unparser optionality
43
112
Define what conformance to spec means
43
115
Clarify allowed lengths for signed binary integers
43
116
2. xs:minLength
The spec currently states
When an element declaration specifies a default value, and has type
xs:string, then xs:minLength must be specified and must be 1 or greater.
It is a schema definition error otherwise.
The process for defaults and nils means this restriction is no longer
needed.
Agreed
43
117
3. Is UTF-16 a fixed width or variable width encoding
Proposal
-UCS2 is a fixed length encoding
-UTF-16 is a variable width encoding.
- A new property dfdl:UTF16Fixed 'yes ¦ no' treat UTF-16 as a fixed width
encoding
15/09: Closed
43
118
2. Document that an empty sequence that is the content of complex type is
ignored even when it has annotations
It is a schema definition error if an empty sequence is the content of a
complex type
43
099
Splitting the specification in simpler sections.
22/09: We reviewed the proposed list of optional features and approved.
These will be documented by adding a section that lists these features
rather than making them inline. It will be closely related to the
conformance section..
Closed
43
101
Semantics of 'fixed'
Proposal:
- xs:fixed will not be used for parsing but only for validation and for
providing a default value on unparsing.
- A new dfdl function will be defined that applies only to simple element
and tests whether the element exists including applying all the schema
facets and other constraints.
22/09: Discussed whether dfdl:checkConstaints should included exists
function. It isn't obvious what the return code should be for elements
that don't exist. checkConstarints will check that element does exist.
'true' means the element exists and is valid, 'false' means doesn't exist
or exists but doesn't meet constraints. The parameter is a path to a
simple or complex element. If complex and it exists return 'true'
Closed
43
108
dfdl:hidden
Global group approach
Summary:
Particle to hide can be a local element, element ref, local sequence,
local choice or group ref
Particle is removed from its parent into a dedicated global group of
composition sequence and replaced in the parent by a new empty local
sequence
The new empty local sequence carries a dfdl:hiddenGroupRef property, other
DFDL properties are not allowed
Pros:
Removal of all DFDL annotations and use of the resultant pure XSD results
in same infoset
Global group can be reused
Cons:
Making something hidden is a refactor operation
Global group sequence needs DFDL properties setting correctly
Alejandro had implemented extensions to the hidden function.
1. Allow hidden sequence to reference a global element. Decided against as
Suman had identified some problems with namesapces.
2. Allow the reference global group to contain a choice in addition to a
sequence. It was agreed this was a useful extension.
22/09: Closed
43
113
Regular Expressions.
15/09: Agreed that should just say that either JAva or PERL regular
expressions can be used and for portability the common subset of
functions should be used.
22/09: Closed
43
113b
Regular Expressions for Assert/Discriminator.
Allowed as alternative to expression on dfdl:assert and dfdl:discriminator
Pattern may be specified as attribute or element value
Attribute: new testPattern attribute
Element value: braces ( ) indicate pattern instead of expression
15/09: Do not need the braces as expressions start with '{'. Need to state
rules for where the patter matching starts in the data stream.
22/09: Closed
43
115
Clarify allowed lengths for signed integer types when rep is binary
integer (ie, two's complement)
01/09: No technical reason to restrict lengths to 2^x bytes, could be odd,
could be bits. But rare in practise so if we do relax, limit any core
subset to 2^x bytes.
22/09: Agreed that there should be not restrictions on lengths. Closed
43
107
teston/testoff dfdl expression functions.
22/09: Steve had documented the why the functions were required to parse
ISO 8583 messages. He had suggested the following improvements
xs:boolean dfdl:testBit(xs:unsignedByte, xs:unsignedByte)
Returns Boolean true if the bit number given by arg #2 is set on
in the byte given by arg #1, otherwise returns Boolean false.
xs:unsignedByte dfdl:setBits(xs:boolean+)
Returns an byte being the value of the bit positions provided by
the Boolean arguments, where true=1, false=0. The # of args must 8.
Note that the bit numbering goes from left to right, in accordance with
section 12.3.7.2 of the spec.
The type was changed from unSignedLong to unSignedByte to avoid problems
with padding when not enough bits are provided.
29/09: Syntax agreed. Some errors in existing function descriptions need
fixing. Closed
118
2. Rules for 'missing' elements
22/09: Tim suggested simplifying the above rules with
An element is missing
1. if it has an initiator AND emptyValueDelimiterPolicy excludes the
initiator AND the initiator is not found in the data
2. else if the content region is empty
Also:
It is a schema definition error if a sequence has 'initiated content and
one of its children has emptyValueDelimiterPolicy or
nilValueInitiatorPolicy set to 'none' or 'terminator'.
It is a schema definition error to specify emptyValueDelimiterPolicy
'initiator' or 'both' for lengthKind 'explicit' or 'implicit'.
Closed
119
In passing we noted that the position of the prefix length relative to the
initiator was not defined in the grammar and whether the prefix could have
an initiator and terminator. Need further discussion
22/09:
The prefix length region is between the initiator and the content region (
leftFraming prefixLengthRegion simple/complexContent)
The simpleType for the length prefix can specify any dfdl property with
the exception of lengthKind 'prefixed' and 'endOfParent'
Closed
121
2. textNumberRoundingMode.
29/09: The interaction between textNumberRoundingMode and the rounding
number in the numberPattern is not clearly described. It was agreed to
make textNumberRoundingMode the controlling switch and add 'none' to the
enumerations.
43
122
Syntax of assert/discriminator
29/09: Alan suggested that the value form of assert/discriminator be made
the same as the element form of representation properties. Steve felt that
the assert attributes were not the same as format properties (eg they can
have defaults) so should not have the same syntax.
Agreed there will be a new property
dfdl:testKind 'expression' 'pattern'
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 at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.ogf.org/pipermail/dfdl-wg/attachments/20100930/032b20cb/attachment-0001.html
More information about the dfdl-wg
mailing list