<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:3gpp:metadata:2008:MTSI:qoereport" 
xmlns="urn:3gpp:metadata:2008:MTSI:qoereport" 
	elementFormDefault="qualified">
	<xs:element name="QoeReport" type="QoeReportType"/>

	<xs:complexType name="QoeReportType">
	<xs:sequence>
		<xs:element name="statisticalReport" type="starType" minOccurs="0"
		maxOccurs="unbounded"/>
		<xs:any namespace="##other" processContents="skip" minOccurs="0"
		maxOccurs="unbounded"/>
	</xs:sequence>
	<xs:anyAttribute processContents="skip"/>
	</xs:complexType>

	<xs:complexType name="starType">
	<xs:sequence>
		<xs:element name="mediaLevelQoeMetrics" type="mediaLevelQoeMetricsType" minOccurs="1"
		maxOccurs="unbounded"/>
	</xs:sequence>
	<xs:attribute name="startTime" type="xs:unsignedLong" use="required"/>
	<xs:attribute name="stopTime" type="xs:unsignedLong" use="required"/>
	<xs:attribute name="callId" type="xs:string" use="required"/>
	<xs:attribute name="clientId" type="xs:string" use="required"/>
    <xs:attribute name="qoeReferenceId" type="xs:hexBinary" use="optional"/>
    <xs:attribute name="recordingSessionId" type="xs:hexBinary" use="optional"/>
	<xs:attribute name="dnn" type="xs:string" use="optional"/>
	<xs:attribute name="snssai" type="xs:unsignedLong" use="optional"/>
	<xs:anyAttribute processContents="skip"/>
	</xs:complexType>

	<xs:complexType name="mediaLevelQoeMetricsType">
	<xs:sequence>
		<xs:any namespace="##other" processContents="skip" minOccurs="0"
		maxOccurs="unbounded"/>
	</xs:sequence>	
	<xs:attribute name="mediaId" type="xs:integer" use="required"/>
	<xs:attribute name="totalCorruptionDuration" type="unsignedLongVectorType"
       	use="optional"/>
	<xs:attribute name="numberOfCorruptionEvents" type="unsignedLongVectorType"
       	use="optional"/>
	<xs:attribute name="corruptionAlternative" type="xs:string" use="optional"/>
	<xs:attribute name="totalNumberofSuccessivePacketLoss" type="unsignedLongVectorType"
		use="optional"/>
	<xs:attribute name="numberOfSuccessiveLossEvents" type="unsignedLongVectorType" 
       	use="optional"/>
	<xs:attribute name="numberOfReceivedPackets" type="unsignedLongVectorType" 
       	use="optional"/>
	<xs:attribute name="framerate" type="doubleVectorType" use="optional"/>
	<xs:attribute name="totalJitterDuration" type="doubleVectorType" use="optional"/>
	<xs:attribute name="numberOfJitterEvents" type="unsignedLongVectorType"
		use="optional"/>	
	<xs:attribute name="totalSyncLossDuration" type="doubleVectorType" use="optional"/>
	<xs:attribute name="numberOfSyncLossEvents" type="unsignedLongVectorType"
		use="optional"/>	
	<xs:attribute name="networkRTT" type="unsignedLongVectorType" use="optional"/>
	<xs:attribute name="internalRTT" type="unsignedLongVectorType" use="optional"/>
	<xs:attribute name="codecInfo" type="stringVectorType" use="optional"/>
	<xs:attribute name="codecProfileLevel" type="stringVectorType" use="optional"/>
	<xs:attribute name="codecImageSize" type="stringVectorType" use="optional"/>
	<xs:attribute name="averageCodecBitrate" type="doubleVectorType" use="optional"/>
	<xs:attribute name="callSetupTime" type="xs:unsignedLong" use="optional"/>
	
	<xs:anyAttribute processContents="skip"/>
	</xs:complexType>

	<xs:simpleType name="doubleVectorType">
	<xs:list itemType="xs:double"/>
	</xs:simpleType> 

	<xs:simpleType name="stringVectorType">
	<xs:list itemType="xs:string"/>
	</xs:simpleType> 

	<xs:simpleType name="unsignedLongVectorType">
	<xs:list itemType="xs:unsignedLong"/>
	</xs:simpleType>
</xs:schema>
