<?xml version="1.0" encoding="UTF-8"?>

<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:OCAP="http://www.ipdr.org/namespaces/CableLabs(R)/OCAP(TM)" xmlns:ipdr="http://www.ipdr.org/namespaces/ipdr" targetNamespace="http://www.ipdr.org/namespaces/CableLabs(R)/OCAP(TM)" version="3.5-A.0" elementFormDefault="qualified" attributeFormDefault="unqualified">
  <import namespace="http://www.ipdr.org/namespaces/ipdr" schemaLocation="http://www.ipdr.org/public/IPDRDoc3.5.1.xsd"/> 
<include schemaLocation="http://www.ipdr.org/public/IPDRTypes.xsd"/> 

<element name="protocolVersionMajor" type="byte">
</element>

<element name="protocolVersionMinor" type="byte">
</element>

<element name="hostID" type="string"/>

<element name="hostType">
	<simpleType>
		<restriction base="int">
			<enumeration value="1">
				<annotation>
					<appinfo>
						<ipdr:enumMeaning>
							OCAP
						</ipdr:enumMeaning>
					</appinfo>
				</annotation>
			</enumeration>
			<enumeration value="2">
				<annotation>
					<appinfo>
						<ipdr:enumMeaning>
							ETV
						</ipdr:enumMeaning>
					</appinfo>
				</annotation>
			</enumeration>
			<enumeration value="3">
				<annotation>
					<appinfo>
						<ipdr:enumMeaning>
							other
						</ipdr:enumMeaning>
					</appinfo>
				</annotation>
			</enumeration>
		</restriction>
	</simpleType>
</element>

<element name="createTime" type="ipdr:dateTimeMsec">
</element>

<element name="transmitTime" type="ipdr:dateTimeMsec">
</element>

<element name="privateData" type="hexBinary">
</element>

<element name="serviceSelection">
	<complexType>
		<sequence>
			<element ref="createTime"/>
			<element name="sourceID" type="int">
			</element>
		</sequence>
	</complexType>
</element>

<element name="tuning">
	<complexType>
		<sequence>
			<element ref="createTime"/>
			<element name="tunerID" type="int">
			</element>
			<element name="frequency" type="int">
			</element>
			<element name="programNumber" type="int">
			</element>
		</sequence>
	</complexType>
</element>

<element name="SDV">
	<complexType>
		<sequence>
			<element ref="createTime"/>
			<element name="sourceID" type="int">
			</element>
		</sequence>
	</complexType>
</element>

<element name="servicePresentation">
	<complexType>
		<sequence>
			<element ref="createTime"/>
			<element name="sourceID" type="int">
			</element>
			<element name="aspectRatio">
				<simpleType>
					<restriction base="int">
						<enumeration value="1">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										4:3
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
						<enumeration value="2">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										16:9
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
					</restriction>
				</simpleType>
			</element>
			<element name="resolution" type="int">
			</element>
			<element name="audio">
				<simpleType>
					<restriction base="int">
						<enumeration value="0">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										No audio
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
						<enumeration value="1">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										Audio
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
					</restriction>
				</simpleType>
			</element>
		</sequence>
	</complexType>
</element>

<element name="segmentPresentation">
	<complexType>
		<sequence>
			<element ref="createTime"/>
			<element name="segmentID" type="int">
			</element>
		</sequence>
	</complexType>
</element>

<element name="DPI">
	<complexType>
		<sequence>
			<element ref="createTime"/>
			<element name="sourceID" type="int">
			</element>
			<element name="replacementID" type="int">
			</element>
			<element name="replacementSource">
				<simpleType>
					<restriction base="int">
						<enumeration value="1">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										In transport
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
						<enumeration value="2">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										Out of transport
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
						<enumeration value="3">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										From Memory
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
					</restriction>
				</simpleType>
			</element>
			<element name="switchLevel" type="int">
				<simpleType>
					<restriction base="int">
						<enumeration value="0">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										L0
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
						<enumeration value="1">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										L1
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
					</restriction>
				</simpleType>
			</element>
		</sequence>
	</complexType>
</element>

<element name="inputEvent">
	<complexType>
		<sequence>
			<element ref="createTime"/>
			<element name="keyCode" type="int">
			</element>
		</sequence>
	</complexType>
</element>

<element name="applicationLoadRequested">
	<complexType>
		<sequence>
			<element ref="createTime"/>
			<element name="appID" type="int">
			</element>
			<element name="appType">
				<simpleType>
					<restriction base="int">
						<enumeration value="1">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										OCAP
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
						<enumeration value="2">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										ETV
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
						<enumeration value="3">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										other
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
					</restriction>
				</simpleType>
			</element>
		</sequence>
	</complexType>
