[ 
https://issues.apache.org/jira/browse/DAFFODIL-2562?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mike Beckerle reassigned DAFFODIL-2562:
---------------------------------------

    Assignee: Josh Adams

> Optional element at end of choice branch triggers unparse error
> ---------------------------------------------------------------
>
>                 Key: DAFFODIL-2562
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-2562
>             Project: Daffodil
>          Issue Type: Bug
>          Components: Back End
>    Affects Versions: 3.2.0
>            Reporter: Josh Adams
>            Assignee: Josh Adams
>            Priority: Major
>             Fix For: 3.5.0
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> Given the following schema:
> {{    <xs:group name="groupOfChoice">
>       <xs:sequence>
>         <xs:element name="key" type="xs:string" dfdl:lengthKind="explicit" 
> dfdl:length="1" />
>         <xs:choice dfdl:choiceDispatchKey="{ ./ex:key }">
>           <xs:sequence dfdl:choiceBranchKey="a">
>             <xs:element name="elt_a" type="xs:string" 
> dfdl:lengthKind="explicit" dfdl:length="3" />
>           </xs:sequence>
>           <xs:sequence dfdl:choiceBranchKey="b">
>             <xs:element name="elt_b" type="xs:string" 
> dfdl:lengthKind="explicit" dfdl:length="3" />
>             <xs:element name="elt_c" type="xs:string" 
> dfdl:lengthKind="explicit" dfdl:length="3"
>               minOccurs="0" maxOccurs="1" dfdl:occursCountKind="expression" 
> dfdl:occursCount="{ if (fn:exists(../ex:elt_b)) then 1 else 0 }" />
>           </xs:sequence>
>         </xs:choice>
>       </xs:sequence>
>     </xs:group>}}
> During unparse, the element following this group (the next element after 
> elt_c) will have an invalid ERD and will trigger an unparse error.
> I've spent a fair amount of time looking at this, but was unable to find the 
> root cause of this issue.  I'm thinking that it must be something where the 
> various stacks tracking the current element and next element are some how 
> getting out of sync and when we are looking for the element after elt_c, 
> Daffodil still thinks it is withing the choice containing elt_c.
> I will open a pull request with the test for this bug.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to