Example of more X-definitions (collestion) in one XML document and cross-references between them:
<xd:collection xmlns:xd="http://www.xdef.org/xdef/4.2" >
<xd:def xd:name="Example" xd:root="Family" >
<Family>
<Father xd:script="occurs ?; ref common#Person;" />
<Mother xd:script="occurs 1; ref common#Person;" />
<xd:mixed>
<Son xd:script="occurs 0..12; ref common#Person;" />
<Daughter xd:script="occurs 0..12; ref common#Person;" />
</xd:mixed>
<Address xd:script= "occurs 1; ref common#Address;" />
</Family>
</xd:def>
<!-- Models of referred elements -->
<xd:def xd:name="common" >
<Person Firstname ="required string(1,30)"
Familyname="required string(1,30)"
BirthDate ="required date()" />
<Address Street="required string(1,30)"
Number="optional int()"
City ="required string()" />
</xd:def>
</xd:collection>
You can try it HERE