<?xml version=“1.0” encoding=“UTF-8”?>
<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 the XML schema module for the layout elements of the presentation part of MathML. Author: Stéphane Dalmas, INRIA. </xs:documentation>
</xs:annotation>
<!– “mrow” –>
<xs:attributeGroup name=“mrow.attlist”>
<xs:attributeGroup ref="Common.attrib"/>
</xs:attributeGroup>
<xs:complexType name=“mrow.type”>
<xs:group ref="Presentation-expr.class" minOccurs="0" maxOccurs="unbounded"/> <xs:attributeGroup ref="mrow.attlist"/>
</xs:complexType>
<xs:element name=“mrow” type=“mrow.type”/>
<!– “mfrac” –>
<xs:attributeGroup name=“mfrac.attlist”>
<xs:attribute name="bevelled" type="xs:boolean"/> <xs:attribute name="denomalign" type="centering" default="center"/> <xs:attribute name="numalign" type="centering" default="center"/> <xs:attribute name="linethickness" default="1"> <xs:simpleType> <xs:union memberTypes="length-with-optional-unit thickness"/> </xs:simpleType> </xs:attribute> <xs:attributeGroup ref="Common.attrib"/>
</xs:attributeGroup>
<xs:complexType name=“mfrac.type”>
<xs:group ref="Presentation-expr.class" minOccurs="2" maxOccurs="2"/> <xs:attributeGroup ref="mfrac.attlist"/>
</xs:complexType>
<xs:element name=“mfrac” type=“mfrac.type”/>
<!– “msqrt” –>
<xs:attributeGroup name=“msqrt.attlist”>
<xs:attributeGroup ref="Common.attrib"/>
</xs:attributeGroup>
<!– “msqrt” has an “inferred mrow” if more than one argument –> <xs:complexType name=“msqrt.type”>
<xs:group ref="Presentation-expr.class" minOccurs="0" maxOccurs="unbounded"/> <xs:attributeGroup ref="msqrt.attlist"/>
</xs:complexType>
<xs:element name=“msqrt” type=“msqrt.type”/>
<!– “mroot” –>
<xs:attributeGroup name=“mroot.attlist”>
<xs:attributeGroup ref="Common.attrib"/>
</xs:attributeGroup>
<xs:complexType name=“mroot.type”>
<xs:group ref="Presentation-expr.class" minOccurs="2" maxOccurs="2"/> <xs:attributeGroup ref="mroot.attlist"/>
</xs:complexType>
<xs:element name=“mroot” type=“mroot.type”/>
<!– “mpadded” –>
<xs:simpleType name=“mpadded-space”>
<xs:restriction base="xs:string"> <xs:pattern
value=“(+|-)?(+|[0-9]*.+)(((%?) *(width|lspace|height|depth))|(em|ex|px|in|cm|mm|pt|pc))”/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name=“mpadded-width-space”>
<xs:restriction base="xs:string"> <!-- MaxF: definition from spec seems wrong, fixing to ([+|-] unsigned-number (%[pseudo-unit]|pseudo-unit|h-unit)) | namedspace | 0 --> <xs:pattern value="((\+|-)?([0-9]+|[0-9]*\.[0-9]+)(((%?) *(width|lspace|height|depth)?)|(width|lspace|height|depth)|(em|ex|px|in|cm|mm|pt|pc)))|((veryverythin|verythin|thin|medium|thick|verythick|veryverythick)mathspace)|0"/> </xs:restriction>
</xs:simpleType>
<xs:attributeGroup name=“mpadded.attlist”>
<xs:attribute name="width" type="mpadded-width-space"/> <!-- should have default=0 below but '0' is not in value space --> <!-- see bug #425 --> <xs:attribute name="lspace" type="mpadded-space"/> <xs:attribute name="height" type="mpadded-space"/> <xs:attribute name="depth" type="mpadded-space"/> <xs:attributeGroup ref="Common.attrib"/>
</xs:attributeGroup>
<xs:complexType name=“mpadded.type”>
<xs:group ref="Presentation-expr.class" minOccurs="0" maxOccurs="unbounded"/> <xs:attributeGroup ref="mpadded.attlist"/>
</xs:complexType>
<xs:element name=“mpadded” type=“mpadded.type”/>
<!– “mphantom” –>
<xs:attributeGroup name=“mphantom.attlist”>
<xs:attributeGroup ref="Common.attrib"/>
</xs:attributeGroup>
<xs:complexType name=“mphantom.type”>
<xs:group ref="Presentation-expr.class" minOccurs="0" maxOccurs="unbounded"/> <xs:attributeGroup ref="mphantom.attlist"/>
</xs:complexType>
<xs:element name=“mphantom” type=“mphantom.type”/>
<!– “mfenced” –>
<xs:attributeGroup name=“mfenced.attlist”>
<xs:attribute name="open" type="xs:string" default="("/> <xs:attribute name="close" type="xs:string" default=")"/> <xs:attribute name="separators" type="xs:string" default=","/> <xs:attributeGroup ref="Common.attrib"/>
</xs:attributeGroup>
<xs:complexType name=“mfenced.type”>
<xs:group ref="Presentation-expr.class" minOccurs="0" maxOccurs="unbounded"/> <xs:attributeGroup ref="mfenced.attlist"/>
</xs:complexType>
<xs:element name=“mfenced” type=“mfenced.type”/>
<!– “menclose” –>
<xs:attributeGroup name=“menclose.attlist”>
<xs:attribute name="notation" default="longdiv"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="actuarial"/> <xs:enumeration value="longdiv"/> <xs:enumeration value="radical"/> <xs:enumeration value="box"/> <xs:enumeration value="roundedbox"/> <xs:enumeration value="circle"/> <xs:enumeration value="left"/> <xs:enumeration value="right"/> <xs:enumeration value="top"/> <xs:enumeration value="bottom"/> <xs:enumeration value="updiagonalstrike"/> <xs:enumeration value="downdiagonalstrike"/> <xs:enumeration value="verticalstrike"/> <xs:enumeration value="horizontalstrike"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attributeGroup ref="Common.attrib"/>
</xs:attributeGroup>
<xs:complexType name=“menclose.type”>
<xs:group ref="Presentation-expr.class" minOccurs="0" maxOccurs="unbounded"/> <xs:attributeGroup ref="menclose.attlist"/>
</xs:complexType>
<xs:element name=“menclose” type=“menclose.type”/>
<!– And the group of everything –>
<xs:group name=“Presentation-layout.class”>
<xs:choice> <xs:element ref="mrow"/> <xs:element ref="mfrac"/> <xs:element ref="msqrt"/> <xs:element ref="mroot"/> <xs:element ref="mpadded"/> <xs:element ref="mphantom"/> <xs:element ref="mfenced"/> <xs:element ref="menclose"/> </xs:choice>
</xs:group>
</xs:schema>
<!–
Copyright û 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/. -->