<xs:schema 
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns="http://www.w3.org/1998/Math/MathML"
  targetNamespace="http://www.w3.org/1998/Math/MathML"
  elementFormDefault="qualified">

<xs:annotation>
  <xs:documentation>
  This is an XML Schema module for the elementary functions in content
  MathML.
  Author: St&#233;phane Dalmas, INRIA.
  </xs:documentation>
</xs:annotation>

<!-- a common type for all this -->

<xs:complexType name="Elementary-functions.type">
  <xs:attributeGroup ref="Definition.attrib"/>
  <xs:attributeGroup ref="Common.attrib"/>
</xs:complexType>

<!-- Exp and logs -->

<xs:element name="exp" type="Elementary-functions.type"/>
<xs:element name="ln" type="Elementary-functions.type"/>
<xs:element name="log" type="Elementary-functions.type"/>

<!-- special element of the base of logarithms -->

<xs:group name="logbase.content">
  <xs:sequence>
    <xs:group ref="Content-expr.class"/>
  </xs:sequence>
</xs:group>

<xs:complexType name="logbase.type">
  <xs:group ref="logbase.content"/>
  <xs:attributeGroup ref="Common.attrib"/>
</xs:complexType>

<xs:element name="logbase" type="logbase.type"/>

<!-- Trigonometric functions -->

<xs:element name="sin" type="Elementary-functions.type"/>
<xs:element name="cos" type="Elementary-functions.type"/>
<xs:element name="tan" type="Elementary-functions.type"/>
<xs:element name="sec" type="Elementary-functions.type"/>
<xs:element name="csc" type="Elementary-functions.type"/>
<xs:element name="cot" type="Elementary-functions.type"/>

<xs:element name="arcsin" type="Elementary-functions.type"/>
<xs:element name="arccos" type="Elementary-functions.type"/>
<xs:element name="arctan" type="Elementary-functions.type"/>
<xs:element name="arccot" type="Elementary-functions.type"/>
<xs:element name="arccsc" type="Elementary-functions.type"/>
<xs:element name="arcsec" type="Elementary-functions.type"/>

<!-- Hyperbolic trigonometric functions -->

<xs:element name="sinh" type="Elementary-functions.type"/>
<xs:element name="cosh" type="Elementary-functions.type"/>
<xs:element name="tanh" type="Elementary-functions.type"/>
<xs:element name="sech" type="Elementary-functions.type"/>
<xs:element name="csch" type="Elementary-functions.type"/>
<xs:element name="coth" type="Elementary-functions.type"/>
<xs:element name="arccosh" type="Elementary-functions.type"/>
<xs:element name="arccoth" type="Elementary-functions.type"/>
<xs:element name="arccsch" type="Elementary-functions.type"/>
<xs:element name="arcsech" type="Elementary-functions.type"/>
<xs:element name="arcsinh" type="Elementary-functions.type"/>
<xs:element name="arctanh" type="Elementary-functions.type"/>

<!-- And the group of everything -->

<xs:group name="Content-elementary-functions.class">
  <xs:choice>
    <xs:element ref="exp"/>
    <xs:element ref="ln"/>
    <xs:element ref="log"/>
    <xs:element ref="logbase"/>
    <xs:element ref="sin"/>
    <xs:element ref="cos"/>
    <xs:element ref="tan"/>
    <xs:element ref="sec"/>
    <xs:element ref="csc"/>
    <xs:element ref="cot"/>
    <xs:element ref="arcsin"/>
    <xs:element ref="arccos"/>
    <xs:element ref="arctan"/>
    <xs:element ref="arcsec"/>
    <xs:element ref="arccsc"/>
    <xs:element ref="arccot"/>
    <xs:element ref="sinh"/>
    <xs:element ref="cosh"/>
    <xs:element ref="tanh"/>
    <xs:element ref="sech"/>
    <xs:element ref="csch"/>
    <xs:element ref="coth"/>
    <xs:element ref="arccosh"/>
    <xs:element ref="arccoth"/>
    <xs:element ref="arccsch"/>
    <xs:element ref="arcsech"/>
    <xs:element ref="arcsinh"/>
    <xs:element ref="arctanh"/>
  </xs:choice>
</xs:group>

</xs:schema>
<!--
  Copyright &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
  of Technology, Institut National de Recherche en Informatique et en
  Automatique, Keio University). All Rights Reserved. See
  http://www.w3.org/Consortium/Legal/.
  -->
