[
https://issues.apache.org/jira/browse/DAFFODIL-785?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michael Beckerle resolved DAFFODIL-785.
---------------------------------------
Resolution: Duplicate
Fix Version/s: (was: deferred)
2.2.0
> Assert execution timing for sequence is incorrect.
> --------------------------------------------------
>
> Key: DAFFODIL-785
> URL: https://issues.apache.org/jira/browse/DAFFODIL-785
> Project: Daffodil
> Issue Type: Bug
> Components: Back End, General
> Affects Versions: s10
> Reporter: Michael Beckerle
> Priority: Major
> Fix For: 2.2.0
>
>
> If you have a sequence (presumably same bug will occur for choice), and it
> begins with an annotation containing a dfdl:assert with testKind expression,
> then that is supposed to execute *after* the sequence children have been
> evaluated. This is consistent with elements and element refs, where an
> assert/discriminator with testKind=expression executes AFTER the element
> itself has been parsed.
> This is confusing for sequences and choices because the assert will appear
> lexically before the rest of the sequence/choice children, but it executes
> after. (Perhaps we should issue a warning because the workaround - described
> below - is actually a better & clearer way to write a schema.)
> (When testKind=pattern, they execute before)
> Same goes for discriminators.
> (Errata 3.25: Section 9. Evaluation Order for Statement Annotations)
> Currently seems to execute before.
> This is low priority because the workaround is easy. Just put the assert
> inside it's own sequence, and then insert *that* sequence below all the other
> things in the enclosing sequence.
> You have to do this:
> <sequence>
> ... where the assert was...
> <element .../>
> <element.../>
> <sequence>
> ... new location for assert ...
> </sequence>
> </sequence>
> So the annotation moves below, but is still first in the sequence that
> directly contains it, but that sequence is otherwise empty.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)