You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@daffodil.apache.org by "Steve Lawrence (JIRA)" <ji...@apache.org> on 2019/06/20 19:27:00 UTC

[jira] [Created] (DAFFODIL-2162) direct dispatch choice that has an array branch causes abort during compilation

Steve Lawrence created DAFFODIL-2162:
----------------------------------------

             Summary: direct dispatch choice that has an array branch causes abort during compilation
                 Key: DAFFODIL-2162
                 URL: https://issues.apache.org/jira/browse/DAFFODIL-2162
             Project: Daffodil
          Issue Type: Bug
          Components: Front End
            Reporter: Steve Lawrence
             Fix For: 2.4.0


This schema has a direct dispatch where a choice branch is an array:
{code:xml}
  <xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd" />

  <xs:annotation>
    <xs:appinfo source="http://www.ogf.org/dfdl/">
      <dfdl:format ref="ex:GeneralFormat"
          lengthKind="implicit"
          representation="binary" />
    </xs:appinfo>
  </xs:annotation>

  <xs:element name="root">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="index" type="xs:int" />
        <xs:choice dfdl:choiceDispatchKey="{ xs:string(./index) } ">
          <xs:element name="values1" type="xs:int" minOccurs="1" maxOccurs="2" dfdl:choiceBranchKey="1" />
          <xs:element name="values2" type="xs:int" dfdl:choiceBranchKey="2" />
        </xs:choice>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
{code}

{quote}
org.apache.daffodil.exceptions.Abort: Not to be called on choice branches.
org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:129)
org.apache.daffodil.exceptions.Assert$.usageError(Assert.scala:117)
org.apache.daffodil.dsom.ChoiceBranchImpliedSequence.emptyFormatFactory(SequenceGroup.scala:413)
org.apache.daffodil.dsom.AnnotatedMixin.$anonfun$formatAnnotation$1(AnnotatedSchemaComponent.scala:352)
	at org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:129)
	at org.apache.daffodil.exceptions.Assert$.usageError(Assert.scala:117)
	at org.apache.daffodil.dsom.ChoiceBranchImpliedSequence.emptyFormatFactory(SequenceGroup.scala:413)
	at org.apache.daffodil.dsom.AnnotatedMixin.$anonfun$formatAnnotation$1(AnnotatedSchemaComponent.scala:352
 ...
{quote}

If i remove the choice dispatch or change maxOccurs="1" the exception goes away.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)