[DFDL-WG] Action 305 - Trackers Summary - was: Consolidated Notes including both DFDL WG Call 2018-08-07 along with other recent clarification email threads

Mike Beckerle mbeckerle.dfdl at gmail.com
Thu Jun 27 15:41:42 EDT 2019


This email summarizes trackers being created to track the resolution of
Action 305.

I have created trackers for all the topics below.

This should enable us to close Action 305.

*Tracker 351 on Separators and Separator Suppression*

(I put a note on this tracker that this one still has email discussion
ongoing about the precise wording.)

I believe now we know that the suggestion below about Section 14.2 isn't
correct. Pulling that discussion up to the top here, we suggested this:

Section 14.2
   For property dfdl:separator. The sentence: "Separators occur in the data
either before, between or after all occurrences of the elements or groups
that are the children of the sequence." replaced with "Separators occur in
the data either before, between or after all occurrences of *represented*
elements (that is, elements without the dfdl:inputValueCalc property) or
model groups that are the children of the sequence. Elements with
dfdl:inputValueCalc have no representation in the data stream, and so never
have separators. Children of a sequence that are model groups are always
separated, even if they are empty (meaning have no children of their own -
which is allowed for sequence groups), or both the model group child and
its contained children occupy zero-length in the data stream."

>From tests IBM did, and experience with the DFDL schema for EDIFACT, I
think we neglected the potentially-trailing group case in the above
description. I've revised it, with the new phrasing in blue.

Section 14.2
   For property dfdl:separator. The sentence: "Separators occur in the data
either before, between or after all occurrences of the elements or groups
that are the children of the sequence." replaced with "Separators occur in
the data either before, between or after all occurrences of *represented*
elements (that is, elements without the dfdl:inputValueCalc property) or
model groups that are the children of the sequence. Elements with
dfdl:inputValueCalc have no representation in the data stream, and so never
have separators. Children of a sequence that are model groups are separated
if the sequence is positional, even if they are empty (meaning have no
children of their own - which is allowed for sequence groups), or both the
model group child and its contained children occupy zero-length in the data
stream. If the sequence is not positional, then separators are suppressed
for trailing groups that are zero-length according to the
dfdl:separatorSuppressionPolicy."

This accommodates the common situation where a trailing sequence group
contains an entirely optional array element. If none of the array elements
exists we do not want a separator for the sequence group at all.

(note: Some of the above is redundant with stipulations in the
dfdl:inputValueCalc property description, but I believe it is wise to have
this little redundancy.)


*Tracker 350 on Empty Representation - Clarifications*

Section 9.2.2

    The phrase  "the occurrence's content in the data..." replace with "the
occurrence's SimpleContent or ComplexContent region in the data..."

    The sentence:  "The *empty representation* is special in DFDL, because
when parsing it is this condition that can trigger the creation of a
default value for an element occurrence." replace with: "The empty
representation is special in DFDL because when parsing it is used to
determine when default values are created in the Infoset. The empty
representation can require initiators or terminators be present so as to enable
data formats to explicitly distinguish occurrences with empty
string/hexBinary values from occurrences that are missing or are absent."
     (This is to clarify an error of omission - prior language suggested
that EVDP is only relevant when the element has a default value, because
only that need was mentioned.)

*Tracker 233: Add to minor/typographical*

Section 9.3.1.1
   Delete phrase "...this of course implies that....". Note that there is
already a correction to create numbered bullets of 3 sentences. The
sentence containing this phrase will be bullet #3 of that list.

>
>> *Tracker 349: Clarifications on Element Defaults*

Section 9.4
   Item 2 under "For elements and element refs:" Change to: "dfdl:element
following property scoping rules, which includes establishing
representation as described in Section 9.3.2 and conversion to element type
for simple types."

Section 9.4.2
   Before the final phrase "There are three main cases to consider:" Insert
this sentence: "The sections below indicate when an item is added to the
infoset, and whether it has a default or other value. If there is no
processing error then regardless of whether an item is added to the infoset
or not, any side-effects due to dfdl:discriminator statements evaluating to
true, or dfdl:setVariable statements, are retained."

Sections 9.4.2.2 and 9.4.2.3
   The phrase "Optional occurrence: If dfdl:emptyValueDelimiterPolicy is
not 'none'*[12]* <http://daffodil.apache.org/docs/dfdl/#_ftn12>,"  Change
to "Optional occurrence: if dfdl:emptyValueDelimiterPolicy is applicable
and is not 'none',...." (retaining the footnote)

Section 9.4.2.3. *(IGNORING THIS AS NO CONCLUSION WAS REACHED)*
  We agreed that the paragraphs beginning with "For both required and
optional..." need to be better tied to the material above. Wording TBD -
pending Steve Hanson doing some tests on IBM DFDL.

I discovered that erratum 5.10 already includes modified wording equivalent
to one of the things discussed:

5.10 says: Add a clause in 9.4.2.2 and 9.4.2.3 so that the statement about
optional occurrences says "If dfdl:emptyValueDelimiterPolicy *is in effect
and* is not 'none'...", as the words today do not cover cases when it is
ignored (no initiator or terminator).

Our discussion in this thread is slightly different wording:

Sections 9.4.2.2 and 9.4.2.3
   The phrase "Optional occurrence: If dfdl:emptyValueDelimiterPolicy is
not 'none'*[12]* <http://daffodil.apache.org/docs/dfdl/#_ftn12>,"  Change
to "Optional occurrence: if dfdl:emptyValueDelimiterPolicy is applicable
and is not 'none',...." (retaining the footnote)

I prefer the terminology "is applicable" here, as "in effect" can have the
connotation of just "is set".

*Tracker 348: Clarifications on Establishing Representation*

Section 9.3.2
  The phrase "The first step is to see if the content is trivaill of length
zero." Change to: "The first step is to see if the SimpleContent or
ComplexContnet region is of length zero as a first approximation."
  The bullet "delimited => length is zero (delimiter is immediately
encountered)" Insert "in scope" after the open parenthesis.

*Tracker 347: Clarifications on Specifying Delimiters*

>
> Section 12.2
   For property emptyValueDelimiterPolicy, before the phrase "It is a
schema definition error if...", insert this sentence: "The value of
dfdl:emptyValueDelimiterPolicy  should only be checked if there is a
dfdl:initiator or dfdl:terminator in scope. If so, and
dfdl:emptyValueDelimiterPolicy is not set, it is a schema definition error.
If dfdl:initiator is not "" and dfdl:terminator is "" and
dfdl:emptyValueDelimiterPolicy is 'terminator' it is a schema definition
error. If dfdl:terminator is not "" and dfdl:initiator is " and
dfdl:emptyValueDelimiterPolicy  is 'initiator' it is a schema definition
error."

*Tracker 346: Changes for Nillable Elements*

Section 13.16
    For property nilValueDelimiterPolicy, before the phrase "It is a schema
definition error if...", insert this sentence: "The value of
dfdl:nilValueDelimiterPolicy  should only be checked if there is a
dfdl:initiator or dfdl:terminator in scope. If so, and
dfdl:nilValueDelimiterPolicy is not set, it is a schema definition error.
If dfdl:initiator is not "" and dfdl:terminator is "" and
dfdl:nilValueDelimiterPolicy is 'terminator' it is a schema definition
error. If dfdl:terminator is not "" and dfdl:initiator is " and
dfdl:nilValueDelimiterPolicy  is 'initiator' it is a schema definition error
."
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.ogf.org/pipermail/dfdl-wg/attachments/20190627/7f34563d/attachment.html>


More information about the dfdl-wg mailing list