<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" combine="choice">
  <element name="bold">
    <ref name="inline"/>
  </element>
</define>

<define name="inline.class" combine="choice">
  <element name="italic">
    <ref name="inline"/>
  </element>
</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>