slide 40

RELAX NG XML Interleave (1)

<define name="given">
  <element name="given">
    <text/>
  </element>
</define>

<define name="family">
  <element name="family">
    <text/>
  </element>
</define>

<define name="title">
  <element name="title">
    <text/>
  </element>
</define>

<define name="name">
  <element name="name">
    <interleave>
      <zeroOrMore>
        <ref name="given"/>
      </zeroOrMore>
      <ref name="family"/>
      <optional>
        <ref name="title"/>
      </optional>
    </interleave>
  </element>
</define>