Following is the resolution from action 139.

An errata document accompaniment to the DFDL 1.0 specification is under production and this will be added to it.

Regards

Steve Hanson
Architect, Data Format Description Language (DFDL)
Co-Chair,
OGF DFDL Working Group
IBM SWG, Hursley, UK

smh@uk.ibm.com
tel:+44-1962-815848

----- Forwarded by Steve Hanson/UK/IBM on 05/07/2011 18:26 -----

WG resolution for action 139

a) In-scope delimiters

Clarification: Using lengthKind 'explicit', 'implicit', 'prefixed' or 'pattern' means that delimiter scanning is turned off and in-scope delimiters are not looked for within or between elements.

b) Policing a physical constraint without terminating a parse

The example cited was using a dfdl:assert to police a physical length constraint when lengthKind is 'delimited'.

Addition:
- A new failure type is introduced, 'Recoverable Error', after which the parser will continue.
- Importantly, it does not cause backtracking to take place when speculating.
- It can be raised via a new enum attribute on dfdl:assert called 'failureType' - see below.
- An error occurring during evaluation of a dfdl:assert remains a Processing Error.
- All existing stated Processing Errors remain as such.
- Discriminators remain unchanged.
- The issuing of Recoverable Errors is independent of whether validation is enabled.
Property Name Description
failureType Enum (optional)

Valid values are 'processingError',  'recoverableError'.
Default value is 'processingError'.

Specifies the type of failure that occurs when the dfdl:assert is unsuccessful.

When 'processingError', a processing error is raised.

When 'recoverableError', a recoverable error is raised.

Annotation: dfdl:assert


The WG believe the new failure type is genuinely useful going forward as it allows the parser or unparser to continue in situations where it was unable to do so.

The WG considered extending Validation Error to cover this, but the spec is quite clear that these are logical checks performed on the infoset and the behaviour of the DFDL processor is unspecified, so it seemed best not to change this and to introduce a new failure type.
 






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