<grammar xmlns=“relaxng.org/ns/structure/1.0”>

<start>
  <element name="data">
    <interleave>
      <text/>
      <ref name="inline.class"/>
    </interleave>
  </element>
</start>

<define name="inline.class">
  <choice>
    <element name="bold">
      <ref name="inline"/>
    </element>
    <element name="italic">
      <ref name="inline"/>
    </element>
  </choice>
</define>

<define name="inline">
  <zeroOrMore>
    <choice>
      <text/>
      <element name="code">
        <ref name="inline"/>
      </element>
      <element name="em">
        <ref name="inline"/>
      </element>
      <!-- etc -->
    </choice>
  </zeroOrMore>
</define>

</grammar>