<rng:element name="personGrp">
<rng:ref name="att.global.attributes"/>
<rng:optional>
<rng:attribute name="role">
<rng:ref name="data.enumerated"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="sex">
<rng:choice>
<rng:ref name="data.sex"/>
<rng:value>mixed</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="age">
<rng:ref name="data.enumerated"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="size">
<rng:list>
<rng:oneOrMore>
<rng:ref name="data.word"/>
</rng:oneOrMore>
</rng:list>
</rng:attribute>
</rng:optional>
<rng:choice>
<rng:oneOrMore>
<rng:ref name="model.pLike"/>
</rng:oneOrMore>
<rng:zeroOrMore>
<rng:ref name="model.personPart"/>
</rng:zeroOrMore>
</rng:choice>
</rng:element>
element personGrp
{
att.global.attributes,
attribute role { data.enumerated }?,
attribute sex { data.sex | "mixed" }?,
attribute age { data.enumerated }?,
attribute size { list { data.word+ } }?,
( model.pLike+ | model.personPart* )
}