<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="urn:dmp:idp:Represent:ContentIdentifierProtocol:2007"
		xmlns:dmprcip="urn:dmp:idp:Represent:ContentIdentifierProtocol:2007"
		xmlns="http://www.w3.org/2001/XMLSchema" 
		xmlns:msbp="urn:mpeg:maf:schema:mediastreaming:baseprotocol:2007"
		xmlns:didl="urn:mpeg:mpeg21:2006:07-DIDL-NS" 
		xmlns:didl-msx="urn:mpeg:maf:schema:mediastreaming:DIDLextensions" 
		xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" 
		xmlns:dii="urn:mpeg:mpeg21:2002:01-DII-NS"  
		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:mpeg21:2006:07-DIDL-NS" schemaLocation="http://www.dmpf.org/schemas/didl.xsd"/>
	<import namespace="urn:mpeg:maf:schema:mediastreaming:baseprotocol:2007" schemaLocation="http://www.dmpf.org/schemas/msbp.xsd"/>
	<import namespace="urn:mpeg:maf:schema:mediastreaming:DIDLextensions" schemaLocation="http://www.dmpf.org/schemas/didl-msx.xsd"/>
	<import namespace="urn:mpeg:mpeg21:2002:01-DII-NS" schemaLocation="http://www.dmpf.org/schemas/dii.xsd"/>
	<complexType name="ContentIdentifierProtocolType" abstract="true">
		<complexContent>
			<extension base="msbp:ProtocolType"/>
		</complexContent>
	</complexType>
	<element name="Ack" type="dmprcip:AckType"/>
	<complexType name="AckType">
		<complexContent>
			<extension base="dmprcip:ContentIdentifierProtocolType">
				<sequence minOccurs="0">
					<element ref="msbp:ProtocolResult"/>
				</sequence>
				<attribute name="Result" type="boolean" use="required"/>
			</extension>
		</complexContent>
	</complexType>
	<!-- ******************** -->
	<!-- Identify Content (1) -->
	<!-- ******************** -->
	<element name="IdentifyContentRequest" type="dmprcip:IdentifyContentRequestType"/>
	<complexType name="IdentifyContentRequestType">
		<complexContent>
			<extension base="dmprcip:ContentIdentifierProtocolType">
				<sequence>
					<element name="DCI" type="didl:DIDLType"/>
					<element ref="dsig:Signature" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name="IdentifyContentResponse" type="dmprcip:IdentifyContentResponseType"/>
	<complexType name="IdentifyContentResponseType">
		<complexContent>
			<extension base="dmprcip:ContentIdentifierProtocolType">
				<sequence>
					<element name="DCI" type="didl:DIDLType"/>
					<element ref="dsig:Signature" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- **************************************** -->
	<!-- Identify Content (2) and Content Element -->
	<!-- **************************************** -->
	<element name="RequestContentIdentifier" type="dmprcip:RequestContentIdentifierType"/>
	<complexType name="RequestContentIdentifierType">
		<complexContent>
			<extension base="dmprcip:ContentIdentifierProtocolType"/>
		</complexContent>
	</complexType>
	<element name="RequestContentElementIdentifier" type="dmprcip:RequestContentElementIdentifierType"/>
	<complexType name="RequestContentElementIdentifierType">
		<complexContent>
			<extension base="dmprcip:ContentIdentifierProtocolType">
				<sequence>
					<element name="ContentElementSignature" type="dsig:SignatureType"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name="RequestIdentifierResponse" type="dmprcip:RequestIdentifierResponseType"/>
	<complexType name="RequestIdentifierResponseType">
		<complexContent>
			<extension base="dmprcip:ContentIdentifierProtocolType">
				<sequence>
					<element ref="dii:Identifier"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name="RegisterIdentifier" type="dmprcip:RegisterIdentifierType"/>
	<complexType name="RegisterIdentifierType">
		<complexContent>
			<extension base="dmprcip:ContentIdentifierProtocolType">
				<sequence>
					<element ref="dii:Identifier"/>
					<element name="DCISignature" type="dsig:SignatureType"/>
					<element ref="dsig:Signature" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- **************************************** -->
	<!-- Authenticate Content and Content Element -->
	<!-- **************************************** -->
	<element name="AuthenticateContentRequest" type="dmprcip:AuthenticateContentRequestType"/>
	<complexType name="AuthenticateContentRequestType">
		<complexContent>
			<extension base="dmprcip:ContentIdentifierProtocolType">
				<sequence>
					<choice>
						<element name="DCIInfo" type="dmprcip:InfoType"/>
						<element name="DCI" type="didl:DIDLType"/>
					</choice>
					<element ref="dsig:Signature" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="InfoType">
		<complexContent>
			<extension base="msbp:ProtocolBaseType">
				<sequence>
					<element name="ID" type="anyURI"/>
					<element name="Signature" type="dsig:SignatureType" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name="AuthenticateContentElementRequest" type="dmprcip:AuthenticateContentElementRequestType"/>
	<complexType name="AuthenticateContentElementRequestType">
		<complexContent>
			<extension base="dmprcip:ContentIdentifierProtocolType">
				<sequence>
					<element name="ContentElementInfo" type="dmprcip:InfoType"/>
					<element ref="dsig:Signature" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name="AuthenticateResponse" type="dmprcip:AuthenticateResponseType"/>
	<complexType name="AuthenticateResponseType">
		<complexContent>
			<extension base="dmprcip:ContentIdentifierProtocolType">
				<sequence>
					<choice>
						<element name="Signature" type="dsig:SignatureType"/>
						<element name="AuthenticationResult" type="boolean"/>
						<element name="ErrorCode" type="dmprcip:ErrorCodeType"/>
					</choice>
					<element ref="dsig:Signature" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<simpleType name="ErrorCodeType">
		<restriction base="string">
			<enumeration value="HASH_MISSING"/>
			<enumeration value="HASH_CORRUPTED"/>
		</restriction>
	</simpleType>
	<!-- #################################### -->
	<!-- Query Content Registration Authority -->
	<!-- #################################### -->
	<element name="QueryCRAu" type="dmprcip:QueryCRAuType"/>
	<complexType name="QueryCRAuType">
		<complexContent>
			<extension base="dmprcip:ContentIdentifierProtocolType">
				<sequence>
					<element name="ContentID" type="anyURI"/>
					<element ref="dsig:Signature" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name="QueryCRAuResponse" type="dmprcip:QueryCRAuResponseType"/>
	<complexType name="QueryCRAuResponseType">
		<complexContent>
			<extension base="dmprcip:ContentIdentifierProtocolType">
				<sequence>
					<element name="CIDURL" type="anyURI"/>
					<element ref="dsig:Signature" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>		
</schema>
