<grammar ns="omissible+http://www.w3.org/1999/xhtml"
xmlns:explicit="http://www.w3.org/1999/xhtml"
xmlns:terminal="http://en.wikipedia.org/wiki/Terminal_and_nonterminal_symbols#Terminal_symbols"
xmlns="http://relaxng.org/ns/structure/1.0">
<include href="xhtml/xhtml-strict.rng"/>
<define name="head" combine="choice">
<element name="head">
<ref name="head.content"/>
</element>
</define>
<define name="title" combine="choice">
<element name="title">
<text/>
</element>
</define>
<define name="body" combine="choice">
<element name="body">
<ref name="Block.model"/>
</element>
</define>
<define name="p" combine="choice">
<element name="p">
<ref name="paragraph_separator"/>
<ref name="Inline.model"/>
</element>
</define>
<define name="ol" combine="choice">
<element name="ol">
<oneOrMore>
<ref name="ol.li"/>
</oneOrMore>
</element>
</define>
<define name="ul" combine="choice">
<element name="ul">
<oneOrMore>
<ref name="ul.li"/>
</oneOrMore>
</element>
</define>
<define name="hr" combine="choice">
<element name="hr">
<ref name="hr_marker"/>
</element>
</define>
<define name="em" combine="choice">
<element name="em">
<ref name="emphasis_marker"/>
<ref name="em.content.non-recursive"/>
<ref name="emphasis_marker"/>
</element>
</define>
<define name="ol.li">
<element name="li">
<ref name="ol_item_marker"/>
<ref name="li.content.non-recursive"/>
</element>
</define>
<define name="ul.li">
<element name="li">
<ref name="ul_item_marker"/>
<ref name="li.content.non-recursive"/>
</element>
</define>
<define name="em.content.non-recursive">
<zeroOrMore>
<choice>
<text/>
<ref name="abbr"/>
<ref name="acronym"/>
<ref name="br"/>
<ref name="cite"/>
<ref name="code"/>
<ref name="dfn"/>
<ref name="kbd"/>
<ref name="q"/>
<ref name="samp"/>
<ref name="span"/>
<ref name="strong"/>
<ref name="var"/>
<ref name="em.explicit"/>
</choice>
</zeroOrMore>
</define>
<define name="li.content.non-recursive">
<zeroOrMore>
<choice>
<text/>
<ref name="Inline.class"/>
<ref name="address"/>
<ref name="blockquote"/>
<ref name="div"/>
<ref name="pre"/>
<ref name="Heading.class"/>
<ref name="dl"/>
<ref name="p.explicit"/>
<ref name="ol.explicit"/>
<ref name="ul.explicit"/>
</choice>
</zeroOrMore>
</define>
<define name="em.explicit">
<element name="explicit:em">
<ref name="em.attlist"/>
<ref name="Inline.model"/>
</element>
</define>
<define name="p.explicit">
<element name="explicit:p">
<ref name="p.attlist"/>
<ref name="Inline.model"/>
</element>
</define>
<define name="ol.explicit">
<element name="explicit:ol">
<ref name="ol.attlist"/>
<oneOrMore>
<ref name="li"/>
</oneOrMore>
</element>
</define>
<define name="ul.explicit">
<element name="explicit:ul">
<ref name="ul.attlist"/>
<oneOrMore>
<ref name="li"/>
</oneOrMore>
</element>
</define>
<define name="emphasis_marker">
<element name="terminal:emphasis_marker">
<value type="string">*</value>
</element>
</define>
<define name="paragraph_separator">
<element name="terminal:paragraph_separator">
<value type="string">

</value>
</element>
</define>
<define name="line_separator">
<element name="terminal:line_separator">
<value type="string">
</value>
</element>
</define>
<define name="ol_item_marker">
<element name="terminal:ol_item_marker">
<value type="token">
# </value>
</element>
</define>
<define name="ul_item_marker">
<element name="terminal:ul_item_marker">
<value type="token">
* </value>
</element>
</define>
<define name="hr_marker">
<element name="terminal:hr_marker">
<value type="token">
----</value>
</element>
</define>
</grammar>