<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:ex="Evaluators" xmlns:e="Evaluator" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ax="Attributes" xmlns:a="Attribute" targetNamespace="Evaluators" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:import namespace="Attribute" schemaLocation="../Attribute/Attribute.xsd"/>
	<xs:import namespace="Attributes" schemaLocation="../Attribute/Attributes.xsd"/>
	<xs:import namespace="Evaluator" schemaLocation="./Evaluator.xsd"/>
	<xs:complexType name="KeyframeAttrType">
		<xs:annotation>
			<xs:documentation>Contains the Attributes of a single frame of animation</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="a:AttributeContainerType">
				<xs:sequence minOccurs="0">
					<xs:element name="params" type="a:AttributeVectorType"/>
				</xs:sequence>
				<xs:attribute name="time" type="xs:float" use="required"/>
				<xs:attribute name="value" type="xs:float" use="required"/>
				<xs:attribute name="shape" type="xs:unsignedInt" use="optional" default="0"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="KeyframeInterpolator">
		<xs:annotation>
			<xs:documentation>Interpolator Evaluator that outputs keyframed channel data in order to change a geometry's attributes over time</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="e:EvaluatorType">
					<xs:sequence minOccurs="0" maxOccurs="unbounded">
						<xs:element name="channels" minOccurs="0">
							<xs:complexType>
								<xs:complexContent>
									<xs:extension base="a:AttributeVectorType">
										<xs:sequence>
											<xs:element ref="ex:key" minOccurs="0" maxOccurs="unbounded"/>
										</xs:sequence>
									</xs:extension>
								</xs:complexContent>
							</xs:complexType>
						</xs:element>
						<xs:element name="startKeys" minOccurs="0">
							<xs:complexType>
								<xs:complexContent>
									<xs:extension base="a:AttributeVectorType"/>
								</xs:complexContent>
							</xs:complexType>
						</xs:element>
						<xs:element name="endKeys" minOccurs="0">
							<xs:complexType>
								<xs:complexContent>
									<xs:extension base="a:AttributeVectorType"/>
								</xs:complexContent>
							</xs:complexType>
						</xs:element>
						<xs:element name="preBehaviors" minOccurs="0">
							<xs:complexType>
								<xs:complexContent>
									<xs:extension base="a:AttributeVectorType"/>
								</xs:complexContent>
							</xs:complexType>
						</xs:element>
						<xs:element name="postBehaviors" type="a:AttributeVectorType" minOccurs="0"/>
						<xs:element name="resultValues" type="a:AttributeVectorType" minOccurs="0"/>
					</xs:sequence>
					<xs:attribute name="time" type="xs:float" use="optional" default="0"/>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="key" type="ex:KeyframeAttrType"/>
</xs:schema>
