<grammar xmlns="http://relaxng.org/ns/structure/1.0" xmlns:z="http://www.daisy.org/ns/z3998/annotations/#" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:db="http://docbook.org/ns/docbook" ns="http://www.w3.org/1998/Math/MathML" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<info xmlns="http://docbook.org/ns/docbook" xml:lang="en">
<title>The MathML Feature </title>
<annotation annotates="/">
<para>Provides support for mathematical expressions as defined in W3C Mathematical Markup Language (MathML) Version 3.0 . </para>
</annotation>
<author>
<personname>Markus Gylling</personname>
<email>mgylling@daisy.org</email>
</author>
<legalnotice>
<para>Copyright 1998-2009 W3C (MIT, ERCIM, Keio). Use and distribution of this code are permitted under the terms of the W3C Software Notice and License. http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231</para>
</legalnotice>
<revhistory>
<revision>
<date>2012-12-19</date>
<authorinitials>MGy</authorinitials>
<revdescription>
<para>Initial version</para>
</revdescription>
</revision>
</revhistory>
</info>
<div>
<include href="http://www.daisy.org/pipeline/modules/mathml-utils/mathml3-content.rng">
<define name="MathExpression" combine="choice">
<notAllowed/>
</define>
<define name="DeprecatedContExp">
<empty/>
</define>
</include>
<include href="http://www.daisy.org/pipeline/modules/mathml-utils/mathml3-presentation.rng">
<define name="mglyph.deprecatedattributes">
<empty/>
</define>
<define name="DeprecatedTokenAtt">
<empty/>
</define>
<define name="mstyle.deprecatedattributes">
<empty/>
</define>
</include>
<include href="http://www.daisy.org/pipeline/modules/mathml-utils/mathml3-common.rng">
<start combine="choice">
<notAllowed/>
</start>
<define name="NonMathMLAtt">
<notAllowed/>
</define>
<define name="CommonAtt" combine="interleave">
<optional>
<ref name="xml.base.attrib"/>
</optional>
<optional>
<ref name="xml.space.attrib"/>
</optional>
</define>
<define name="anyElement">
<notAllowed/>
</define>
<define name="math">
<element name="math">
<ref name="math.attributes"/>
<oneOrMore>
<ref name="MathExpression"/>
</oneOrMore>
</element>
</define>
<define name="annotation-xml">
<element name="annotation-xml">
<ref name="annotation-xml.specialized.attlist"/>
<ref name="annotation-xml.specialized.choice"/>
</element>
</define>
<define name="CommonDeprecatedAtt">
<notAllowed/>
</define>
</include>
<define name="annotation-xml.specialized.attlist">
<ref name="CommonAtt"/>
<optional>
<ref name="cd"/>
</optional>
<optional>
<ref name="name"/>
</optional>
<optional>
<attribute name="definitionURL">
<data type="anyURI"/>
</attribute>
</optional>
</define>
<define name="annotation-xml.specialized.choice" combine="choice">
<choice>
<group>
<attribute name="encoding">
<choice>
<value>application/mathml-content+xml</value>
<value>MathML-Content</value>
</choice>
</attribute>
<choice>
<ref name="src"/>
<oneOrMore>
<ref name="ContExp"/>
</oneOrMore>
</choice>
</group>
<group>
<attribute name="encoding">
<choice>
<value>application/mathml-presentation+xml</value>
<value>MathML-Presentation</value>
</choice>
</attribute>
<choice>
<ref name="src"/>
<oneOrMore>
<ref name="MathExpression"/>
</oneOrMore>
</choice>
</group>
<group>
<attribute name="encoding">
<value>Z39.98-AI</value>
</attribute>
<ref name="z3998.Flow.choice.model"/>
<sch:rule context="m:annotation-xml[@encoding='Z39.98-AI']">
<sch:assert test="not(descendant::m:*)">The annotation-xml element, when used with Z39.98-AI markup, must not contain any descendants in the MathML namespace. </sch:assert>
</sch:rule>
</group>
</choice>
<sch:rule context="m:annotation-xml">
<sch:assert test="normalize-space(.) or *">The annotation-xml element must neither be empty nor contain only whitespace. </sch:assert>
</sch:rule>
</define>
</div>
<div>
<a:documentation>MathML Feature - default content model contribution </a:documentation>
<define name="z3998.Phrase.extern.class" combine="choice">
<ref name="math"/>
</define>
<define name="z3998.Block.extern.class" combine="choice">
<ref name="math"/>
</define>
</div>
</grammar>