<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="urn:dmp:idp:represent:PaymentProtocol:2008"
		xmlns:dmprpp="urn:dmp:idp:represent:PaymentProtocol:2008"
		xmlns:mxmbp="urn:mpeg:mpeg-m:schema:baseprotocol:2009"
		xmlns:rel-r="urn:mpeg:mpeg21:2003:01-REL-R-NS"
		xmlns:rel-sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS"
		xmlns:mx="urn:mpeg:mpeg21:2003:01-REL-MX-NS" 
		xmlns:m1x="urn:mpeg:mpeg21:2005:01-REL-M1X-NS" 
		xmlns:m2x="urn:mpeg:mpeg21:2006:01-REL-M2X-NS" 
		xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" 
		xmlns="http://www.w3.org/2001/XMLSchema" 
		elementFormDefault="qualified" attributeFormDefault="unqualified">
	<import namespace="urn:mpeg:mpeg21:2003:01-REL-R-NS" schemaLocation="http://mxm.wg11.sc29.org/wp-content/uploads/2009/12/rel-r.xsd"/>
	<import namespace="urn:mpeg:mpeg-m:schema:baseprotocol:2009" schemaLocation="http://mxm.wg11.sc29.org/wp-content/uploads/2009/12/mxmbp.xsd"/>
	<import namespace="urn:mpeg:mpeg21:2003:01-REL-SX-NS" schemaLocation="http://mxm.wg11.sc29.org/wp-content/uploads/2009/12/rel-sx.xsd"/>
	<import namespace="urn:mpeg:mpeg21:2003:01-REL-MX-NS" schemaLocation="http://mxm.wg11.sc29.org/wp-content/uploads/2009/12/rel-mx.xsd"/>
	<import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
	<!-- **************************************************************** -->
	<!--                      PaymentProtocolType                          -->
	<!-- **************************************************************** -->
	<complexType name="PaymentProtocolType" abstract="true">
		<complexContent>
			<extension base="mxmbp:ProtocolType"/>
		</complexContent>
	</complexType>
	<!-- **************************************************************** -->
	<!--                       PurchaseRequest                              -->
	<!-- **************************************************************** -->
	<element name="PurchaseRequest" type="dmprpp:PurchaseRequestType"/>
	<complexType name="PurchaseRequestType">
		<complexContent>
			<extension base="dmprpp:PaymentProtocolType">
				<sequence>
					<element name="Rate" type="rel-sx:Rate" minOccurs="0"/>
					<element name="PaymentInformation" type="dmprpp:PaymentInformationType" minOccurs="0"/>
					<element name="CashingInformation" type="dmprpp:PaymentInformationType" minOccurs="0"/>
					<element name="Target" type="dmprpp:TargetType"/>
					<element name="Signature" type="dsig:SignatureType" minOccurs="0"/>					
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name="PaymentInformation" type="dmprpp:PaymentInformationType"/>
	<complexType name="PaymentInformationType">
		<complexContent>
			<extension base="mxmbp:ProtocolBaseType">
				<sequence>
					<element name="ServiceInformation" type="dmprpp:ServiceInformationType"/>
					<element name="UserInformation" type="dmprpp:UserInformationType"/>
					<any namespace="##other" processContents="lax" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>	
	<complexType name="ServiceInformationType">
		<complexContent>
			<extension base="mxmbp:ProtocolBaseType">
				<sequence>
					<element name="ServiceID" type="anyURI" minOccurs="0"/>
					<element name="ServiceURL" type="anyURI"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>	
	<complexType name="UserInformationType">
		<complexContent>
			<extension base="mxmbp:ProtocolBaseType">
				<sequence>
					<element name="UserID" type="anyURI" minOccurs="0"/>
					<element name="UserAccountID" type="anyURI"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>	
	<complexType name="TargetType">
		<complexContent>
			<extension base="mxmbp:ProtocolBaseType">
				<sequence>
					<choice minOccurs="0" maxOccurs="unbounded">
						<element name="LicenseTemplate" type="rel-r:License"/>
						<element name="LicenseInformation" type="dmprpp:LicenseInformationType"/>
					</choice>
					<element name="OrderNumber" type="string"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="LicenseInformationType">
		<complexContent>
			<extension base="mxmbp:ProtocolBaseType">
				<sequence>
					<element name="LicenseID" type="anyURI"/>
					<element name="Principal" type="rel-r:Principal"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- **************************************************************** -->
	<!--                       PurchaseResponse                              -->
	<!-- **************************************************************** -->
	<element name="PurchaseResponse" type="dmprpp:PurchaseResponseType"/>
	<complexType name="PurchaseResponseType">
		<complexContent>
			<extension base="dmprpp:PaymentProtocolType">
				<sequence>
					<choice>
						<element name="PurchaseSuccess" type="dmprpp:PurchaseSuccessType"/>
						<element name="PurchaseFailure" type="dmprpp:PurchaseFailureType"/>
					</choice>
					<element name="OrderNumber" type="string"/>
					<element ref="dsig:Signature" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="PurchaseSuccessType">
		<complexContent>
			<extension base="mxmbp:ProtocolBaseType">
				<sequence>
					<element name="LicenseServiceURL" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
					<element name="License" type="rel-r:License" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="PurchaseFailureType">
		<complexContent>
			<extension base="mxmbp:ProtocolBaseType">
				<sequence>
					<element name="FailureCode" type="dmprpp:PurchaseResponseFailureCodeType"/>
					<element name="DisplayString" type="string" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<simpleType name="PurchaseResponseFailureCodeType">
		<restriction base="string">
			<enumeration value="BUYER_SERVICE_UNAVAILABLE"/>
			<enumeration value="SELLER_SERVICE_UNAVAILABLE"/>
			<enumeration value="NOT_ENOUGH_CREDIT_ON_BUYER_ACCOUNT"/>
			<enumeration value="REQUEST_REJECTED_BY_BUYER_SERVICE"/>
			<enumeration value="REQUEST_REJECTED_BY_SELLER_SERVICE"/>
			<enumeration value="BUYER_ACCOUNT_UNKNOWN"/>
			<enumeration value="SELLER_ACCOUNT_UNKNOWN"/>
			<enumeration value="UNKNOWN_ERROR_OCCURRED"/>
		</restriction>
	</simpleType>	
	<!-- **************************************************************** -->
	<!--                  PaymentConfirmationRequest                      -->
	<!-- **************************************************************** -->
	<element name="PaymentConfirmationRequest" type="dmprpp:PaymentConfirmationRequestType"/>
	<complexType name="PaymentConfirmationRequestType">
		<complexContent>
			<extension base="dmprpp:PaymentProtocolType">
				<sequence>
					<element name="From" type="dmprpp:PaymentInformationType"/>
					<element name="Rate" type="rel-sx:Rate"/>
					<element name="Target" type="dmprpp:TargetType" minOccurs="0"/>
					<element ref="dsig:Signature" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- **************************************************************** -->
	<!--                  PaymentConfirmationResponse                     -->
	<!-- **************************************************************** -->
	<element name="PaymentConfirmationResponse" type="dmprpp:PaymentConfirmationResponseType"/>
	<complexType name="PaymentConfirmationResponseType">
		<complexContent>
			<extension base="dmprpp:PaymentProtocolType">
				<sequence>
					<element name="PaymentConfirmationResult" type="dmprpp:PaymentConfirmationResultType"/>
					<element ref="dsig:Signature" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<simpleType name="PaymentConfirmationResultType">
		<restriction base="string">
			<enumeration value="PAYMENT_SUCCESSFULLY_EXECUTED"/>
			<enumeration value="NO_RECORD_FOR_REQUESTED_PAYMENT"/>
			<enumeration value="SERVICE_TEMPORARILY_UNAVAILABLE"/>
			<enumeration value="UNKNOWN_ERROR_OCCURRED"/>
		</restriction>
	</simpleType>	
</schema>
