[DFDL-WG] Fw: Spec question: 16.6 Forward Progress Requirement
Tim Kimber
KIMBERT at uk.ibm.com
Wed Jan 29 10:04:59 EST 2014
Proposed revised wording:
16.6 Forward Progress Requirement
When parsing an optional occurrence of an array element, if the element is
found to have a zero-length representation and its associated separator
region is also zero-length then it is a processing error.
An optional occurrence is defined as follows:
- any occurrence of an element with occursCountKind='implicit' and index >
XSDL minOccurs
- any occurrence of an element with occursCountKind='parsed' or
'stopValue'
If occursCountKind is 'stopValue' then the element will not be a point of
uncertainty and the processing error will invalidate the entire array. For
occursCountKind='implicit' or 'parsed' the processing error will terminate
the array and will thus avoid either redundant processing or an infinite
loop ( when XSDL maxOccurs='unbounded').
Feel free to propose better terminology. I'm not sure whether 'optional
occurrence' has been used elsewhere in the specification with a different
meaning.
The final paragraph is conveying important information but can be reworded
if necessary.
regards,
Tim Kimber, DFDL Team,
Hursley, UK
Internet: kimbert at uk.ibm.com
Tel. 01962-816742
Internal tel. 37246742
----- Forwarded by Tim Kimber/UK/IBM on 29/01/2014 14:42 -----
From: Tim Kimber/UK/IBM
To: dfdl-wg at ogf.org,
Date: 28/01/2014 14:24
Subject: Spec question: 16.6 Forward Progress Requirement
16.6 Forward Progress Requirement
It is a processing error when an array is potentially unbounded and the
position in the data does
not move during the parsing of an occurrence of the element including any
associated separator.
This is to prevent an infinite loop. An array is potentially unbounded if
any of the following are
true:
* dfdl:occursCountKind is 'parsed' or 'stopValue'
* dfdl:occursCountKind is 'implicit' and XSDL maxOccurs is 'unbounded'
Q1: Is this paragraph intended to
a) safely terminate the parsing of the array, allowing the parser to
proceed with whatever follows in the DFDL schema or
b) cause the parser to discard the entire array along with everything that
was parsed within the nearest point of uncertainty?
If b) then I think a Schema Definition Error would be more appropriate (
because backing out the entire array implies that none of the occurrences
were well-formed and some later branch might be the correct option ).
Although...
Q2: If the array has occursCountKind='stopValue' then none of the
occurrences is an actual point of uncertainty because only stopValue can
terminate the array. If paragraph 16.1 is invoked then a processing error
will be thrown. But the occurrence is not a point of uncertainty so the
entire array will be treated as badly-formed. In other words, behaviour
will be as described in option b) above. I think that is correct in this
case because the array's stopValue was never found.
Q3: Should this infinite-loop detection be performed only after at least
minOccurs occurrences of the array have been processed successfully? Until
then, I think an empty occurrence should cause the default value to be put
into the info set.
regards,
Tim Kimber, DFDL Team,
Hursley, UK
Internet: kimbert at uk.ibm.com
Tel. 01962-816742
Internal tel. 37246742
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.ogf.org/pipermail/dfdl-wg/attachments/20140129/cd7fad6b/attachment.html>
More information about the dfdl-wg
mailing list