[ 
https://issues.apache.org/jira/browse/DAFFODIL-2304?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17066736#comment-17066736
 ] 

Mike Beckerle commented on DAFFODIL-2304:
-----------------------------------------

s6 should be an SDE.

I believe the following is not legal XSD (I checked Walmsley's book XML Schema).

 
{code:java}
<group name="foo">

    <group ref="bar"/> <!-- group ref cannot be the model group of a group def 
-->

</group>
{code}
Because this named group has no sequence or choice model group.

By analogy, the DFDL syntax for a hidden group ref is:

 
{code:java}
<group name="foo2">

  <sequence dfdl:hiddenGroupRef="bar2"/> <!-- group ref cannot be the model 
group of a group def -->
</group>
{code}
This should also not be allowed. Because you can't change it into an unhidden 
group ref.

So you have to put either a sequence or choice inside a group definition.

While this is true of reusable group definitions and references, the following 
ARE legal:

 
{code:java}
<complexType name="fooType">

    <group ref="bar"/>

</complexType>
<complexType name="foo2Type">

    <sequence dfdl:hiddenGroupRef="bar"/>

</complexType>
{code}
It's not particularly consistent, but these appear to be the rules of XSD.

 

 

> hiddenGroupRef in group is dropped during unparse
> -------------------------------------------------
>
>                 Key: DAFFODIL-2304
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-2304
>             Project: Daffodil
>          Issue Type: Bug
>    Affects Versions: 2.5.0
>            Reporter: Olabusayo Kilo
>            Priority: Major
>             Fix For: 2.6.0
>
>
> HiddenGroupRef's in a group without a sequence tag (i.e s6 instead of s5) 
> will result in s6 being dropped in an unparse test case (see 
> test_ignoredHiddenGroupRefWithNoSequenceParent), with a "DFDL 
>  
> {code:java}
> <xs:group name="s5">
>   <xs:sequence>
>     <xs:sequence dfdl:hiddenGroupRef="ex:s4" />
>   </xs:sequence>
> </xs:group>
> <xs:group name="s6">
>   <xs:sequence dfdl:hiddenGroupRef="ex:s4" />
> </xs:group>
> <xs:element name="e9" dfdl:lengthKind="delimited">
>   <xs:complexType>
>     <xs:sequence dfdl:separator=",">
>       <xs:sequence dfdl:hiddenGroupRef="ex:s6" />
>       <xs:element name="g" type="xs:int"/>
>     </xs:sequence>
>   </xs:complexType>
> </xs:element>
> {code}
> With some preliminary investigating, I narrowed it down to how children are 
> extracted with apparentXMLChildren in SequenceGroup.scala. There may be 
> implications to changing this that needs to be investigated.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to