</element>

<element name="applicationLoaded">
	<complexType>
		<sequence>
			<element ref="createTime"/>
			<element name="appID" type="int">
			</element>
			<element name="appType">
				<simpleType>
					<restriction base="int">
						<enumeration value="1">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										OCAP
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
						<enumeration value="2">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										ETV
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
						<enumeration value="3">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										other
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
					</restriction>
				</simpleType>
			</element>
			<element name="numResourceFiles" type="int">
			</element>
			<element name="transportProtocol">
				<simpleType>
					<restriction base="int">
						<enumeration value="1">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										IBOC
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
						<enumeration value="2">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										OOBOC
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
						<enumeration value="3">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										HTTP
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
					</restriction>
				</simpleType>
			</element>
			<element name="controlCode">
				<simpleType>
					<restriction base="int">
						<enumeration value="1">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										LOADED
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
						<enumeration value="2">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										PAUSED
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
						<enumeration value="3">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										RUNNING
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
					</restriction>
				</simpleType>
			</element>
		</sequence>
	</complexType>
</element>

<element name="applicationLifecycle">
	<complexType>
		<sequence>
			<element ref=" createTime"/>
			<element name="appID" type="int"/>
			<element name="appType">
				<simpleType>
					<restriction base="int">
						<enumeration value="1">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										OCAP
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
						<enumeration value="2">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										ETV
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
						<enumeration value="3">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										other
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
					</restriction>
				</simpleType>
			</element>
			<element name="lifecycleState">
				<simpleType>
					<restriction base="int">
						<enumeration value="1">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										LAUNCHED
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
						<enumeration value="2">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										PAUSED
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
						<enumeration value="3">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										RESUMED
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
						<enumeration value="4">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										TERMINATED
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
					</restriction>
				</simpleType>
			</element>
		</sequence>
	</complexType>
</element>

<element name="environmentSelection">
	<complexType>
		<sequence>
			<element ref="createTime"/>
			<element name="environment">
				<simpleType>
					<restriction base="int">
						<enumeration value="1">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										Cable
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
						<enumeration value="2">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										Non cable
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
					</restriction>
				</simpleType>
			</element>
		</sequence>
	</complexType>
</element>

<element name="applicationMode">
	<complexType>
		<sequence>
			<element ref=" createTime"/>
			<element name="appID" type="int"/>
			<element name="appType"/>
			<element name="mode">
				<simpleType>
					<restriction base="int">
						<enumeration value="1">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										CROSS_ENVIRONMENT
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
						<enumeration value="2">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										BACKGROUND
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
						<enumeration value="3">
							<annotation>
								<appinfo>
									<ipdr:enumMeaning>
										NORMAL
									</ipdr:enumMeaning>
								</appinfo>
							</annotation>
						</enumeration>
					</restriction>
				</simpleType>
			</element>
		</sequence>
	</complexType>
</element>

<element name="application">
	<complexType>
		<sequence>
			<element ref="createTime"/>
			<element name="privateData" type="hexBinary">
			</element>
		</sequence>
	</complexType>
</element>

<complexType name="OCAP-Type">
	<complexContent>
		<extension base="ipdr:IPDRType">
			<sequence>
				<element ref="protocolVersionMajor"/>
				<element ref="protocolVersionMinor"/> 
				<element ref="hostID"/> 
				<element ref="hostType"/>
				<element ref="createTime"/>
				<element ref="transmitTime"/>
				<element ref="privateData"/>
				<element ref="serviceSelection" minOccurs="0" maxOccurs="unbounded"/>
				<element ref="tuning" minOccurs="0" maxOccurs="unbounded"/>
				<element ref="SDV" minOccurs="0" maxOccurs="unbounded"/>
				<element ref="servicePresentation" minOccurs="0" maxOccurs="unbounded"/>
				<element ref="segmentPresentation" minOccurs="0" maxOccurs="unbounded"/>
				<element ref="DPI" minOccurs="0" maxOccurs="unbounded"/>
				<element ref="inputEvent" minOccurs="0" maxOccurs="unbounded"/>
				<element ref="applicationLoadRequested" minOccurs="0" maxOccurs="unbounded"/>
				<element ref="applicationLoaded" minOccurs="0" maxOccurs="unbounded"/>
				<element ref="applicationLifecycle" minOccurs="0" maxOccurs="unbounded"/>
				<element ref="environmentSelection" minOccurs="0" maxOccurs="unbounded"/>
				<element ref="applicationMode" minOccurs="0" maxOccurs="unbounded"/>
				<element ref="application" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
		</extension>
	</complexContent>
</complexType>

</schema>