<?xml version="1.0" encoding="UTF-8"?>
<!--W3C XML Schema generated by XMLSpy v2017 (x64) (http://www.altova.com)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" targetNamespace="http://www.onvif.org/ver10/schema" elementFormDefault="qualified" version="19.06">
	<!--===============================-->
	<!--         Generic Types         -->
	<!--===============================-->
	<xs:simpleType name="ReferenceToken">
		<xs:annotation>
			<xs:documentation>Unique identifier for a physical or logical resource.
			Tokens should be assigned such that they are unique within a device. Tokens must be at least unique within its class.
			Length up to 64 characters.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:maxLength value="64"/>
		</xs:restriction>
	</xs:simpleType>
	<!--===============================-->
	<xs:complexType name="IntRange">
		<xs:annotation>
			<xs:documentation>Range of values greater equal Min value and less equal Max value.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Min" type="xs:int"/>
			<xs:element name="Max" type="xs:int"/>
		</xs:sequence>
	</xs:complexType>
	<!--===============================-->
    <!--    Start PTZ Related Types    -->
    <!--===============================-->
	<xs:complexType name="Vector2D">
		<xs:attribute name="x" type="xs:float" use="required"/>
		<xs:attribute name="y" type="xs:float" use="required"/>
		<xs:attribute name="space" type="xs:anyURI" use="optional">
			<xs:annotation>
				<xs:documentation>
  				Pan/tilt coordinate space selector. The following options are defined:<ul>
						<li> http://www.onvif.org/ver10/tptz/PanTiltSpaces/PositionGenericSpace</li>
						<li> http://www.onvif.org/ver10/tptz/PanTiltSpaces/TranslationGenericSpace</li>
						<li> http://www.onvif.org/ver10/tptz/PanTiltSpaces/VelocityGenericSpace</li>
						<li> http://www.onvif.org/ver10/tptz/PanTiltSpaces/GenericSpeedSpace</li>
					</ul>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="Vector1D">
		<xs:attribute name="x" type="xs:float" use="required"/>
		<xs:attribute name="space" type="xs:anyURI" use="optional">
			<xs:annotation>
				<xs:documentation>
				Zoom coordinate space selector. The following options are defined:<ul style="">
						<li> http://www.onvif.org/ver10/tptz/ZoomSpaces/PositionGenericSpace</li>
						<li> http://www.onvif.org/ver10/tptz/ZoomSpaces/TranslationGenericSpace</li>
						<li> http://www.onvif.org/ver10/tptz/ZoomSpaces/VelocityGenericSpace</li>
						<li> http://www.onvif.org/ver10/tptz/ZoomSpaces/ZoomGenericSpeedSpace</li>
					</ul>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="PTZVector">
		<xs:sequence>
			<xs:element name="PanTilt" type="tt:Vector2D" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Pan and tilt position. The x component corresponds to pan and the y component to tilt.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Zoom" type="tt:Vector1D" minOccurs="0">
				<xs:annotation>
					<xs:documentation>
            A zoom position.
          </xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="PTZStatus">
		<xs:sequence>
			<xs:element name="Position" type="tt:PTZVector" minOccurs="0">
				<xs:annotation>
					<xs:documentation>
            Specifies the absolute position of the PTZ unit together with the Space references. The default absolute spaces of the corresponding PTZ configuration MUST be referenced within the Position element.
          </xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="MoveStatus" type="tt:PTZMoveStatus" minOccurs="0">
				<xs:annotation>
					<xs:documentation>
            Indicates if the Pan/Tilt/Zoom device unit is currently moving, idle or in an unknown state.
          </xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Error" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>
            States a current PTZ error.
          </xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="UtcTime" type="xs:dateTime">
				<xs:annotation>
					<xs:documentation>
            Specifies the UTC time when this status was generated.
          </xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>	<!-- first Vendor then ONVIF -->
		</xs:sequence>
		<xs:anyAttribute processContents="lax"/>
	</xs:complexType>
	<xs:complexType name="PTZMoveStatus">
		<xs:sequence>
			<xs:element name="PanTilt" type="tt:MoveStatus" minOccurs="0">
				<xs:annotation>
					<xs:documentation>
          </xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Zoom" type="tt:MoveStatus" minOccurs="0">
				<xs:annotation>
					<xs:documentation>
          </xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="MoveStatus">
		<xs:restriction base="xs:string">
			<xs:enumeration value="IDLE"/>
			<xs:enumeration value="MOVING"/>
			<xs:enumeration value="UNKNOWN"/>
		</xs:restriction>
	</xs:simpleType>
	<!--===============================-->
	<!--  Event and Analytics Types    -->
	<!--===============================-->
	<xs:complexType name="Vector">
		<xs:attribute name="x" type="xs:float"/>
		<xs:attribute name="y" type="xs:float"/>
	</xs:complexType>
	<xs:complexType name="Rectangle">
		<xs:attribute name="bottom" type="xs:float"/>
		<xs:attribute name="top" type="xs:float"/>
		<xs:attribute name="right" type="xs:float"/>
		<xs:attribute name="left" type="xs:float"/>
	</xs:complexType>
	<xs:complexType name="Polygon">
		<xs:sequence>
			<xs:element name="Point" type="tt:Vector" minOccurs="3" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="Polygon" type="tt:Polygon"/>
	<xs:complexType name="Color">
		<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:attribute name="Colorspace" type="xs:anyURI">
			<xs:annotation>
				<xs:documentation>
					Acceptable values:
					<ul>
						<li>http://www.onvif.org/ver10/colorspace/YCbCr - YCbCr
							<ul><li>X attribute = Y value</li>
								<li>Y attribute = Cb value</li>
								<li>Z attribute = Cr value</li></ul>
						</li>
						<li>http://www.onvif.org/ver10/colorspace/RGB - RGB
							<ul><li>X attribute = R value</li>
								<li>Y attribute = G value</li>
								<li>Z attribute = B value</li></ul>
						</li>
					</ul>
					If the Colorspace attribute is absent, YCbCr is implied.

					Deprecated values:
					<ul>
						<li>http://www.onvif.org/ver10/colorspace/CIELUV - CIE LUV</li>
						<li>http://www.onvif.org/ver10/colorspace/CIELAB - CIE 1976 (L*a*b*)</li>
						<li>http://www.onvif.org/ver10/colorspace/HSV - HSV</li>
					</ul>
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="ColorCovariance">
		<xs:attribute name="XX" type="xs:float" use="required"/>
		<xs:attribute name="YY" type="xs:float" use="required"/>
		<xs:attribute name="ZZ" type="xs:float" use="required"/>
		<xs:attribute name="XY" type="xs:float"/>
		<xs:attribute name="XZ" type="xs:float"/>
		<xs:attribute name="YZ" type="xs:float"/>
		<xs:attribute name="Colorspace" type="xs:anyURI">
			<xs:annotation>
				<xs:documentation>
					Acceptable values are the same as in tt:Color.
				</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<!--===============================-->
	<!--       Scene Description Types -->
	<!--===============================-->
	<xs:complexType name="Transformation">
		<xs:sequence>
			<xs:element name="Translate" type="tt:Vector" minOccurs="0"/>
			<xs:element name="Scale" type="tt:Vector" minOccurs="0"/>
			<xs:element name="Extension" type="tt:TransformationExtension" minOccurs="0"/>
		</xs:sequence>
		<xs:anyAttribute processContents="lax"/>
	</xs:complexType>
	<xs:complexType name="TransformationExtension">
		<xs:sequence>
			<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>	<!-- first Vendor then ONVIF -->
		</xs:sequence>
	</xs:complexType>
	<!--===============================-->
	<!--  Location/Orientation Types   -->
	<!--===============================-->
	<xs:complexType name="GeoLocation">
		<xs:sequence>
			<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>   <!-- first ONVIF then Vendor -->
		</xs:sequence>
		<xs:attribute name="lon" type="xs:double">
			<xs:annotation>
				<xs:documentation>East west location as angle.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="lat" type="xs:double">
			<xs:annotation>
				<xs:documentation>North south location as angle.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="elevation" type="xs:float">
			<xs:annotation>
				<xs:documentation>Hight in meters above sea level.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:anyAttribute/>
	</xs:complexType>
	<!--===============================-->
	<xs:complexType name="GeoOrientation">
		<xs:sequence>
			<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>   <!-- first ONVIF then Vendor -->
		</xs:sequence>
		<xs:attribute name="roll" type="xs:float">
			<xs:annotation>
				<xs:documentation>Rotation around the x axis.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="pitch" type="xs:float">
			<xs:annotation>
				<xs:documentation>Rotation around the y axis.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="yaw" type="xs:float">
			<xs:annotation>
				<xs:documentation>Rotation around the z axis.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:anyAttribute/>
	</xs:complexType>
	<!--===============================-->
	<xs:complexType name="LocalLocation">
		<xs:sequence>
			<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>   <!-- first ONVIF then Vendor -->
		</xs:sequence>
		<xs:attribute name="x" type="xs:float">
			<xs:annotation>
				<xs:documentation>East west location as angle.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="y" type="xs:float">
			<xs:annotation>
				<xs:documentation>North south location as angle.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="z" type="xs:float">
			<xs:annotation>
				<xs:documentation>Offset in meters from the sea level.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:anyAttribute/>
	</xs:complexType>
	<!--===============================-->
	<xs:complexType name="LocalOrientation">
		<xs:sequence>
			<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>   <!-- first ONVIF then Vendor -->
		</xs:sequence>
		<xs:attribute name="pan" type="xs:float">
			<xs:annotation>
				<xs:documentation>Rotation around the y axis.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="tilt" type="xs:float">
			<xs:annotation>
				<xs:documentation>Rotation around the z axis.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="roll" type="xs:float">
			<xs:annotation>
				<xs:documentation>Rotation around the x axis.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:anyAttribute/>
	</xs:complexType>
	<!--===============================-->
	<xs:simpleType name="Entity">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Device"/>
			<xs:enumeration value="VideoSource"/>
			<xs:enumeration value="AudioSource"/>
		</xs:restriction>
	</xs:simpleType>
	<!--===============================-->
	<xs:complexType name="LocationEntity">
		<xs:sequence>
			<xs:element name="GeoLocation" type="tt:GeoLocation" minOccurs="0">
				<xs:annotation><xs:documentation>Location on earth.</xs:documentation></xs:annotation>
			</xs:element>
			<xs:element name="GeoOrientation" type="tt:GeoOrientation" minOccurs="0">
				<xs:annotation><xs:documentation>Orientation relative to earth.</xs:documentation></xs:annotation>
			</xs:element>
			<xs:element name="LocalLocation" type="tt:LocalLocation" minOccurs="0">
				<xs:annotation><xs:documentation>Indoor location offset.</xs:documentation></xs:annotation>
			</xs:element>
			<xs:element name="LocalOrientation" type="tt:LocalOrientation" minOccurs="0">
				<xs:annotation><xs:documentation>Indoor orientation offset.</xs:documentation></xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="Entity" type="xs:string">
			<xs:annotation><xs:documentation>Entity type the entry refers to, use a value from the tt:Entity enumeration.</xs:documentation></xs:annotation>
		</xs:attribute>
		<xs:attribute name="Token" type="tt:ReferenceToken">
			<xs:annotation><xs:documentation>Optional entity token.</xs:documentation></xs:annotation>
		</xs:attribute>
		<xs:attribute name="Fixed" type="xs:boolean">
			<xs:annotation><xs:documentation>If this value is true the entity cannot be deleted.</xs:documentation></xs:annotation>
		</xs:attribute>
		<xs:attribute name="GeoSource" type="xs:anyURI">
			<xs:annotation><xs:documentation>Optional reference to the XAddr of another devices DeviceManagement service.</xs:documentation></xs:annotation>
		</xs:attribute>
		<xs:attribute name="AutoGeo" type="xs:boolean">
			<xs:annotation><xs:documentation>If set the geo location is obtained internally.</xs:documentation></xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<!--===============================-->
</xs:schema>
