<?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:mxmbp="urn:mpeg:mpeg-m:schema:baseprotocol:2009"   
		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:mpeg-m:schema:baseprotocol:2009" schemaLocation="http://mxm.wg11.sc29.org/wp-content/uploads/2009/12/mxmbp.xsd"/>
	<complexType name="DeviceIdentifierProtocolType" abstract="true">
		<complexContent>
			<extension base="mxmbp:ProtocolType"/>
		</complexContent>
	</complexType>
	<element name="Ack" type="dmprdip:AckType"/>
	<complexType name="AckType">
		<complexContent>
			<extension base="dmprdip:DeviceIdentifierProtocolType">
				<sequence minOccurs="0">
					<element ref="mxmbp: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="mxmbp: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="mxmbp: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>

