﻿<xs:schema
   targetNamespace="http://www.atlabase.com/schemas/CommonExportFormat_2.11.0"
   xmlns:xs="http://www.w3.org/2001/XMLSchema"
   xmlns:cef="http://www.atlabase.com/schemas/CommonExportFormat_2.11.0"
   elementFormDefault="qualified">

	<!-- Document root -->
	<xs:element name="AtlaBase.CommonExportFormat">
		<xs:complexType>
			<xs:choice minOccurs="1" maxOccurs="unbounded">
				<xs:element name="Brand" type="cef:tBrand"/>
				<xs:element name="Filter" type="cef:tFilter"/>
				<xs:element name="Gobo" type="cef:tGobo"/>
				<xs:element name="Fixture" type="cef:tFixture"/>
				<xs:element name="Symbol" type="cef:tSymbol"/>
			</xs:choice>
		</xs:complexType>
	</xs:element>

	<!-- Brand -->
	<xs:complexType name="tBrand">
		<xs:sequence>
			<xs:element name="Name" type="xs:string" minOccurs="1" maxOccurs="1" />
		</xs:sequence>
		<xs:attribute name="Identifier" type="xs:string" use="required"/>
	</xs:complexType>

	<!-- Filter -->
	<xs:complexType name="tFilter">
		<xs:sequence>
			<xs:element name="Color" type="cef:tFilterColor" minOccurs="1" maxOccurs="1" />
			<xs:element name="HorizontalFrost" type="xs:float" minOccurs="1" maxOccurs="1" />
			<xs:element name="VerticalFrost" type="xs:float" minOccurs="1" maxOccurs="1" />
		</xs:sequence>
		<xs:attribute name="Identifier" type="xs:string" use="required"/>
		<xs:attribute name="Version" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="VersionDate" type="xs:date" use="required"/>
		<xs:attribute name="Brand" type="xs:string" use="required"/>
		<xs:attribute name="Code" type="xs:string" use="optional"/>
		<xs:attribute name="Name" type="xs:string" use="optional"/>
		<xs:attribute name="PartNo" type="xs:string" use="optional"/>
		<xs:attribute name="Origin" type="xs:string" use="optional"/>
	</xs:complexType>

	<xs:complexType name="tFilterColor">
		<xs:sequence>
			<xs:element name="sRGB" minOccurs="1" maxOccurs="1">
				<xs:complexType>
					<xs:attribute name="Red" type="xs:unsignedByte" use="required" />
					<xs:attribute name="Green" type="xs:unsignedByte" use="required" />
					<xs:attribute name="Blue" type="xs:unsignedByte" use="required" />
				</xs:complexType>
			</xs:element>
			<xs:element name="CIE1931" minOccurs="0" maxOccurs="1">
				<xs:complexType>
					<xs:attribute name="x" type="xs:float" use="required" />
					<xs:attribute name="y" type="xs:float" use="required" />
					<xs:attribute name="Y" type="xs:float" use="required" />
					<xs:attribute name="K" type="xs:unsignedShort" use="required" />
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>

	<!-- Gobo -->
	<xs:complexType name="tGobo">
		<xs:sequence>
			<xs:element name="Type" type="cef:tGoboType" minOccurs="1" maxOccurs="1" />
			<xs:element name="AnimationDiscRatio" minOccurs="0" maxOccurs="1">
				<xs:simpleType>
					<xs:restriction base="xs:float">
						<xs:minExclusive value="0" />
						<xs:maxInclusive value="1" />
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="Tags" type="xs:string" minOccurs="0" maxOccurs="1" />
			<xs:element name="ReplacementGobo" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="Identifier" type="xs:string" use="required"/>
					<xs:attribute name="Version" type="xs:unsignedInt" use="required"/>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="Identifier" type="xs:string" use="required"/>
		<xs:attribute name="Version" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="VersionDate" type="xs:date" use="required"/>
		<xs:attribute name="Brand" type="xs:string" use="required"/>
		<xs:attribute name="Code" type="xs:string" use="optional"/>
		<xs:attribute name="Name" type="xs:string" use="optional"/>
		<xs:attribute name="PartNo" type="xs:string" use="optional"/>
		<xs:attribute name="Origin" type="xs:string" use="optional"/>
	</xs:complexType>

	<!-- Fixture-->
	<xs:complexType name="tFixture">
		<xs:sequence>
			<xs:element name="Class" type="xs:string" minOccurs="1" maxOccurs="1"/>
			<xs:element name="Category" type="xs:string" minOccurs="1" maxOccurs="1"/>
			<xs:element name="SymbolIdentifier" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="RDM" minOccurs="0" maxOccurs="1">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="ManufacturerId" minOccurs="1" maxOccurs="1">
							<xs:simpleType>
								<xs:restriction base="xs:unsignedShort">
									<xs:minInclusive value="1"/>
									<xs:maxInclusive value="32767"/>
								</xs:restriction>
							</xs:simpleType>
						</xs:element>
						<xs:element name="DeviceModelId" type="xs:unsignedShort" minOccurs="1" maxOccurs="1"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="Weight" type="xs:string" minOccurs="1" maxOccurs="1"/>
			<xs:element name="Wattage" type="xs:string" minOccurs="1" maxOccurs="1"/>
			<xs:element name="CellCount" type="xs:unsignedShort" minOccurs="1" maxOccurs="1" />
			<xs:element name="Shutter" minOccurs="1" maxOccurs="1">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="MinFrequency" type="xs:float" minOccurs="1" maxOccurs="1"/>
						<xs:element name="MaxFrequency" type="xs:float" minOccurs="1" maxOccurs="1"/>
						<xs:element name="MinDuration" type="xs:float" minOccurs="1" maxOccurs="1"/>
						<xs:element name="MaxDuration" type="xs:float" minOccurs="1" maxOccurs="1"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="FramingShutters" minOccurs="1" maxOccurs="1">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="None" />
						<xs:enumeration value="OrthogonalSinglePointShutters" />
						<xs:enumeration value="OrthogonalTwoPointShutters" />
						<xs:enumeration value="PerimetralSinglePointShutters" />
						<xs:enumeration value="ExternalBarndoors" />
						<xs:enumeration value="InternalBarndoors" />
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="ColorFlags" minOccurs="0" maxOccurs="1">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Cyan" type="cef:tFixtureColorFlag" minOccurs="0" maxOccurs="1" />
						<xs:element name="Magenta" type="cef:tFixtureColorFlag" minOccurs="0" maxOccurs="1" />
						<xs:element name="Yellow" type="cef:tFixtureColorFlag" minOccurs="0" maxOccurs="1" />
						<xs:element name="CTO" type="cef:tFixtureColorFlag" minOccurs="0" maxOccurs="1" />
						<xs:element name="CTB" type="cef:tFixtureColorFlag" minOccurs="0" maxOccurs="1" />
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="FrostFlags" minOccurs="0" maxOccurs="1">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Flag" minOccurs="1" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="Name" type="xs:string" use="optional" />
								<xs:attribute name="Frost" type="cef:tPositiveFloat" use="required" />
								<xs:attribute name="Index" type="xs:unsignedInt" use="required"/>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="Axis" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Range" type="xs:float" minOccurs="1" maxOccurs="1" />
						<xs:element name="Trim" type="xs:float" minOccurs="1" maxOccurs="1" />
						<xs:element name="Inverse" type="cef:tBoolean" minOccurs="1" maxOccurs="1" />
						<xs:element name="MinTime" type="xs:float" minOccurs="1" maxOccurs="1" />
					</xs:sequence>
					<xs:attribute name="Name" type="cef:tFixtureAxisName" use="required" />
					<xs:attribute name="Index" type="xs:unsignedByte" use="required" />
				</xs:complexType>
			</xs:element>
			<xs:element name="Part" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Host" minOccurs="0" maxOccurs="1">
							<xs:complexType>
								<xs:attribute name="PartName" type="xs:string" use="required" />
								<xs:attribute name="AxisName" type="cef:tFixtureAxisName" use="required" />
								<xs:attribute name="AxisIndex" type="xs:unsignedByte" use="required" />
							</xs:complexType>
						</xs:element>
						<xs:element name="Model" minOccurs="0" maxOccurs="1">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="Shape" minOccurs="1" maxOccurs="1">
										<xs:simpleType>
											<xs:restriction base="xs:string">
												<xs:enumeration value="Box" />
												<xs:enumeration value="Tube" />
												<xs:enumeration value="Sphere" />
												<xs:enumeration value="PAR" />
												<xs:enumeration value="TubeWithBox" />
												<xs:enumeration value="ConeWithTube" />
												<xs:enumeration value="SymmetricEgg" />
												<xs:enumeration value="FlatBottomEgg" />
												<xs:enumeration value="FlatBottomTubeEgg" />
												<xs:enumeration value="Scanner" />
												<xs:enumeration value="YokeBase" />
												<xs:enumeration value="YokeArm" />
												<xs:enumeration value="FrontmountBox" />
												<xs:enumeration value="FrontmountTube" />
												<xs:enumeration value="FrontmountScanner" />
											</xs:restriction>
										</xs:simpleType>
									</xs:element>
									<xs:element name="Width" type="xs:float" minOccurs="1" maxOccurs="1" />
									<xs:element name="Height" type="xs:float" minOccurs="1" maxOccurs="1" />
									<xs:element name="Length" type="xs:float" minOccurs="1" maxOccurs="1" />
									<xs:element name="Aperture" type="xs:float" minOccurs="1" maxOccurs="1" />
								</xs:sequence>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
					<xs:attribute name="Name" type="xs:string" use="required" />
				</xs:complexType>
			</xs:element>
			<xs:element name="LightSource" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Host" minOccurs="0" maxOccurs="1">
							<xs:complexType>
								<xs:attribute name="PartName" type="xs:string" use="required" />
							</xs:complexType>
						</xs:element>
						<xs:element name="Location" minOccurs="0" maxOccurs="1">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="Center" minOccurs="1" maxOccurs="1">
										<xs:complexType>
											<xs:attribute name="X" type="xs:float" use="required" />
											<xs:attribute name="Y" type="xs:float" use="required" />
											<xs:attribute name="Z" type="xs:float" use="required" />
										</xs:complexType>
									</xs:element>
									<xs:element name="Direction" minOccurs="1" maxOccurs="1">
										<xs:complexType>
											<xs:attribute name="X" type="xs:float" use="required" />
											<xs:attribute name="Y" type="xs:float" use="required" />
											<xs:attribute name="Z" type="xs:float" use="required" />
										</xs:complexType>
									</xs:element>
									<xs:element name="Normal" minOccurs="1" maxOccurs="1">
										<xs:complexType>
											<xs:attribute name="X" type="xs:float" use="required" />
											<xs:attribute name="Y" type="xs:float" use="required" />
											<xs:attribute name="Z" type="xs:float" use="required" />
										</xs:complexType>
									</xs:element>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
						<xs:element name="Kind" minOccurs="1" maxOccurs="1">
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:enumeration value="Decoration" />
									<xs:enumeration value="Light" />
									<xs:enumeration value="VideoProjector" />
									<xs:enumeration value="VideoPanel" />
									<xs:enumeration value="Laser" />
								</xs:restriction>
							</xs:simpleType>
						</xs:element>
						<xs:element name="VideoResolution" minOccurs="0" maxOccurs="1">
							<xs:complexType>
								<xs:attribute name="Horizontal" type="xs:unsignedShort" use="required" />
								<xs:attribute name="Vertical" type="xs:unsignedShort" use="required" />
							</xs:complexType>
						</xs:element>
						<xs:element name="Colours" minOccurs="0" maxOccurs="1">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="White" type="cef:tFixtureLightSourceColour" minOccurs="0" maxOccurs="1" />
									<xs:element name="Red" type="cef:tFixtureLightSourceColour" minOccurs="0" maxOccurs="1" />
									<xs:element name="Green" type="cef:tFixtureLightSourceColour" minOccurs="0" maxOccurs="1" />
									<xs:element name="Blue" type="cef:tFixtureLightSourceColour" minOccurs="0" maxOccurs="1" />
									<xs:element name="Auxiliary1" type="cef:tFixtureLightSourceColour" minOccurs="0" maxOccurs="1" />
									<xs:element name="Auxiliary2" type="cef:tFixtureLightSourceColour" minOccurs="0" maxOccurs="1" />
									<xs:element name="Auxiliary3" type="cef:tFixtureLightSourceColour" minOccurs="0" maxOccurs="1" />
									<xs:element name="Auxiliary4" type="cef:tFixtureLightSourceColour" minOccurs="0" maxOccurs="1" />
									<xs:element name="Auxiliary5" type="cef:tFixtureLightSourceColour" minOccurs="0" maxOccurs="1" />
								</xs:sequence>
							</xs:complexType>
						</xs:element>
						<xs:element name="ColourMixing" minOccurs="1" maxOccurs="1">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="ShutterRelation" minOccurs="1" maxOccurs="1">
										<xs:simpleType>
											<xs:restriction base="xs:string">
												<xs:enumeration value="Separated" />
												<xs:enumeration value="Integrated" />
											</xs:restriction>
										</xs:simpleType>
									</xs:element>
									<xs:element name="CIE" minOccurs="0" maxOccurs="1">
										<xs:complexType>
											<xs:attribute name="ChromaticityXMin" type="cef:tChromaticityValue" use="required" />
											<xs:attribute name="ChromaticityXMax" type="cef:tChromaticityValue" use="required" />
											<xs:attribute name="ChromaticityYMin" type="cef:tChromaticityValue" use="required" />
											<xs:attribute name="ChromaticityYMax" type="cef:tChromaticityValue" use="required" />
										</xs:complexType>
									</xs:element>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
						<xs:element name="Optics" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="Wattage" type="xs:float" minOccurs="1" maxOccurs="1" />
									<xs:element name="Shift" minOccurs="0" maxOccurs="1">
										<xs:complexType>
											<xs:sequence>
												<xs:element name="MaxHorizontal" type="cef:tPositiveFloat" minOccurs="1" maxOccurs="1" />
												<xs:element name="MaxVerticalNegative" type="cef:tPositiveFloat" minOccurs="1" maxOccurs="1" />
												<xs:element name="MaxVerticalPositive" type="cef:tPositiveFloat" minOccurs="1" maxOccurs="1" />
											</xs:sequence>
										</xs:complexType>
									</xs:element>
									<xs:element name="Narrow" type="cef:tFixtureLightSourceOpticTraits" minOccurs="0" maxOccurs="1" />
									<xs:element name="Wide" type="cef:tFixtureLightSourceOpticTraits" minOccurs="0" maxOccurs="1" />
								</xs:sequence>
								<xs:attribute name="Identifier" type="xs:string" use="required"/>
								<xs:attribute name="Name" type="xs:string" use="required"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="ApertureType" minOccurs="1" maxOccurs="1">
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:enumeration value="RoundProfile" />
									<xs:enumeration value="SquareSharp" />
									<xs:enumeration value="RoundPC" />
									<xs:enumeration value="RoundFresnel" />
									<xs:enumeration value="RoundPAR" />
									<xs:enumeration value="SquareSymmetric" />
									<xs:enumeration value="SquareAssymetric" />
									<xs:enumeration value="RoundLambertian" />
									<xs:enumeration value="SquareLambertian" />
									<xs:enumeration value="SquarePanel" />
									<xs:enumeration value="DonutLambertian" />
									<xs:enumeration value="DonutSymmetric" />
									<xs:enumeration value="RoundBeam" />
									<xs:enumeration value="Spherical" />
								</xs:restriction>
							</xs:simpleType>
						</xs:element>
						<xs:element name="Aperture" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="Cell" type="xs:unsignedInt" use="required" />
								<xs:attribute name="X" type="xs:float" use="required" />
								<xs:attribute name="Y" type="xs:float" use="required" />
								<xs:attribute name="Diameter" type="xs:float" use="optional" />
								<xs:attribute name="Width" type="xs:float" use="optional" />
								<xs:attribute name="Height" type="xs:float" use="optional" />
								<xs:attribute name="PixelPitch" type="xs:float" use="optional" />
								<xs:attribute name="PixelSize" type="xs:float" use="optional" />
								<xs:attribute name="InnerDiameter" type="xs:float" use="optional" />
								<xs:attribute name="OuterDiameter" type="xs:float" use="optional" />
								<xs:attribute name="StartAngle" type="xs:float" use="optional" />
								<xs:attribute name="EndAngle" type="xs:float" use="optional" />
							</xs:complexType>
						</xs:element>
					</xs:sequence>
					<xs:attribute name="Name" type="xs:string" use="optional"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="Wheel" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Type" minOccurs="1" maxOccurs="1">
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:enumeration value="Wheel" />
									<xs:enumeration value="Scroller" />
								</xs:restriction>
							</xs:simpleType>
						</xs:element>
						<xs:element name="MinRotationTime" type="xs:float" minOccurs="1" maxOccurs="1"/>
						<xs:element name="MaxRotationTime" type="xs:float" minOccurs="1" maxOccurs="1"/>
						<xs:element name="MinFrameRotationTime" type="xs:float" minOccurs="1" maxOccurs="1"/>
						<xs:element name="MaxFrameRotationTime" type="xs:float" minOccurs="1" maxOccurs="1"/>
						<xs:element name="Slots">
							<xs:complexType>
								<xs:choice minOccurs="0" maxOccurs="unbounded">
									<xs:element name="Open">
										<xs:complexType></xs:complexType>
									</xs:element>
									<xs:element name="Filter">
										<xs:complexType>
											<xs:attribute name="Identifier" type="xs:string" use="required"/>
											<xs:attribute name="Brand" type="xs:string" use="required"/>
											<xs:attribute name="Code" type="xs:string" use="optional"/>
											<xs:attribute name="Name" type="xs:string" use="optional"/>
											<xs:attribute name="PartNo" type="xs:string" use="optional"/>
											<xs:attribute name="Origin" type="xs:string" use="optional"/>
										</xs:complexType>
									</xs:element>
									<xs:element name="Gobo">
										<xs:complexType>
											<xs:attribute name="Identifier" type="xs:string" use="required"/>
											<xs:attribute name="Brand" type="xs:string" use="required"/>
											<xs:attribute name="Code" type="xs:string" use="optional"/>
											<xs:attribute name="Name" type="xs:string" use="optional"/>
											<xs:attribute name="PartNo" type="xs:string" use="optional"/>
											<xs:attribute name="Origin" type="xs:string" use="optional"/>
											<xs:attribute name="Type" type="cef:tGoboType" use="required"/>
										</xs:complexType>
									</xs:element>
								</xs:choice>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
					<xs:attribute name="Identifier" type="xs:string" use="required"/>
					<xs:attribute name="Name" type="xs:string" use="required"/>
					<xs:attribute name="Index" type="xs:unsignedInt" use="required"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="DmxMode" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Option" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="Name" type="xs:string" use="required" />
								<xs:attribute name="Type" use="required">
									<xs:simpleType>
										<xs:restriction base="xs:string">
											<xs:enumeration value="Integer" />
											<xs:enumeration value="Boolean" />
											<xs:enumeration value="Text" />
										</xs:restriction>
									</xs:simpleType>
								</xs:attribute>
								<xs:attribute name="Value" type="xs:string" use="required" />
							</xs:complexType>
						</xs:element>
						<xs:element name="ChannelLayout" minOccurs="1" maxOccurs="1">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="Channel" minOccurs="1" maxOccurs="unbounded">
										<xs:complexType>
											<xs:choice minOccurs="0" maxOccurs="unbounded">
												<!-- Additive light output -->
												<xs:element name="SetLightSuperIntensityLevel" type="cef:tSimpleCellLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetLightEnabled" type="cef:tSetCellLightEnabledCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetLightIntensityLevel" type="cef:tSimpleCellLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetLightColorRenderingIndex" type="cef:tSetCellLightColorRenderingIndexLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetLightMode" type="cef:tSetLightModeCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetLightModesMixLevel" type="cef:tSetLightModesMixLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetWhiteLightLevel" type="cef:tSetCellLightWideLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetRedLightLevel" type="cef:tSetCellLightWideLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetGreenLightLevel" type="cef:tSetCellLightWideLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetBlueLightLevel" type="cef:tSetCellLightWideLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetAuxColor1LightLevel" type="cef:tSetCellLightWideLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetAuxColor2LightLevel" type="cef:tSetCellLightWideLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetAuxColor3LightLevel" type="cef:tSetCellLightWideLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetAuxColor4LightLevel" type="cef:tSetCellLightWideLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetAuxColor5LightLevel" type="cef:tSetCellLightWideLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetLightColorTemperatureLevel" type="cef:tSetCellLightColorTemperatureLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetLightColorTemperatureLevelRange" type="cef:tSetCellLightColorTemperatureLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetLightRangedColorTemperatureLevel" type="cef:tSetCellLightLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetLightColorTemperatureIntensityLevel" type="cef:tSetCellLightLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetLightRedLevel" type="cef:tSetCellLightLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetLightGreenLevel" type="cef:tSetCellLightLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetLightBlueLevel" type="cef:tSetCellLightLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetLightHueLevel" type="cef:tSetCellLightLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetLightSaturationLevel" type="cef:tSetCellLightLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetLightValueLevel" type="cef:tSetCellLightLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetLightChromaticityXLevel" type="cef:tSetCellLightLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetLightChromaticityYLevel" type="cef:tSetCellLightLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetLightLuminanceLevel" type="cef:tSetCellLightLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SelectLightFilterCatalog" type="cef:tSelectLightFilterCatalogCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SelectLightFilterCollection" type="cef:tSelectLightFilterCollectionCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SelectLightFilter" type="cef:tSelectLightFilterCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetLightTargetColorTemperatureLevel" type="cef:tSetCellLightColorTemperatureLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetLightTargetColorTintLevel" type="cef:tSetCellLightWideLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetLightPixelMode" type="cef:tSetLightPixelModeCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetLightPixelMixLevel" type="cef:tSetLightPixelMixLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="CustomLightCommand" type="cef:tCustomCommand" minOccurs="0" maxOccurs="unbounded" />
												<!-- Dousing -->
												<xs:element name="SetBlinderLevel" type="cef:tSimpleCellLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetShutterOpen" type="cef:tSetShutterCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetShutterClosed" type="cef:tSetShutterCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="DoShutterFlash" type="cef:tSetShutterCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetShutterStrobe" type="cef:tSetShutterStrobeCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetShutterSpeed" type="cef:tSetShutterStrobeVariableRateCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetShutterSpeedOpen" type="cef:tSetShutterStrobeRateCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetShutterSpeedClosed" type="cef:tSetShutterStrobeRateCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetShutterDuration" type="cef:tSetShutterStrobeDurationCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="CustomShutterCommand" type="cef:tCustomCommand" minOccurs="0" maxOccurs="unbounded" />
												<!-- Subtractive color mix -->
												<xs:element name="SetCyanFlagLevel" type="cef:tSimpleLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetMagentaFlagLevel" type="cef:tSimpleLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetYellowFlagLevel" type="cef:tSimpleLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetRedFlagLevel" type="cef:tSimpleLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetGreenFlagLevel" type="cef:tSimpleLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetBlueFlagLevel" type="cef:tSimpleLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetCTOFlagLevel" type="cef:tSimpleLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetCTBFlagLevel" type="cef:tSimpleLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetColorFlagSpeed" type="cef:tSimpleSpeedCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetColorFlagTime" type="cef:tSimpleTimeCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetColorFlagShutterMode" type="cef:tShutterOnOffCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="CustomColorFlagCommand" type="cef:tCustomCommand" minOccurs="0" maxOccurs="unbounded" />
												<!-- Beam and projection -->
												<xs:element name="SetFrostLevel" type="cef:tSetFrostLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetFrostStrobe" type="cef:tSetFrostStrobeCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="CustomFrostCommand" type="cef:tCustomFrostCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetIrisLevel" type="cef:tSimpleLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetIrisStrobe" type="cef:tSimpleStrobeCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="CustomIrisCommand" type="cef:tCustomCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetZoomLevel" type="cef:tSimpleCellLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetZoomStrobe" type="cef:tSimpleCellStrobeCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="CustomZoomCommand" type="cef:tCustomCellCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetPrismScaleLevel" type="cef:tSimpleLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetFocusLevel" type="cef:tSimpleLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetFocusMode" type="cef:tSetFocusModeCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="CustomFocusCommand" type="cef:tCustomCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetChipEffectMode" type="cef:tSetChipEffectModeCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetChipEffectDirection" type="cef:tSetChipEffectDirectionCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetChipEffectSpeed" type="cef:tSetChipEffectSpeedCommand" minOccurs="0" maxOccurs="unbounded" />
												<!-- Wheels -->
												<xs:element name="SetWheelMode" type="cef:tSetWheelModeCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetWheelSpinDirection" type="cef:tSetWheelSpinDirectionCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetWheelPosition" type="cef:tSetWheelPositionCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetWheelRandomPositionSpeed" type="cef:tSetWheelRandomPositionSpeedCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetWheelSpeed" type="cef:tSetWheelSpeedCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetWheelShutterMode" type="cef:tSetWheelShutterModeCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetWheelDepthPosition" type="cef:tSetWheelDepthPositionCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetWheelDepthStrobe" type="cef:tSetWheelDepthStrobeCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetWheelDepthOrientation" type="cef:tSetWheelDepthOrientationCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetWheelFrameMode" type="cef:tSetWheelFrameModeCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetWheelFrameSpinDirection" type="cef:tSetWheelFrameSpinDirectionCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetWheelFramePosition" type="cef:tSetWheelFramePositionCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetWheelFrameSpeed" type="cef:tSetWheelFrameSpeedCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="CustomWheelCommand" type="cef:tCustomWheelCommand" minOccurs="0" maxOccurs="unbounded" />
												<!-- Framing shutters -->
												<xs:element name="SetFramingShutterDepth" type="cef:tSetFramingShutterDepthCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetFramingShutterAngle" type="cef:tSetFramingShutterAngleCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetFramingShutterADepth" type="cef:tSetFramingShutterDepthCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetFramingShutterBDepth" type="cef:tSetFramingShutterDepthCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetFramingShutterPackageMode" type="cef:tSetFramingShutterPackageModeCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetFramingShutterPackageAngle" type="cef:tSetFramingShutterPackageAngleCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetFramingShutterPackageSpinDirection" type="cef:tSetFramingShutterPackageSpinDirectionCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetFramingShutterPackageSpeed" type="cef:tSetFramingShutterPackageSpeedCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="CustomFramingShuttersCommand" type="cef:tCustomCommand" minOccurs="0" maxOccurs="unbounded" />
												<!-- Motion -->
												<xs:element name="SetPanMode" type="cef:tSetMotionModeCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetTiltMode" type="cef:tSetMotionModeCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="Pan" type="cef:tMotionCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="Tilt" type="cef:tMotionCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="Pitch" type="cef:tMotionCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetPanDirection" type="cef:tSetMotionDirectionCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetTiltDirection" type="cef:tSetMotionDirectionCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetPanSpeed" type="cef:tMotionSpeedCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetTiltSpeed" type="cef:tMotionSpeedCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetVectorPosition" type="cef:tSetVectorPositionCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetMotionSpeed" type="cef:tMotionSpeedCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetMotionTime" type="cef:tMotionTimeCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetMotionShutterMode" type="cef:tShutterOnOffCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="CustomMotionCommand" type="cef:tCustomCommand" minOccurs="0" maxOccurs="unbounded" />
												<!-- Effects -->
												<xs:element name="SelectMacroCatalog" type="cef:tSelectMacroCatalogCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SelectMacro" type="cef:tSelectMacroCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="MacroParameterCommand" type="cef:tMacroParameterCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetMacroIntensityLevel" type="cef:tSimpleLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetMacroColorRedLevel" type="cef:tSimpleLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetMacroColorGreenLevel" type="cef:tSimpleLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetMacroColorBlueLevel" type="cef:tSimpleLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetMacroColorWhiteLevel" type="cef:tSimpleLevelCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetMacroShutterOpen" type="cef:tSimpleCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetMacroShutterClosed" type="cef:tSimpleCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetMacroShutterStrobe" type="cef:tSimpleStrobeCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetMacroShutterSpeed" type="cef:tSimpleSpeedCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetMacroSpeed" type="cef:tSimpleSpeedCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetMacroDirection" type="cef:tSetMacroDirectionCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetMacroRotationPosition" type="cef:tSetMacroRotationPositionCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetMacroRotationSpin" type="cef:tSetMacroRotationSpinCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetMacroRotationDirection" type="cef:tSetMacroRotationDirectionCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetMacroFadeTime" type="cef:tSetMacroFadeTimeCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="CustomMacroCommand" type="cef:tCustomCommand" minOccurs="0" maxOccurs="unbounded" />
												<!-- Specials -->
												<xs:element name="SetLampOn" type="cef:tSimpleCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetLampOff" type="cef:tSimpleCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetLampMode" type="cef:tSetLampModeCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="CustomLampCommand" type="cef:tCustomCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetLaserOn" type="cef:tSimpleCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetLaserOff" type="cef:tSimpleCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetLaserStrobe" type="cef:tSetLaserStrobeCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetFanMode" type="cef:tSetFanModeCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="CustomFanCommand" type="cef:tCustomCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="Reset" type="cef:tResetCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="NoFunction" type="cef:tSimpleCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="Reserved" type="cef:tSimpleCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="CustomCommand" type="cef:tCustomCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetPreset" type="cef:tPresetCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetPresetScroll" type="cef:tPresetScrollCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="SetPresetScrollSpeed" type="cef:tSimpleSpeedCommand" minOccurs="0" maxOccurs="unbounded" />
												<xs:element name="Macro" type="cef:tTextCommand" minOccurs="0" maxOccurs="unbounded" />
											</xs:choice>
											<xs:attribute name="Type" use="required">
												<xs:simpleType>
													<xs:restriction base="xs:string">
														<xs:enumeration value="8Bit" />
														<xs:enumeration value="16BitMsb" />
														<xs:enumeration value="16BitLsb" />
													</xs:restriction>
												</xs:simpleType>
											</xs:attribute>
											<xs:attribute name="OsbChannelIndex" type="xs:unsignedInt" use="optional" />
											<xs:attribute name="ExternalModeStart" type="xs:string" use="optional" />
											<xs:attribute name="GroupName" type="xs:string" use="optional"/>
											<xs:attribute name="Name" type="xs:string" use="required"/>
											<xs:attribute name="ShortName" type="xs:string" use="optional"/>
											<xs:attribute name="Cells" use="optional">
												<xs:simpleType>
													<xs:restriction base="xs:string">
														<xs:pattern value="\d+(-\d+)?(,(\d+(-\d+)?))*" />
													</xs:restriction>
												</xs:simpleType>
											</xs:attribute>
											<xs:attribute name="DefaultLevel" type="xs:unsignedInt" use="optional"/>
											<xs:attribute name="ExplicitDefaultLevel" type="xs:unsignedInt" use="optional"/>
											<xs:attribute name="LocateLevel" type="xs:unsignedInt" use="optional"/>
										</xs:complexType>
									</xs:element>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
						<xs:element name="Function" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:sequence minOccurs="1" maxOccurs="unbounded">
									<xs:element name="Step" minOccurs="1" maxOccurs="unbounded">
										<xs:complexType>
											<xs:sequence>
												<xs:element name="Parameter" minOccurs="0" maxOccurs="unbounded">
													<xs:complexType>
														<xs:attribute name="ChannelIndex" type="xs:unsignedInt" use="required" />
														<xs:attribute name="DMX" type="xs:int" use="required" />
													</xs:complexType>
												</xs:element>
											</xs:sequence>
											<xs:attribute name="Time" type="xs:float" use="required" />
										</xs:complexType>
									</xs:element>
								</xs:sequence>
								<xs:attribute name="Type" use="required">
									<xs:simpleType>
										<xs:restriction base="xs:string">
											<xs:enumeration value="Custom" />
											<xs:enumeration value="Lock" />
											<xs:enumeration value="Unlock" />
											<xs:enumeration value="LampOn" />
											<xs:enumeration value="LampOff" />
											<xs:enumeration value="LampModeNormal" />
											<xs:enumeration value="LampModeLowPower" />
											<xs:enumeration value="ResetComplete" />
											<xs:enumeration value="ResetPanTilt" />
											<xs:enumeration value="ResetColour" />
											<xs:enumeration value="ResetGobo" />
											<xs:enumeration value="ResetStrobe" />
											<xs:enumeration value="ResetFocus" />
											<xs:enumeration value="ResetZoom" />
											<xs:enumeration value="ResetFrost" />
											<xs:enumeration value="ResetIris" />
											<xs:enumeration value="ResetAllInternal" />
											<xs:enumeration value="FanModeSlow" />
											<xs:enumeration value="FanModeFast" />
										</xs:restriction>
									</xs:simpleType>
								</xs:attribute>
								<xs:attribute name="CustomGroupName" type="xs:string" use="optional" />
								<xs:attribute name="CustomName" type="xs:string" use="optional" />
							</xs:complexType>
						</xs:element>
					</xs:sequence>
					<xs:attribute name="Identifier" type="xs:string" use="required"/>
					<xs:attribute name="Name" type="xs:string" use="required"/>
					<xs:attribute name="ControllerIndex" type="xs:unsignedInt" use="required"/>
					<xs:attribute name="ControllerName" type="xs:string" use="optional"/>
					<xs:attribute name="DmxChannels" type="xs:unsignedInt" use="required"/>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="Identifier" type="xs:string" use="required"/>
		<xs:attribute name="Version" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="VersionDate" type="xs:date" use="required"/>
		<xs:attribute name="Brand" type="xs:string" use="required"/>
		<xs:attribute name="Name" type="xs:string" use="required"/>
		<xs:attribute name="Visibility" type="cef:tVisibility" use="required" />
		<xs:attribute name="PartNo" type="xs:string" use="optional"/>
	</xs:complexType>

	<xs:complexType name="tFixtureColorFlag">
		<xs:sequence>
			<xs:element name="Color" type="cef:tFilterColor" minOccurs="1" maxOccurs="1" />
			<xs:element name="CCT" type="xs:int" minOccurs="0" maxOccurs="1" />
		</xs:sequence>
	</xs:complexType>

	<xs:simpleType name="tFixtureAxisName">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Pan" />
			<xs:enumeration value="Tilt" />
			<xs:enumeration value="Pitch" />
		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="tFixtureLightSourceColour">
		<xs:sequence>
			<xs:element name="sRGB" minOccurs="1" maxOccurs="1">
				<xs:complexType>
					<xs:attribute name="Red" type="xs:unsignedByte" use="required" />
					<xs:attribute name="Green" type="xs:unsignedByte" use="required" />
					<xs:attribute name="Blue" type="xs:unsignedByte" use="required" />
				</xs:complexType>
			</xs:element>
			<xs:element name="CIE1931" minOccurs="0" maxOccurs="1">
				<xs:complexType>
					<xs:attribute name="x" type="xs:float" use="required" />
					<xs:attribute name="y" type="xs:float" use="required" />
					<xs:attribute name="Y" type="xs:float" use="required" />
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="Name" type="xs:string" use="optional" />
	</xs:complexType>

	<xs:complexType name="tFixtureLightSourceOpticTraits">
		<xs:sequence>
			<xs:element name="HorizontalFieldAngle" type="xs:float" minOccurs="1" maxOccurs="1" />
			<xs:element name="VerticalFieldAngle" type="xs:float" minOccurs="1" maxOccurs="1" />
			<xs:element name="Photometrics" minOccurs="0" maxOccurs="1">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="LuminousFlux" type="xs:float" minOccurs="1" maxOccurs="1" />
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>

	<!-- Symbol -->
	<xs:complexType name="tSymbol">
		<xs:sequence>
			<xs:element name="Shape" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Point" minOccurs="2" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="X" type="xs:float" use="required" />
								<xs:attribute name="Y" type="xs:float" use="required" />
							</xs:complexType>
						</xs:element>
					</xs:sequence>
					<xs:attribute name="Type" use="required">
						<xs:simpleType>
							<xs:restriction base="xs:string">
								<xs:enumeration value="Fill" />
								<xs:enumeration value="Line" />
							</xs:restriction>
						</xs:simpleType>
					</xs:attribute>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="Identifier" type="xs:string" use="required"/>
		<xs:attribute name="Version" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="VersionDate" type="xs:date" use="required"/>
		<xs:attribute name="Brand" type="xs:string" use="required"/>
		<xs:attribute name="Name" type="xs:string" use="optional"/>
	</xs:complexType>

	<!-- Generic DMX Mode command types -->
	<xs:complexType name="tSimpleCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSimpleLevelCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToStartLevel" type="cef:tSimpleRangeValue" use="required"/>
		<xs:attribute name="ToEndLevel" type="cef:tSimpleRangeValue" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSimpleCellLevelCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Layer" type="cef:tControlLayer" use="optional"/>
		<xs:attribute name="Cell" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToStartLevel" type="cef:tSimpleRangeValue" use="required"/>
		<xs:attribute name="ToEndLevel" type="cef:tSimpleRangeValue" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSimpleSpeedCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToStartSpeed" type="cef:tWideRangeValue" use="required"/>
		<xs:attribute name="ToEndSpeed" type="cef:tWideRangeValue" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSimpleTimeCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToStartTime" type="cef:tTimeRangeValue" use="required"/>
		<xs:attribute name="ToEndTime" type="cef:tTimeRangeValue" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSimpleStrobeCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToMode" type="cef:tStrobeMode" use="required"/>
		<xs:attribute name="ToTransition" type="cef:tStrobeTransition" use="required"/>
		<xs:attribute name="ToStartLevelRate" type="cef:tSimpleRangeValue" use="required"/>
		<xs:attribute name="ToEndLevelRate" type="cef:tSimpleRangeValue" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSimpleCellStrobeCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Layer" type="cef:tControlLayer" use="optional"/>
		<xs:attribute name="Cell" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToMode" type="cef:tStrobeMode" use="required"/>
		<xs:attribute name="ToTransition" type="cef:tStrobeTransition" use="required"/>
		<xs:attribute name="ToStartLevelRate" type="cef:tSimpleRangeValue" use="required"/>
		<xs:attribute name="ToEndLevelRate" type="cef:tSimpleRangeValue" use="required"/>
	</xs:complexType>

	<xs:complexType name="tShutterOnOffCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToShutterMode" type="cef:tOnOff" use="required"/>
	</xs:complexType>

	<!-- Specific DMX Mode command types -->
	<xs:complexType name="tSetCellLightEnabledCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Layer" type="cef:tControlLayer" use="required"/>
		<xs:attribute name="Cell" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToMode" type="cef:tOnOff" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetLightModeCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Layer" type="cef:tControlLayer" use="optional"/>
		<xs:attribute name="Cell" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToMode" type="cef:tLightMode" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetLightModesMixLevelCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Layer" type="cef:tControlLayer" use="optional"/>
		<xs:attribute name="Cell" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToStartMode" type="cef:tLightMode" use="required"/>
		<xs:attribute name="ToEndMode" type="cef:tLightMode" use="required"/>
		<xs:attribute name="ToStartLevel" type="cef:tWideRangeValue" use="required"/>
		<xs:attribute name="ToEndLevel" type="cef:tWideRangeValue" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetCellLightLevelCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Layer" type="cef:tControlLayer" use="optional"/>
		<xs:attribute name="Cell" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Mode" type="cef:tLightMode" use="required"/>
		<xs:attribute name="ToStartLevel" type="cef:tSimpleRangeValue" use="required"/>
		<xs:attribute name="ToEndLevel" type="cef:tSimpleRangeValue" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetCellLightWideLevelCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Layer" type="cef:tControlLayer" use="optional"/>
		<xs:attribute name="Cell" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Mode" type="cef:tLightMode" use="required"/>
		<xs:attribute name="ToStartLevel" type="cef:tWideRangeValue" use="required"/>
		<xs:attribute name="ToEndLevel" type="cef:tWideRangeValue" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSelectLightFilterCatalogCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Layer" type="cef:tControlLayer" use="optional"/>
		<xs:attribute name="Cell" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Mode" type="cef:tLightMode" use="required"/>
		<xs:attribute name="Catalog" type="xs:unsignedByte" use="required"/>
		<xs:attribute name="Text" type="xs:string" use="optional" />
	</xs:complexType>

	<xs:complexType name="tSelectLightFilterCollectionCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Layer" type="cef:tControlLayer" use="optional"/>
		<xs:attribute name="Cell" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Mode" type="cef:tLightMode" use="required"/>
		<xs:attribute name="Index" type="xs:unsignedByte" use="required"/>
		<xs:attribute name="Catalog" type="xs:unsignedByte" use="optional"/>
		<xs:attribute name="Text" type="xs:string" use="optional" />
	</xs:complexType>

	<xs:complexType name="tSelectLightFilterCommand">
		<xs:sequence>
			<xs:element name="Color" minOccurs="1" maxOccurs="1">
				<xs:complexType>
					<xs:attribute name="x" type="xs:float" use="required" />
					<xs:attribute name="y" type="xs:float" use="required" />
					<xs:attribute name="Y" type="xs:float" use="required" />
					<xs:attribute name="K" type="xs:unsignedShort" use="required" />
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Layer" type="cef:tControlLayer" use="optional"/>
		<xs:attribute name="Cell" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Mode" type="cef:tLightMode" use="required"/>
		<xs:attribute name="Index" type="xs:unsignedByte" use="optional"/>
		<xs:attribute name="Catalog" type="xs:unsignedByte" use="optional"/>
		<xs:attribute name="Text" type="xs:string" use="required" />
	</xs:complexType>

	<xs:complexType name="tSetCellLightColorRenderingIndexLevelCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Cell" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToStartLevel" type="cef:tColorRenderingIndexRangeValue" use="required"/>
		<xs:attribute name="ToEndLevel" type="cef:tColorRenderingIndexRangeValue" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetCellLightColorTemperatureLevelCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Layer" type="cef:tControlLayer" use="optional"/>
		<xs:attribute name="Cell" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Mode" type="cef:tLightMode" use="required"/>
		<xs:attribute name="ToStartLevel" type="cef:tColorTemperatureRangeValue" use="required"/>
		<xs:attribute name="ToEndLevel" type="cef:tColorTemperatureRangeValue" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetLightPixelModeCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Cell" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToMode" type="cef:tLightPixelMode" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetLightPixelMixLevelCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Cell" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToStartLevel" type="cef:tWideRangeValue" use="required"/>
		<xs:attribute name="ToEndLevel" type="cef:tWideRangeValue" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetShutterCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Layer" type="cef:tControlLayer" use="optional"/>
		<xs:attribute name="Cell" type="xs:unsignedInt" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetShutterStrobeCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Layer" type="cef:tControlLayer" use="optional"/>
		<xs:attribute name="Cell" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToMode" type="cef:tStrobeMode" use="required"/>
		<xs:attribute name="ToTransition" type="cef:tStrobeTransition" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetShutterStrobeRateCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Layer" type="cef:tControlLayer" use="optional"/>
		<xs:attribute name="Cell" type="xs:unsignedInt" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetShutterStrobeVariableRateCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Layer" type="cef:tControlLayer" use="optional"/>
		<xs:attribute name="Cell" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToStartLevelRate" type="cef:tSimpleRangeValue" use="required"/>
		<xs:attribute name="ToEndLevelRate" type="cef:tSimpleRangeValue" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetShutterStrobeDurationCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Layer" type="cef:tControlLayer" use="optional"/>
		<xs:attribute name="Cell" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToTiming" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Absolute" />
					<xs:enumeration value="Relative" />
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="ToStartLevelDuration" type="cef:tSimpleRangeValue" use="required"/>
		<xs:attribute name="ToEndLevelDuration" type="cef:tSimpleRangeValue" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetFocusModeCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToMode" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Normal" />
					<xs:enumeration value="Auto" />
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="tSetFrostLevelCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="FrostIndex" type="cef:tFrostIndex" use="required"/>
		<xs:attribute name="ToStartLevel" type="cef:tSimpleRangeValue" use="required"/>
		<xs:attribute name="ToEndLevel" type="cef:tSimpleRangeValue" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetFrostStrobeCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="FrostIndex" type="cef:tFrostIndex" use="required"/>
		<xs:attribute name="ToMode" type="cef:tStrobeMode" use="required"/>
		<xs:attribute name="ToTransition" type="cef:tStrobeTransition" use="required"/>
		<xs:attribute name="ToStartLevelRate" type="cef:tSimpleRangeValue" use="required"/>
		<xs:attribute name="ToEndLevelRate" type="cef:tSimpleRangeValue" use="required"/>
	</xs:complexType>

	<xs:complexType name="tCustomFrostCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="FrostIndex" type="cef:tFrostIndex" use="optional"/>
		<xs:attribute name="Usage" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Snap" />
					<xs:enumeration value="Range" />
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="Description" type="xs:string" use="required"/>
		<xs:attribute name="ShortDescription" type="xs:string" use="optional"/>
		<xs:attribute name="From" type="xs:string" use="optional"/>
		<xs:attribute name="To" type="xs:string" use="optional"/>
	</xs:complexType>

	<xs:complexType name="tSetChipEffectModeCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Cell" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToMode" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Open" />
					<xs:enumeration value="Spinning" />
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	
	<xs:complexType name="tSetChipEffectDirectionCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Cell" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToDirection" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Reverse" />
					<xs:enumeration value="Forward" />
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	
	<xs:complexType name="tSetChipEffectSpeedCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Cell" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Mode" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Spinning" />
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="ToStartLevelSpeed" type="xs:float" use="required"/>
		<xs:attribute name="ToEndLevelSpeed" type="xs:float" use="required"/>
	</xs:complexType>
	
	<xs:complexType name="tSetWheelModeCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="WheelIndex" type="cef:tWheelIndex" use="required"/>
		<xs:attribute name="ToMode" type="cef:tWheelMode" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetWheelSpinDirectionCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="WheelIndex" type="cef:tWheelIndex" use="required"/>
		<xs:attribute name="ToDirection" type="cef:tWheelSpinDirection" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetWheelPositionCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="WheelIndex" type="cef:tWheelIndex" use="required"/>
		<xs:attribute name="Mode" type="cef:tNonRandomWheelMode" use="required"/>
		<xs:attribute name="ToStartLevelPosition" type="xs:float" use="required"/>
		<xs:attribute name="ToEndLevelPosition" type="xs:float" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetWheelRandomPositionSpeedCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="WheelIndex" type="cef:tWheelIndex" use="required"/>
		<xs:attribute name="ToStartLevelSpeed" type="xs:float" use="required"/>
		<xs:attribute name="ToEndLevelSpeed" type="xs:float" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetWheelSpeedCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="WheelIndex" type="cef:tWheelIndex" use="required"/>
		<xs:attribute name="Mode" type="cef:tWheelMode" use="required"/>
		<xs:attribute name="ToStartLevelSpeed" type="xs:float" use="required"/>
		<xs:attribute name="ToEndLevelSpeed" type="xs:float" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetWheelShutterModeCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="WheelIndex" type="cef:tWheelIndex" use="required"/>
		<xs:attribute name="ToShutterMode" type="cef:tOnOff" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetWheelDepthPositionCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="WheelIndex" type="cef:tWheelIndex" use="required"/>
		<xs:attribute name="ToStartLevelPosition" type="xs:float" use="required"/>
		<xs:attribute name="ToEndLevelPosition" type="xs:float" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetWheelDepthStrobeCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="WheelIndex" type="cef:tWheelIndex" use="required"/>
		<xs:attribute name="ToTransition" type="cef:tStrobeTransition" use="required"/>
		<xs:attribute name="ToStartLevelRate" type="cef:tSimpleRangeValue" use="required"/>
		<xs:attribute name="ToEndLevelRate" type="cef:tSimpleRangeValue" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetWheelDepthOrientationCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="WheelIndex" type="cef:tWheelIndex" use="required"/>
		<xs:attribute name="ToStartLevelOrientation" type="xs:float" use="required"/>
		<xs:attribute name="ToEndLevelOrientation" type="xs:float" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetWheelFrameModeCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="WheelIndex" type="cef:tWheelIndex" use="required"/>
		<xs:attribute name="ToMode" type="cef:tWheelFrameMode" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetWheelFrameSpinDirectionCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="WheelIndex" type="cef:tWheelIndex" use="required"/>
		<xs:attribute name="ToDirection" type="cef:tWheelSpinDirection" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetWheelFramePositionCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="WheelIndex" type="cef:tWheelIndex" use="required"/>
		<xs:attribute name="Mode" type="cef:tWheelFrameMode" use="required"/>
		<xs:attribute name="ToStartLevelPosition" type="xs:float" use="required"/>
		<xs:attribute name="ToEndLevelPosition" type="xs:float" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetWheelFrameSpeedCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="WheelIndex" type="cef:tWheelIndex" use="required"/>
		<xs:attribute name="Mode" type="cef:tWheelFrameMode" use="required"/>
		<xs:attribute name="ToStartLevelSpeed" type="xs:float" use="required"/>
		<xs:attribute name="ToEndLevelSpeed" type="xs:float" use="required"/>
	</xs:complexType>

	<xs:complexType name="tCustomWheelCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="WheelIndex" type="cef:tWheelIndex" use="optional"/>
		<xs:attribute name="Usage" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Snap" />
					<xs:enumeration value="Range" />
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="Description" type="xs:string" use="required"/>
		<xs:attribute name="ShortDescription" type="xs:string" use="optional"/>
		<xs:attribute name="From" type="xs:string" use="optional"/>
		<xs:attribute name="To" type="xs:string" use="optional"/>
	</xs:complexType>

	<xs:complexType name="tSetFramingShutterDepthCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Index" type="cef:tFramingShutterIndex" use="required"/>
		<xs:attribute name="ToStartLevelDepth" type="cef:tFramingShutterDepthValue" use="required"/>
		<xs:attribute name="ToEndLevelDepth" type="cef:tFramingShutterDepthValue" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetFramingShutterAngleCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Index" type="cef:tFramingShutterIndex" use="required"/>
		<xs:attribute name="ToStartLevelAngle" type="cef:tFramingShutterAngleValue" use="required"/>
		<xs:attribute name="ToEndLevelAngle" type="cef:tFramingShutterAngleValue" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetFramingShutterPackageModeCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToMode" type="cef:tFramingShutterPackageMode" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetFramingShutterPackageAngleCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToStartLevelAngle" type="xs:float" use="required"/>
		<xs:attribute name="ToEndLevelAngle" type="xs:float" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetFramingShutterPackageSpinDirectionCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToDirection" type="cef:tFramingShutterPackageSpinDirection" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetFramingShutterPackageSpeedCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Mode" type="cef:tWheelFrameMode" use="required"/>
		<xs:attribute name="ToStartLevelSpeed" type="xs:float" use="required"/>
		<xs:attribute name="ToEndLevelSpeed" type="xs:float" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetMotionModeCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Index" type="cef:tAxisIndex" use="required"/>
		<xs:attribute name="ToMode" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Indexed" />
					<xs:enumeration value="Spinning" />
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="tMotionCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Layer" type="cef:tControlLayer" use="optional"/>
		<xs:attribute name="Index" type="cef:tAxisIndex" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetMotionDirectionCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Index" type="cef:tAxisIndex" use="required"/>
		<xs:attribute name="ToDirection" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Reverse" />
					<xs:enumeration value="Forward" />
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="tMotionSpeedCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Index" type="cef:tAxisIndex" use="required"/>
		<xs:attribute name="ToStartSpeed" type="cef:tWideRangeValue" use="required"/>
		<xs:attribute name="ToEndSpeed" type="cef:tWideRangeValue" use="required"/>
	</xs:complexType>

	<xs:complexType name="tMotionTimeCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Index" type="cef:tAxisIndex" use="required"/>
		<xs:attribute name="ToStartTime" type="cef:tTimeRangeValue" use="required"/>
		<xs:attribute name="ToEndTime" type="cef:tTimeRangeValue" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetVectorPositionCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Index" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToStartPosition" type="cef:tUnboundedRangeValue" use="required"/>
		<xs:attribute name="ToEndPosition" type="cef:tUnboundedRangeValue" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSelectMacroCatalogCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Catalog" type="xs:unsignedByte" use="required"/>
		<xs:attribute name="Text" type="xs:string" use="optional" />
	</xs:complexType>

	<xs:complexType name="tSelectMacroCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Catalog" type="xs:unsignedByte" use="optional"/>
		<xs:attribute name="Index" type="xs:unsignedByte" use="required"/>
		<xs:attribute name="Text" type="xs:string" use="optional" />
	</xs:complexType>

	<xs:complexType name="tMacroParameterCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Catalog" type="xs:unsignedByte" use="optional"/>
		<xs:attribute name="Index" type="xs:unsignedByte" use="required"/>
		<xs:attribute name="Usage" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Snap" />
					<xs:enumeration value="Range" />
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="Description" type="xs:string" use="required"/>
		<xs:attribute name="ShortDescription" type="xs:string" use="optional"/>
		<xs:attribute name="From" type="xs:string" use="optional"/>
		<xs:attribute name="To" type="xs:string" use="optional"/>
	</xs:complexType>

	<xs:complexType name="tSetMacroDirectionCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToDirection" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Reverse" />
					<xs:enumeration value="Forward" />
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="tSetMacroRotationPositionCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToStartLevelAngle" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:float">
					<xs:minInclusive value="0"/>
					<xs:maxInclusive value="360"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="ToEndLevelAngle" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:float">
					<xs:minInclusive value="0"/>
					<xs:maxInclusive value="360"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="tSetMacroRotationSpinCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToStartSpeed" type="cef:tWideRangeValue" use="required"/>
		<xs:attribute name="ToEndSpeed" type="cef:tWideRangeValue" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetMacroRotationDirectionCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToDirection" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Reverse" />
					<xs:enumeration value="Forward" />
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="tSetMacroFadeTimeCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToStartTime" type="cef:tWideRangeValue" use="required"/>
		<xs:attribute name="ToEndTime" type="cef:tWideRangeValue" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetLampModeCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToMode" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Normal" />
					<xs:enumeration value="LowPower" />
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="tSetLaserStrobeCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToMode" type="cef:tStrobeMode" use="required"/>
		<xs:attribute name="ToStartLevelRate" type="cef:tSimpleRangeValue" use="required"/>
		<xs:attribute name="ToEndLevelRate" type="cef:tSimpleRangeValue" use="required"/>
	</xs:complexType>

	<xs:complexType name="tSetFanModeCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToMode" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Fast" />
					<xs:enumeration value="Slow" />
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="tCustomCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Usage" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Snap" />
					<xs:enumeration value="Range" />
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="Description" type="xs:string" use="required"/>
		<xs:attribute name="ShortDescription" type="xs:string" use="optional"/>
		<xs:attribute name="From" type="xs:string" use="optional"/>
		<xs:attribute name="To" type="xs:string" use="optional"/>
	</xs:complexType>

	<xs:complexType name="tCustomCellCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Layer" type="cef:tControlLayer" use="optional"/>
		<xs:attribute name="Cell" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="Usage" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Snap" />
					<xs:enumeration value="Range" />
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="Description" type="xs:string" use="required"/>
		<xs:attribute name="ShortDescription" type="xs:string" use="optional"/>
		<xs:attribute name="From" type="xs:string" use="optional"/>
		<xs:attribute name="To" type="xs:string" use="optional"/>
	</xs:complexType>

	<xs:complexType name="tResetCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToType" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Complete" />
					<xs:enumeration value="PanTilt" />
					<xs:enumeration value="Colour" />
					<xs:enumeration value="Gobo" />
					<xs:enumeration value="Strobe" />
					<xs:enumeration value="Focus" />
					<xs:enumeration value="Zoom" />
					<xs:enumeration value="Frost" />
					<xs:enumeration value="Iris" />
					<xs:enumeration value="AllInternal" />
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="tPresetCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Cells" type="cef:tCellArray" use="optional" />
		<xs:attribute name="Usage" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Snap" />
					<xs:enumeration value="Range" />
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="StartColor" type="xs:string" use="optional"/>
		<xs:attribute name="EndColor" type="xs:string" use="optional"/>
		<xs:attribute name="Description" type="xs:string" use="required"/>
		<xs:attribute name="ShortDescription" type="xs:string" use="optional"/>
	</xs:complexType>

	<xs:complexType name="tPresetScrollCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="ToMode" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Forward" />
					<xs:enumeration value="Reverse" />
					<xs:enumeration value="Bounce" />
					<xs:enumeration value="Random" />
					<xs:enumeration value="Sound" />
					<xs:enumeration value="Stop" />
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="tTextCommand">
		<xs:attribute name="StartLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="EndLevel" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="Description" type="xs:string" use="required"/>
		<xs:attribute name="ShortDescription" type="xs:string" use="optional"/>
	</xs:complexType>

	<!-- Common simple types-->
	<xs:simpleType name="tVisibility">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Public" />
			<xs:enumeration value="Private" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tGoboType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Pattern" />
			<xs:enumeration value="Animation Disc" />
			<xs:enumeration value="Linear 2-Facet Prism" />
			<xs:enumeration value="Circular 3-Facet Prism" />
			<xs:enumeration value="Circular 4-Facet Prism" />
			<xs:enumeration value="Linear 4-Facet Prism" />
			<xs:enumeration value="Circular 5-Facet Prism" />
			<xs:enumeration value="Linear 5-Facet Prism" />
			<xs:enumeration value="Round 5-Facet Prism" />
			<xs:enumeration value="Circular 6-Facet Prism" />
			<xs:enumeration value="Linear 6-Facet Prism" />
			<xs:enumeration value="Round 6-Facet Prism" />
			<xs:enumeration value="Round 7-Facet Prism" />
			<xs:enumeration value="Circular 8-Facet Prism" />
			<xs:enumeration value="Linear 8-Facet Prism" />
			<xs:enumeration value="Round 9-Facet Prism" />
			<xs:enumeration value="Linear 10-Facet Prism" />
			<xs:enumeration value="Circular 8-8-16-Facet Prism" />
			<xs:enumeration value="Circular 16-16-Facet Prism" />
			<xs:enumeration value="Bar Prism" />
			<xs:enumeration value="Comet Prism" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tChromaticityValue">
		<xs:restriction base="xs:float">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="1"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tDmxChannelOffset">
		<xs:restriction base="xs:unsignedInt">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="511"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tControlLayer">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Individual" />
			<xs:enumeration value="Group" />
			<xs:enumeration value="ChipEffect" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tCellArray">
		<xs:restriction base="xs:string">
			<xs:pattern value="\d+(,\d+)*" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tSimpleRangeValue">
		<xs:restriction base="xs:float">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="1"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tWideRangeValue">
		<xs:restriction base="xs:float">
			<xs:minInclusive value="-1"/>
			<xs:maxInclusive value="1"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tUnboundedRangeValue">
		<xs:restriction base="xs:float"/>
	</xs:simpleType>

	<xs:simpleType name="tTimeRangeValue">
		<xs:restriction base="xs:float">
			<xs:minInclusive value="0"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tColorRenderingIndexRangeValue">
		<xs:restriction base="xs:float">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="100"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tColorTemperatureRangeValue">
		<xs:restriction base="xs:float">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="30000"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tFramingShutterDepthValue">
		<xs:restriction base="xs:float">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="2"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tFramingShutterAngleValue">
		<xs:restriction base="xs:float">
			<xs:minInclusive value="-360"/>
			<xs:maxInclusive value="360"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tOnOff">
		<xs:restriction base="xs:string">
			<xs:enumeration value="On" />
			<xs:enumeration value="Off" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tStrobeMode">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Linear" />
			<xs:enumeration value="Random" />
			<xs:enumeration value="ApertureRandom" />
			<xs:enumeration value="SynchronizedRandom" />
			<xs:enumeration value="Lightning" />
			<xs:enumeration value="Spikes" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tStrobeTransition">
		<xs:restriction base="xs:string">
			<xs:enumeration value="RampRamp" />
			<xs:enumeration value="RampSnap" />
			<xs:enumeration value="SnapRamp" />
			<xs:enumeration value="SnapSnap" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tFrostIndex">
		<xs:restriction base="xs:unsignedInt">
			<xs:minInclusive value="1"/>
			<xs:maxInclusive value="3"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tWheelIndex">
		<xs:restriction base="xs:unsignedInt">
			<xs:minInclusive value="1"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tFramingShutterIndex">
		<xs:restriction base="xs:unsignedInt">
			<xs:minInclusive value="1"/>
			<xs:maxInclusive value="4"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tAxisIndex">
		<xs:restriction base="xs:unsignedInt">
			<xs:minInclusive value="1"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tLightMode">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Direct" />
			<xs:enumeration value="ColorTemperature" />
			<xs:enumeration value="ColorTemperaturePlus" />
			<xs:enumeration value="RGB" />
			<xs:enumeration value="RGBPlus" />
			<xs:enumeration value="HSV" />
			<xs:enumeration value="HSVPlus" />
			<xs:enumeration value="CIE" />
			<xs:enumeration value="Filter" />
			<xs:enumeration value="AlternateFilter" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tLightPixelMode">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Mix" />
			<xs:enumeration value="Multiply" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tWheelMode">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Indexed" />
			<xs:enumeration value="Continuous" />
			<xs:enumeration value="Mixed" />
			<xs:enumeration value="Spinning" />
			<xs:enumeration value="Oscillating" />
			<xs:enumeration value="Random" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tNonRandomWheelMode">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Indexed" />
			<xs:enumeration value="Continuous" />
			<xs:enumeration value="Mixed" />
			<xs:enumeration value="Spinning" />
			<xs:enumeration value="Oscillating" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tWheelFrameMode">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Indexed" />
			<xs:enumeration value="Spinning" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tWheelSpinDirection">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Forward" />
			<xs:enumeration value="Reverse" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tFramingShutterPackageMode">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Indexed" />
			<xs:enumeration value="Spinning" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tFramingShutterPackageSpinDirection">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Forward" />
			<xs:enumeration value="Reverse" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tBoolean">
		<xs:restriction base="xs:string">
			<xs:enumeration value="True" />
			<xs:enumeration value="False" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="tPositiveFloat">
		<xs:restriction base="xs:float">
			<xs:minInclusive value="0" />
		</xs:restriction>
	</xs:simpleType>

</xs:schema>
