<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="urn:dmp:idp:Represent:DeviceIdentifierProtocol:2007"
		xmlns:dmprdip="urn:dmp:idp:Represent:DeviceIdentifierProtocol:2007" 
		xmlns="http://www.w3.org/2001/XMLSchema" 
		xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" 
		xmlns:msbp="urn:mpeg:maf:schema:mediastreaming:baseprotocol:2007"  
		elementFormDefault="qualified" attributeFormDefault="unqualified">
	<import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
	<import namespace="urn:mpeg:maf:schema:mediastreaming:baseprotocol:2007" schemaLocation="http://www.dmpf.org/schemas/msbp.xsd"/>
	<complexType name="DeviceIdentifierProtocolType" abstract="true">
		<complexContent>
			<extension base="msbp:ProtocolType"/>
		</complexContent>
	</complexType>
	<element name="Ack" type="dmprdip:AckType"/>
	<complexType name="AckType">
		<complexContent>
			<extension base="dmprdip:DeviceIdentifierProtocolType">
				<sequence minOccurs="0">
					<element ref="msbp:ProtocolResult"/>
				</sequence>
				<attribute name="Result" type="boolean" use="required"/>
			</extension>
		</complexContent>
	</complexType>
	<element name="DeviceIDRequest" type="dmprdip:DeviceIDRequestType"/>
	<complexType name="DeviceIDRequestType">
		<complexContent>
			<extension base="dmprdip:DeviceIdentifierProtocolType">
				<sequence>
					<element name="VendorID" type="dmprdip:IDType"/>
					<element name="ModelID" type="anyURI"/>
					<element name="SerialNumber" type="anyURI" minOccurs="0"/>
					<element name="DeviceKey" type="dsig:KeyInfoType" minOccurs="0"/>
					<element ref="dsig:Signature" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="IDType">
		<complexContent>
			<extension base="msbp:ProtocolBaseType">
				<sequence>
					<choice>
						<element name="id" type="anyURI"/>
						<element ref="dsig:X509Data"/>
					</choice>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name="DeviceIDResponse" type="dmprdip:DeviceIDResponseType"/>
	<complexType name="DeviceIDResponseType">
		<complexContent>
			<extension base="dmprdip:DeviceIdentifierProtocolType">
				<sequence>
					<element name="DeviceID" type="dsig:KeyInfoType"/>
					<element ref="dsig:Signature" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ################################# -->
	<!-- Proposed new messages for IDP 3.1 -->
	<!-- ################################# -->
	<element name="ValidateDeviceID" type="dmprdip:ValidateDeviceIDType"/>
	<complexType name="ValidateDeviceIDType">
		<complexContent>
			<extension base="dmprdip:DeviceIdentifierProtocolType">
				<sequence>
					<element name="DeviceIDs" type="dmprdip:DeviceIDListType"/>
					<element ref="dsig:Signature" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="DeviceIDListType">
		<complexContent>
			<extension base="msbp:ProtocolBaseType">
				<sequence>
					<element name="DeviceID" type="dsig:KeyInfoType" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name="ValidateDeviceIDResponse" type="dmprdip:ValidateDeviceIDResponseType"/>
	<complexType name="ValidateDeviceIDResponseType">
		<complexContent>
			<extension base="dmprdip:DeviceIdentifierProtocolType">
				<sequence>
					<element name="ValidDeviceIDs" type="dmprdip:DeviceIDListType" minOccurs="0"/>
					<element name="RevokedDeviceIDs" type="dmprdip:DeviceIDListType" minOccurs="0"/>
					<element ref="dsig:Signature" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>	
</schema>
