<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--W3C Schema generated by Daniel S. Matthews dan@3-e.net-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
	<xs:element name="argument">
		<xs:complexType>
			<xs:attribute name="name" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string"/>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="label" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string"/>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="description" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string"/>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="storage_class" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="uniform"/>
						<xs:enumeration value="varying"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="type" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="color"/>
						<xs:enumeration value="float"/>
						<xs:enumeration value="point"/>
						<xs:enumeration value="vector"/>
						<xs:enumeration value="normal"/>
						<xs:enumeration value="matrix"/>
						<xs:enumeration value="string"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="extended_type" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="color"/>
						<xs:enumeration value="float"/>
						<xs:enumeration value="time"/>
						<xs:enumeration value="angle"/>
						<xs:enumeration value="distance"/>
						<xs:enumeration value="area"/>
						<xs:enumeration value="volume"/>
						<xs:enumeration value="mass"/>
						<xs:enumeration value="force"/>
						<xs:enumeration value="pressure"/>
						<xs:enumeration value="point"/>
						<xs:enumeration value="vector"/>
						<xs:enumeration value="normal"/>
						<xs:enumeration value="matrix"/>
						<xs:enumeration value="string"/>
						<xs:enumeration value="texture"/>
						<xs:enumeration value="space"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="array_count" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string"/>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="space" type="xs:string" use="required"/>
			<xs:attribute name="output" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:boolean"/>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="default_value" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string"/>
				</xs:simpleType>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	<xs:element name="authors">
		<xs:simpleType>
			<xs:restriction base="xs:string"/>
		</xs:simpleType>
	</xs:element>
	<xs:element name="copyright">
		<xs:simpleType>
			<xs:restriction base="xs:string"/>
		</xs:simpleType>
	</xs:element>
	<xs:element name="description">
		<xs:simpleType>
			<xs:restriction base="xs:string"/>
		</xs:simpleType>
	</xs:element>
	<xs:element name="k3dml">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="shaders"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="shader">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="description"/>
				<xs:element ref="authors"/>
				<xs:element ref="copyright"/>
				<xs:element ref="argument" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute name="type" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="surface"/>
						<xs:enumeration value="light"/>
						<xs:enumeration value="volume"/>
						<xs:enumeration value="imager"/>
						<xs:enumeration value="displacement"/>
						<xs:enumeration value="transformation"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="name" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:string"/>
				</xs:simpleType>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	<xs:element name="shaders">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="shader"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>
