<?xml version="1.0" encoding="UTF-8"?>
<!--W3C XML Schema generated by XMLSpy v2017 (x64) (http://www.altova.com)-->
<!--
Copyright (c) 2008-2022 by ONVIF: Open Network Video Interface Forum. All rights reserved.

Recipients of this document may copy, distribute, publish, or display this document so long as this copyright notice, license and disclaimer are retained with all copies of the document. No license is granted to modify this document.

THIS DOCUMENT IS PROVIDED "AS IS," AND THE CORPORATION AND ITS MEMBERS AND THEIR AFFILIATES, MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THIS DOCUMENT ARE SUITABLE FOR ANY PURPOSE; OR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL DAMAGES, ARISING OUT OF OR RELATING TO ANY USE OR DISTRIBUTION OF THIS DOCUMENT, WHETHER OR NOT (1) THE CORPORATION, MEMBERS OR THEIR AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR (2) SUCH DAMAGES WERE REASONABLY FORESEEABLE, AND ARISING OUT OF OR RELATING TO ANY USE OR DISTRIBUTION OF THIS DOCUMENT.  THE FOREGOING DISCLAIMER AND LIMITATION ON LIABILITY DO NOT APPLY TO, INVALIDATE, OR LIMIT REPRESENTATIONS AND WARRANTIES MADE BY THE MEMBERS AND THEIR RESPECTIVE AFFILIATES TO THE CORPORATION AND OTHER MEMBERS IN CERTAIN WRITTEN POLICIES OF THE CORPORATION.
-->
<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="22.12">
	<!--===============================-->
	<!--         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. Token may be extended by intermediate terminal with adding prefix to make it global unique.
			The length should be within 36 characters for generating at local device. See "Remote Token" section in Resource Query specification.</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 and not defined on higher level, 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:attribute name="Likelihood" type="xs:float">
			<xs:annotation>
				<xs:documentation>Likelihood that the color is correct.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:anyAttribute processContents="lax"/>
	</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:anyAttribute processContents="lax"/>
	</xs:complexType>
	<xs:complexType name="ColorDescriptor">
		<xs:sequence>
			<xs:element name="ColorCluster" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Color" type="tt:Color"/>
						<xs:element name="Weight" type="xs:float" minOccurs="0"/>
						<xs:element name="Covariance" type="tt:ColorCovariance" minOccurs="0"/>
						<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>	<!-- reserved for ONVIF -->
					</xs:sequence>
					<xs:anyAttribute processContents="lax"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="Extension" type="xs:anyType" minOccurs="0"/>
			<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>	<!-- reserved for ONVIF -->
		</xs:sequence>
		<xs:anyAttribute processContents="lax"/>
	</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>
