<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://ns.real.com/tools/pushServer.1.0" xmlns:rn="http://ns.real.com/tools/pushServer.1.0" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" xml:lang="en">
	<element name="pushServer">
		<annotation>
			<documentation>Helix Producer Push Server</documentation>
		</annotation>
		<complexType>
			<all>
				<element name="pluginName" fixed="rn-server-rbs" minOccurs="0">
					<complexType>
						<simpleContent>
							<extension base="string">
								<attribute name="type" type="string" use="required" fixed="string"/>
							</extension>
						</simpleContent>
					</complexType>
				</element>
				<element name="streamname" minOccurs="0">
					<complexType>
						<simpleContent>
							<extension base="string">
								<attribute name="type" type="string" use="required" fixed="string"/>
							</extension>
						</simpleContent>
					</complexType>
				</element>
				<element name="authType" default="account-based" minOccurs="0">
					<complexType>
						<simpleContent>
							<extension base="rn:authType">
								<attribute name="type" type="string" use="required" fixed="string"/>
							</extension>
						</simpleContent>
					</complexType>
				</element>
				<element name="path" nillable="true" minOccurs="0">
					<complexType>
						<simpleContent>
							<extension base="string">
								<attribute name="type" type="string" use="required" fixed="string"/>
							</extension>
						</simpleContent>
					</complexType>
				</element>
				<element name="address" minOccurs="0">
					<complexType>
						<simpleContent>
							<extension base="string">
								<attribute name="type" type="string" use="required" fixed="string"/>
							</extension>
						</simpleContent>
					</complexType>
				</element>
				<element name="port" default="80" minOccurs="0">
					<complexType>
						<simpleContent>
							<extension base="rn:portType">
								<attribute name="type" type="string" use="required" fixed="uint"/>
							</extension>
						</simpleContent>
					</complexType>
				</element>
				<element name="endPort" default="30020" minOccurs="0">
					<complexType>
						<simpleContent>
							<extension base="rn:portType">
								<attribute name="type" type="string" use="required" fixed="uint"/>
							</extension>
						</simpleContent>
					</complexType>
				</element>
				<element name="username" minOccurs="0">
					<complexType>
						<simpleContent>
							<extension base="string">
								<attribute name="type" type="string" use="required" fixed="string"/>
							</extension>
						</simpleContent>
					</complexType>
				</element>
				<element name="password" minOccurs="0">
					<complexType>
						<simpleContent>
							<extension base="string">
								<attribute name="type" type="string" use="required" fixed="string"/>
							</extension>
						</simpleContent>
					</complexType>
				</element>
				<element name="savePassword" minOccurs="0">
					<complexType>
						<simpleContent>
							<extension base="boolean">
								<attribute name="type" type="string" use="required" fixed="bool"/>
							</extension>
						</simpleContent>
					</complexType>
				</element>
				<element name="transport" default="udp/unicast" minOccurs="0">
					<complexType>
						<simpleContent>
							<extension base="rn:transportType">
								<attribute name="type" type="string" use="required" fixed="string"/>
							</extension>
						</simpleContent>
					</complexType>
				</element>
				<element name="listenAddress" minOccurs="0">
					<complexType>
						<simpleContent>
							<extension base="rn:ipAddressType">
								<attribute name="type" type="string" use="required" fixed="string"/>
							</extension>
						</simpleContent>
					</complexType>
				</element>
				<element name="multicastAddress" minOccurs="0">
					<complexType>
						<simpleContent>
							<extension base="rn:ipAddressType">
								<attribute name="type" type="string" use="required" fixed="string"/>
							</extension>
						</simpleContent>
					</complexType>
				</element>
				<element name="multicastTTL" default="16" minOccurs="0">
					<complexType>
						<simpleContent>
							<extension base="positiveInteger">
								<attribute name="type" type="string" use="required" fixed="uint"/>
							</extension>
						</simpleContent>
					</complexType>
				</element>
				<element name="fecPercent" minOccurs="0">
					<complexType>
						<simpleContent>
							<extension base="nonNegativeInteger">
								<attribute name="type" type="string" use="required" fixed="uint"/>
							</extension>
						</simpleContent>
					</complexType>
				</element>
				<element name="fecOffset" minOccurs="0">
					<complexType>
						<simpleContent>
							<extension base="nonNegativeInteger">
								<attribute name="type" type="string" use="required" fixed="uint"/>
							</extension>
						</simpleContent>
					</complexType>
				</element>
				<element name="metadataResendInterval" default="30" minOccurs="0">
					<complexType>
						<simpleContent>
							<extension base="positiveInteger">
								<attribute name="type" type="string" use="required" fixed="uint"/>
							</extension>
						</simpleContent>
					</complexType>
				</element>
				<element name="allowResends" default="true" minOccurs="0">
					<complexType>
						<simpleContent>
							<extension base="boolean">
								<attribute name="type" type="string" use="required" fixed="bool"/>
							</extension>
						</simpleContent>
					</complexType>
				</element>
				<element name="enableTCPReconnect" default="true" minOccurs="0">
					<complexType>
						<simpleContent>
							<extension base="boolean">
								<attribute name="type" type="string" use="required" fixed="bool"/>
							</extension>
						</simpleContent>
					</complexType>
				</element>
				<element name="TCPReconnectInterval" default="10" minOccurs="0">
					<complexType>
						<simpleContent>
							<extension base="positiveInteger">
								<attribute name="type" type="string" use="required" fixed="uint"/>
							</extension>
						</simpleContent>
					</complexType>
				</element>
				<element name="enableSureStreamAwareSplitting" default="false" minOccurs="0">
					<complexType>
						<simpleContent>
							<extension base="boolean">
								<attribute name="type" type="string" use="required" fixed="bool"/>
							</extension>
						</simpleContent>
					</complexType>
				</element>
				<element name="statisticsUpdateInterval" default="10" minOccurs="0">
					<complexType>
						<simpleContent>
							<extension base="positiveInteger">
								<attribute name="type" type="string" use="required" fixed="uint"/>
							</extension>
						</simpleContent>
					</complexType>
				</element>
			</all>
		</complexType>
		<key name="AudienceID">
			<selector xpath="rn:audiences/rn:audience/rn:name"/>
			<field xpath="."/>
		</key>
		<keyref name="AudienceIDRef" refer="rn:AudienceID">
			<selector xpath="rn:output/rn:mediaProfile/rn:audienceRefs/rn:audienceRef"/>
			<field xpath="."/>
		</keyref>
	</element>
	<complexType name="pushServerType"/>
	<complexType name="pullServerType">
		<all>
			<element name="name" minOccurs="0">
				<complexType>
					<simpleContent>
						<extension base="string">
							<attribute name="type" type="string" use="required" fixed="string"/>
						</extension>
					</simpleContent>
				</complexType>
			</element>
			<element name="pluginName" fixed="rn-server-rbs" minOccurs="0">
				<complexType>
					<simpleContent>
						<extension base="string">
							<attribute name="type" type="string" use="required" fixed="string"/>
						</extension>
					</simpleContent>
				</complexType>
			</element>
			<element name="streamname" minOccurs="0">
				<complexType>
					<simpleContent>
						<extension base="string">
							<attribute name="type" type="string" use="required" fixed="string"/>
						</extension>
					</simpleContent>
				</complexType>
			</element>
			<element name="path" minOccurs="0">
				<complexType>
					<simpleContent>
						<extension base="string">
							<attribute name="type" type="string" use="required" fixed="string"/>
						</extension>
					</simpleContent>
				</complexType>
			</element>
			<element name="listenAddress" minOccurs="0">
				<complexType>
					<simpleContent>
						<extension base="rn:ipAddressType">
							<attribute name="type" type="string" use="required" fixed="string"/>
						</extension>
					</simpleContent>
				</complexType>
			</element>
			<element name="listenPort" default="2021" minOccurs="0">
				<complexType>
					<simpleContent>
						<extension base="rn:portType">
							<attribute name="type" type="string" use="required" fixed="uint"/>
						</extension>
					</simpleContent>
				</complexType>
			</element>
			<element name="password" minOccurs="0">
				<complexType>
					<simpleContent>
						<extension base="string">
							<attribute name="type" type="string" use="required" fixed="string"/>
						</extension>
					</simpleContent>
				</complexType>
			</element>
			<element name="savePassword" minOccurs="0">
				<complexType>
					<simpleContent>
						<extension base="boolean">
							<attribute name="type" type="string" use="required" fixed="bool"/>
						</extension>
					</simpleContent>
				</complexType>
			</element>
			<element name="serverTimeout" default="2021" minOccurs="0">
				<complexType>
					<simpleContent>
						<extension base="integer">
							<attribute name="type" type="string" use="required" fixed="uint"/>
						</extension>
					</simpleContent>
				</complexType>
			</element>
		</all>
	</complexType>
	<complexType name="g2pushServerType">
		<all>
			<element name="name" minOccurs="0">
				<complexType>
					<simpleContent>
						<extension base="string">
							<attribute name="type" type="string" use="required" fixed="string"/>
						</extension>
					</simpleContent>
				</complexType>
			</element>
			<element name="pluginName" fixed="rn-server-g2" minOccurs="0">
				<complexType>
					<simpleContent>
						<extension base="string">
							<attribute name="type" type="string" use="required" fixed="string"/>
						</extension>
					</simpleContent>
				</complexType>
			</element>
			<element name="streamname" minOccurs="0">
				<complexType>
					<simpleContent>
						<extension base="string">
							<attribute name="type" type="string" use="required" fixed="string"/>
						</extension>
					</simpleContent>
				</complexType>
			</element>
			<element name="path" minOccurs="0">
				<complexType>
					<simpleContent>
						<extension base="string">
							<attribute name="type" type="string" use="required" fixed="string"/>
						</extension>
					</simpleContent>
				</complexType>
			</element>
			<element name="address" minOccurs="0">
				<complexType>
					<simpleContent>
						<extension base="string">
							<attribute name="type" type="string" use="required" fixed="string"/>
						</extension>
					</simpleContent>
				</complexType>
			</element>
			<element name="port" default="4040" minOccurs="0">
				<complexType>
					<simpleContent>
						<extension base="rn:portType">
							<attribute name="type" type="string" use="required" fixed="uint"/>
						</extension>
					</simpleContent>
				</complexType>
			</element>
			<element name="username" minOccurs="0">
				<complexType>
					<simpleContent>
						<extension base="string">
							<attribute name="type" type="string" use="required" fixed="string"/>
						</extension>
					</simpleContent>
				</complexType>
			</element>
			<element name="password" minOccurs="0">
				<complexType>
					<simpleContent>
						<extension base="string">
							<attribute name="type" type="string" use="required" fixed="string"/>
						</extension>
					</simpleContent>
				</complexType>
			</element>
			<element name="savePassword" minOccurs="0">
				<complexType>
					<simpleContent>
						<extension base="boolean">
							<attribute name="type" type="string" use="required" fixed="bool"/>
						</extension>
					</simpleContent>
				</complexType>
			</element>
			<element name="transport" default="udp/unicast" minOccurs="0">
				<complexType>
					<simpleContent>
						<extension base="rn:transportType">
							<attribute name="type" type="string" use="required" fixed="string"/>
						</extension>
					</simpleContent>
				</complexType>
			</element>
		</all>
	</complexType>
	<simpleType name="authType">
		<annotation>
			<documentation>Enumeration for authentiaction types</documentation>
		</annotation>
		<restriction base="string">
			<enumeration value="account-based"/>
			<enumeration value="single-password"/>
		</restriction>
	</simpleType>
	<simpleType name="portType">
		<annotation>
			<documentation>Integer range for IP Ports</documentation>
		</annotation>
		<restriction base="integer">
			<minInclusive value="0"/>
			<maxInclusive value="65535"/>
		</restriction>
	</simpleType>
	<simpleType name="transportType">
		<annotation>
			<documentation>Enumeration for server transports</documentation>
		</annotation>
		<restriction base="string">
			<enumeration value="udp/unicast"/>
			<enumeration value="udp/multicast"/>
			<enumeration value="tcp"/>
		</restriction>
	</simpleType>
	<simpleType name="ipAddressType">
		<annotation>
			<documentation>A.B.C.D formatted server address</documentation>
		</annotation>
		<restriction base="string">
			<pattern value="([0-9]{1,3}.){3}[0-9]{1,3}"/>
		</restriction>
	</simpleType>
	<simpleType name="fecPercentType">
		<annotation>
			<documentation>Union of integer ranges for 0 and 50-100</documentation>
		</annotation>
		<union memberTypes="rn:fecPercent0Type rn:fecPercent50to100Type"/>
	</simpleType>
	<simpleType name="fecPercent0Type">
		<annotation>
			<documentation>Integer value of 0 used by fecPercent value</documentation>
		</annotation>
		<restriction base="int">
			<minInclusive value="0"/>
			<maxInclusive value="0"/>
		</restriction>
	</simpleType>
	<simpleType name="fecPercent50to100Type">
		<annotation>
			<documentation>Integer range from 50 to 100 used by fecPercent value</documentation>
		</annotation>
		<restriction base="int">
			<minInclusive value="50"/>
			<maxInclusive value="100"/>
		</restriction>
	</simpleType>
	<simpleType name="videoCodecNameType">
		<restriction base="string">
			<enumeration value="rv9"/>
			<enumeration value="rv8"/>
			<enumeration value="rvg2svt"/>
		</restriction>
	</simpleType>
	<simpleType name="audioCodecNameType">
		<restriction base="string">
			<enumeration value="sipr"/>
			<enumeration value="cook"/>
			<enumeration value="atrc"/>
		</restriction>
	</simpleType>
	<simpleType name="encodingType">
		<annotation>
			<documentation>Enumeration for encodingType</documentation>
		</annotation>
		<restriction base="string">
			<enumeration value="cbr"/>
			<enumeration value="vbrBitrate"/>
			<enumeration value="vbrQuality"/>
		</restriction>
	</simpleType>
	<simpleType name="percentageType">
		<annotation>
			<documentation>range of 0-100</documentation>
		</annotation>
		<restriction base="integer">
			<minInclusive value="0"/>
			<maxInclusive value="100"/>
		</restriction>
	</simpleType>
</schema>
