<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:element name="parser">
		<xs:annotation>
			<xs:documentation>Root element.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:choice maxOccurs="unbounded">
					<xs:element name="prefixOperator">
						<xs:complexType>
							<xs:attribute name="startSymbol" type="xs:string" use="required"/>
							<xs:attribute name="qedeq" type="xs:string" use="required"/>
							<xs:attribute name="qedeqArgument" type="xs:string" use="optional"/>
							<xs:attribute name="priority" type="xs:nonNegativeInteger" use="required"/>
							<xs:attribute name="min" type="xs:nonNegativeInteger" use="required"/>
							<xs:attribute name="max" type="xs:nonNegativeInteger" use="optional"/>
						</xs:complexType>
					</xs:element>
					<xs:element name="infixOperator">
						<xs:complexType>
							<xs:attribute name="startSymbol" type="xs:string" use="required"/>
							<xs:attribute name="qedeq" type="xs:string" use="required"/>
							<xs:attribute name="qedeqArgument" type="xs:string" use="optional"/>
							<xs:attribute name="priority" type="xs:nonNegativeInteger" use="required"/>
							<xs:attribute name="min" type="xs:nonNegativeInteger" use="required"/>
							<xs:attribute name="max" type="xs:nonNegativeInteger" use="optional"/>
						</xs:complexType>
					</xs:element>
					<xs:element name="functionOperator">
						<xs:complexType>
							<xs:attribute name="startSymbol" type="xs:string" use="required"/>
							<xs:attribute name="qedeq" type="xs:string" use="required"/>
							<xs:attribute name="qedeqArgument" type="xs:string" use="optional"/>
							<xs:attribute name="priority" type="xs:nonNegativeInteger" use="required"/>
							<xs:attribute name="min" type="xs:nonNegativeInteger" use="required"/>
							<xs:attribute name="max" type="xs:nonNegativeInteger" use="optional"/>
						</xs:complexType>
					</xs:element>
					<xs:element name="complexOperator">
						<xs:complexType>
							<xs:attribute name="startSymbol" type="xs:string" use="required"/>
							<xs:attribute name="separatorSymbol" type="xs:string" use="required"/>
							<xs:attribute name="endSymbol" type="xs:string" use="required"/>
							<xs:attribute name="qedeq" type="xs:string" use="required"/>
							<xs:attribute name="qedeqArgument" type="xs:string" use="optional"/>
							<xs:attribute name="priority" type="xs:nonNegativeInteger" use="required"/>
							<xs:attribute name="min" type="xs:nonNegativeInteger" use="required"/>
							<xs:attribute name="max" type="xs:nonNegativeInteger" use="optional"/>
						</xs:complexType>
					</xs:element>
				</xs:choice>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:simpleType name="operatorType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="prefix"/>
			<xs:enumeration value="infix"/>
			<xs:enumeration value="function"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>
