<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="http://ns.real.com/tools/server.2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://ns.real.com/tools/server.2.0" elementFormDefault="qualified" attributeFormDefault="unqualified" xml:lang="en">
	<xsd:element name="server" type="destinationType">
		<xsd:annotation>
			<xsd:documentation>Helix Producer Job</xsd:documentation>
		</xsd:annotation>
		<xsd:key name="AudienceID">
			<xsd:selector xpath="rn:audiences/rn:audience/rn:name"/>
			<xsd:field xpath="."/>
		</xsd:key>
		<xsd:keyref name="AudienceIDRef" refer="AudienceID">
			<xsd:selector xpath="rn:output/rn:mediaProfile/rn:audienceRefs/rn:audienceRef"/>
			<xsd:field xpath="."/>
		</xsd:keyref>
	</xsd:element>
	<xsd:complexType name="destinationType">
		<xsd:annotation>
			<xsd:documentation>Base destination type</xsd:documentation>
		</xsd:annotation>
	</xsd:complexType>
	<xsd:complexType name="pushServerType">
		<xsd:complexContent>
			<xsd:extension base="destinationType">
				<xsd:all>
					<xsd:element name="name" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:string">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="string"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="pluginName" fixed="rn-server-rbs" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:string">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="string"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="streamname" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:string">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="string"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="authType" default="account-based" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="authType">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="string"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="path" nillable="true" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:string">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="string"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="address" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:string">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="string"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="port" default="80" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="portType">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="uint"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="endPort" default="30020" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="portType">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="uint"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="username" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:string">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="string"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="password" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:string">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="string"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="savePassword" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:boolean">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="bool"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="transport" default="udp/unicast" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="transportType">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="string"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="listenAddress" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="ipAddressType">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="string"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="multicastAddress" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="ipAddressType">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="string"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="multicastTTL" default="16" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="nonZeroUnsignedInt">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="uint"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="fecPercent" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:unsignedInt">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="uint"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="fecOffset" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:unsignedInt">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="uint"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="metadataResendInterval" default="30" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="nonZeroUnsignedInt">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="uint"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="allowResends" default="true" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:boolean">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="bool"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="enableTCPReconnect" default="true" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:boolean">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="bool"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="TCPReconnectInterval" default="10" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="nonZeroUnsignedInt">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="uint"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="enableSureStreamAwareSplitting" default="false" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:boolean">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="bool"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="statisticsUpdateInterval" default="10" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="nonZeroUnsignedInt">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="uint"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="postfilters" minOccurs="0">
						<xsd:complexType>
							<xsd:choice>
								<xsd:element name="postfilter" type="postfilterType" maxOccurs="unbounded"/>
							</xsd:choice>
						</xsd:complexType>
					</xsd:element>
				</xsd:all>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="pullServerType">
		<xsd:complexContent>
			<xsd:extension base="destinationType">
				<xsd:all>
					<xsd:element name="name" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:string">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="string"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="pluginName" fixed="rn-server-rbs" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:string">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="string"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="streamname" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:string">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="string"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="path" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:string">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="string"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="listenAddress" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="ipAddressType">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="string"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="listenPort" default="2021" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="portType">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="uint"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="password" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:string">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="string"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="savePassword" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:boolean">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="bool"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="serverTimeout" default="2021" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="nonZeroUnsignedInt">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="uint"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="postfilters" minOccurs="0">
						<xsd:complexType>
							<xsd:choice>
								<xsd:element name="postfilter" type="postfilterType" maxOccurs="unbounded"/>
							</xsd:choice>
						</xsd:complexType>
					</xsd:element>
				</xsd:all>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="g2pushServerType">
		<xsd:complexContent>
			<xsd:extension base="destinationType">
				<xsd:all>
					<xsd:element name="name" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:string">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="string"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="pluginName" fixed="rn-server-g2" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:string">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="string"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="streamname" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:string">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="string"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="path" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:string">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="string"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="address" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:string">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="string"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="port" default="4040" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="portType">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="uint"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="username" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:string">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="string"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="password" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:string">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="string"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="savePassword" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="xsd:boolean">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="bool"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="transport" default="udp/unicast" minOccurs="0">
						<xsd:complexType>
							<xsd:simpleContent>
								<xsd:extension base="transportType">
									<xsd:attribute name="type" type="xsd:string" use="required" fixed="string"/>
								</xsd:extension>
							</xsd:simpleContent>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="postfilters" minOccurs="0">
						<xsd:complexType>
							<xsd:choice>
								<xsd:element name="postfilter" type="postfilterType" maxOccurs="unbounded"/>
							</xsd:choice>
						</xsd:complexType>
					</xsd:element>
				</xsd:all>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="postfilterType">
		<xsd:annotation>
			<xsd:documentation>Base postfilter type</xsd:documentation>
		</xsd:annotation>
	</xsd:complexType>
	<!--Simple types for server destinations-->
	<xsd:simpleType name="authType">
		<xsd:annotation>
			<xsd:documentation>Enumeration for authentiaction types</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="account-based"/>
			<xsd:enumeration value="single-password"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="portType">
		<xsd:annotation>
			<xsd:documentation>Integer range for IP Ports</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:integer">
			<xsd:minInclusive value="0"/>
			<xsd:maxInclusive value="65535"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="transportType">
		<xsd:annotation>
			<xsd:documentation>Enumeration for server transports</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="udp/unicast"/>
			<xsd:enumeration value="udp/multicast"/>
			<xsd:enumeration value="tcp"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="ipAddressType">
		<xsd:annotation>
			<xsd:documentation>A.B.C.D formatted server address</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="([0-9]{1,3}.){3}[0-9]{1,3}"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="fecPercentType">
		<xsd:annotation>
			<xsd:documentation>Union of integer ranges for 0 and 50-100</xsd:documentation>
		</xsd:annotation>
		<xsd:union memberTypes="zeroValueType fecPercent50to100Type"/>
	</xsd:simpleType>
	<xsd:simpleType name="fecPercent50to100Type">
		<xsd:annotation>
			<xsd:documentation>Integer range from 50 to 100 used by fecPercent value</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:int">
			<xsd:minInclusive value="50"/>
			<xsd:maxInclusive value="100"/>
		</xsd:restriction>
	</xsd:simpleType>
	<!--Commonly used simple types-->
	<xsd:simpleType name="audioModeType">
		<xsd:annotation>
			<xsd:documentation>Enumeration list for audio mode (voice or music).  Used in mediaProfile and audioStream</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="voice"/>
			<xsd:enumeration value="music"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="nonZeroUnsignedInt">
		<xsd:annotation>
			<xsd:documentation>unsigned int excluding value of 0</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:unsignedInt">
			<xsd:minInclusive value="1"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="zeroValueType">
		<xsd:annotation>
			<xsd:documentation>Single value of 0 used in uninons with ranges that allow 0 and some other values.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:integer">
			<xsd:minInclusive value="0"/>
			<xsd:maxInclusive value="0"/>
		</xsd:restriction>
	</xsd:simpleType>
</xsd:schema>
