<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="urn:mpeg:mpeg21:2003:01-REL-R-NS" 
			xmlns:rel-r="urn:mpeg:mpeg21:2003:01-REL-R-NS" 
			xmlns:rel-sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS"
			xmlns:rel-mx="urn:mpeg:mpeg21:2003:01-REL-MX-NS"
			xmlns:rel-m1x="urn:mpeg:mpeg21:2005:01-REL-M1X-NS"  
			xmlns:rel-m2x="urn:mpeg:mpeg21:2006:01-REL-M2X-NS"
			xmlns:rel-m3x="urn:mpeg:mpeg21:2006:01-REL-M3X-NS"
			xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
			xmlns:sccns="urn:uddi-org:schemaCentricC14N:2002-07-10" 
			xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
			xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
			xmlns:dmprpp="urn:dmp:idp:represent:PaymentProtocol:2008"
			elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
	<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"/>
	<xsd:import namespace="http://www.w3.org/2001/04/xmlenc#" schemaLocation="http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/xenc-schema.xsd"/>
	<xsd:import namespace="urn:mpeg:mpeg21:2003:01-REL-SX-NS" schemaLocation="http://www.dmpf.org/schemas/rel-sx.xsd"/>
	<xsd:import namespace="urn:mpeg:mpeg21:2003:01-REL-MX-NS" schemaLocation="http://www.dmpf.org/schemas/rel-mx.xsd"/>
	<xsd:import namespace="urn:mpeg:mpeg21:2005:01-REL-M1X-NS" schemaLocation="http://www.dmpf.org/schemas/rel-m1x.xsd"/>
	<xsd:import namespace="urn:mpeg:mpeg21:2006:01-REL-M2X-NS" schemaLocation="http://www.dmpf.org/schemas/rel-m2x.xsd"/>
	<xsd:import namespace="urn:mpeg:mpeg21:2006:01-REL-M3X-NS" schemaLocation="http://www.dmpf.org/schemas/rel-m3x.xsd"/>
	<xsd:import namespace="urn:dmp:idp:represent:PaymentProtocol:2008" schemaLocation="http://www.dmpf.org/schemas/dmprpp.xsd"/>
	<!-- Elements -->
	<xsd:element name="allConditions" type="rel-r:AllConditions" substitutionGroup="rel-r:condition"/>
	<xsd:element name="anXmlExpression" type="rel-r:AnXmlExpression" substitutionGroup="rel-r:anXmlPatternAbstract"/>
	<xsd:element name="anXmlPatternAbstract" type="rel-r:AnXmlPatternAbstract" substitutionGroup="rel-r:resource"/>
	<xsd:element name="condition" type="rel-r:Condition" substitutionGroup="rel-r:licensePart"/>
	<xsd:element name="conditionPatternAbstract" type="rel-r:ConditionPatternAbstract" substitutionGroup="rel-r:anXmlPatternAbstract"/>
	<xsd:element name="digitalResource" type="rel-r:DigitalResource" substitutionGroup="rel-r:resource"/>
	<xsd:element name="forAll" block="#all" substitutionGroup="rel-r:licensePart" final="#all">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="rel-r:LicensePart">
					<xsd:sequence>
						<xsd:element ref="rel-r:anXmlPatternAbstract" minOccurs="0" maxOccurs="unbounded" />
					</xsd:sequence>
					<xsd:attribute name="varName" type="rel-r:VariableName" />
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="grant" type="rel-r:Grant" substitutionGroup="rel-r:resource"/>
	<xsd:element name="grantGroup" type="rel-r:GrantGroup" substitutionGroup="rel-r:resource"/>
	<xsd:element name="keyHolder" type="rel-r:KeyHolder" substitutionGroup="rel-r:principal"/>
	<xsd:element name="issue" block="#all" substitutionGroup="rel-r:right" final="#all">
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="rel-r:Right" />
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="issuer" type="rel-r:Issuer"/>
	<xsd:element name="license" type="rel-r:License"/>
	<xsd:element name="licensePart" type="rel-r:LicensePart"/>
	<xsd:element name="obtain" type="rel-r:Obtain" substitutionGroup="rel-r:right"/>
	<xsd:element name="possessProperty" type="rel-r:PossessProperty" substitutionGroup="rel-r:right"/>
	<xsd:element name="propertyAbstract" type="rel-r:PropertyAbstract" substitutionGroup="rel-r:resource"/>
	<xsd:element name="principal" type="rel-r:Principal" substitutionGroup="rel-r:resource"/>
	<xsd:element name="principalPatternAbstract" type="rel-r:PrincipalPatternAbstract" substitutionGroup="rel-r:resourcePatternAbstract"/>
	<xsd:element name="propertyPossessor" type="rel-r:PropertyPossessor" substitutionGroup="rel-r:principalPatternAbstract"/>
	<xsd:element name="resource" type="rel-r:Resource" substitutionGroup="rel-r:licensePart"/>
	<xsd:element name="resourcePatternAbstract" type="rel-r:ResourcePatternAbstract" substitutionGroup="rel-r:anXmlPatternAbstract"/>
	<xsd:element name="right" type="rel-r:Right" substitutionGroup="rel-r:licensePart"/>
	<xsd:element name="serviceDescription" type="rel-r:ServiceDescription" substitutionGroup="rel-r:licensePart"/>
	<xsd:element name="serviceReference" type="rel-r:ServiceReference" substitutionGroup="rel-r:resource"/>
	<xsd:element name="trustedRootIssuers" type="rel-r:TrustedRootIssuers"/>
	<xsd:element name="trustRoot" type="rel-r:TrustRoot" substitutionGroup="rel-r:licensePart"/>
	<xsd:element name="validityInterval" type="rel-r:ValidityInterval" substitutionGroup="rel-r:condition"/>
	<!--Complex Types-->
	<xsd:complexType name="AllConditions">
		<xsd:complexContent>
			<xsd:extension base="rel-r:Condition">
				<xsd:sequence>
					<xsd:element ref="rel-r:condition" minOccurs="0" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="AnXmlExpression" mixed="true" sccns:embeddedLangAttribute="rel-r:lang">
		<xsd:complexContent mixed="true">
			<xsd:extension base="rel-r:AnXmlPatternAbstract">
				<xsd:attribute name="lang" type="xsd:anyURI" default="http://www.w3.org/TR/1999/REC-xpath-19991116"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="AnXmlPatternAbstract">
		<xsd:complexContent>
			<xsd:extension base="rel-r:Resource"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Condition">
		<xsd:complexContent>
			<xsd:extension base="rel-r:LicensePart"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="ConditionPatternAbstract">
		<xsd:complexContent>
			<xsd:extension base="rel-r:AnXmlPatternAbstract" />
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="DigitalResource">
		<xsd:complexContent>
			<xsd:extension base="rel-r:Resource">
				<xsd:choice minOccurs="0">
					<xsd:element name="secureIndirect" type="dsig:ReferenceType"/>
					<xsd:element name="nonSecureIndirect" type="rel-r:NonSecureReference"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Grant">
		<xsd:complexContent>
			<xsd:extension base="rel-r:Resource">
				<xsd:choice minOccurs="0">
					<xsd:sequence>
						<xsd:element ref="rel-r:forAll" minOccurs="0" maxOccurs="unbounded"/>
						<xsd:element ref="rel-r:principal" minOccurs="0"/>
						<xsd:element ref="rel-r:right"/>
						<xsd:element ref="rel-r:resource" minOccurs="0"/>
						<xsd:element ref="rel-r:condition" minOccurs="0"/>
					</xsd:sequence>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="GrantGroup">
		<xsd:complexContent>
			<xsd:extension base="rel-r:Resource">
				<xsd:choice minOccurs="0">
					<xsd:sequence>
						<xsd:element ref="rel-r:forAll" minOccurs="0" maxOccurs="unbounded" />
						<xsd:element ref="rel-r:principal" minOccurs="0" />
						<xsd:element ref="rel-r:condition" minOccurs="0" />
						<xsd:choice maxOccurs="unbounded">
							<xsd:element ref="rel-r:grant" />
							<xsd:element ref="rel-r:grantGroup" />
						</xsd:choice>
					</xsd:sequence>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Inventory">
		<xsd:sequence>
			<xsd:choice minOccurs="0" maxOccurs="unbounded">
				<xsd:element ref="rel-r:licensePart" />
			</xsd:choice>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="Issuer">
		<xsd:sequence>
			<xsd:choice minOccurs="0">
				<xsd:element ref="dsig:Signature"/>
				<xsd:element ref="rel-r:principal"/>
			</xsd:choice>
			<xsd:element name="details" type="rel-r:IssuerDetails" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="IssuerDetails">
		<xsd:sequence>
			<xsd:element name="timeOfIssue" type="xsd:dateTime" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="KeyHolder">
		<xsd:complexContent>
			<xsd:extension base="rel-r:Principal">
				<xsd:sequence minOccurs="0">
					<xsd:element name="info" type="dsig:KeyInfoType"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="License">
		<xsd:choice>
			<xsd:sequence>
				<xsd:element name="inventory" type="rel-r:Inventory" minOccurs="0"/>
 				<xsd:choice minOccurs="0" maxOccurs="unbounded">
					<xsd:element ref="rel-r:grant"/>
				</xsd:choice>
				<xsd:element ref="rel-r:issuer" minOccurs="0"/>
				<xsd:element name="otherInfo" minOccurs="0">
					<xsd:complexType>
						<xsd:sequence>
							<xsd:element name="LicenseSignature" type="dsig:SignatureType"/>
						</xsd:sequence>
					</xsd:complexType>
				</xsd:element>				
			</xsd:sequence>
			<xsd:element name="encryptedLicense" type="rel-r:EncryptedContent"/>
		</xsd:choice>
		<xsd:attribute name="licenseId" type="xsd:anyURI" use="optional"/>
		<xsd:anyAttribute namespace="##other" processContents="lax"/>
	</xsd:complexType>
	<xsd:complexType name="EncryptedContent">
		<xsd:complexContent>
			<xsd:extension base="xenc:EncryptedDataType"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="LicensePart">
		<xsd:attribute name="licensePartId" type="rel-r:LicensePartId" use="optional"/>
		<xsd:attribute name="licensePartIdRef" type="rel-r:LicensePartId" use="optional"/>
		<xsd:attribute name="varRef" type="rel-r:VariableName" use="optional"/>
	</xsd:complexType>
	<xsd:complexType name="NonSecureReference">
		<xsd:attribute name="URI" type="xsd:anyURI"/>
	</xsd:complexType>
	<xsd:complexType name="Obtain">
    	<xsd:complexContent>
			<xsd:extension base="rel-r:Right"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="PossessProperty">
		<xsd:complexContent>
			<xsd:extension base="rel-r:Right"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Principal">
		<xsd:complexContent>
			<xsd:extension base="rel-r:Resource"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="PrincipalPatternAbstract">
		<xsd:complexContent>
			<xsd:extension base="rel-r:ResourcePatternAbstract"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="PropertyAbstract">
		<xsd:complexContent>
			<xsd:extension base="rel-r:Resource"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="PropertyPossessor">
		<xsd:complexContent>
			<xsd:extension base="rel-r:PrincipalPatternAbstract">
				<xsd:sequence minOccurs="0">
					<xsd:element ref="rel-r:propertyAbstract"/>
					<xsd:element ref="rel-r:trustRoot" minOccurs="0"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Right">
		<xsd:complexContent>
			<xsd:extension base="rel-r:LicensePart"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Resource">
		<xsd:complexContent>
			<xsd:extension base="rel-r:LicensePart"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="ResourcePatternAbstract">
		<xsd:complexContent>
			<xsd:extension base="rel-r:AnXmlPatternAbstract"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="ServiceDescription">
		<xsd:complexContent>
			<xsd:extension base="rel-r:LicensePart"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="ServiceReference">
		<xsd:complexContent>
			<xsd:extension base="rel-r:Resource">
				<xsd:sequence minOccurs="0">
					<xsd:element ref="rel-r:serviceDescription"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="TrustRoot">
		<xsd:complexContent>
			<xsd:extension base="rel-r:LicensePart"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="TrustedRootIssuers">
		<xsd:complexContent>
			<xsd:extension base="rel-r:TrustRoot">
				<xsd:sequence minOccurs="0">
					<xsd:element ref="rel-r:principal" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="ValidityInterval">
		<xsd:complexContent>
			<xsd:extension base="rel-r:Condition">
				<xsd:sequence>
					<xsd:element name="notBefore" type="xsd:dateTime" minOccurs="0"/>
					<xsd:element name="notAfter" type="xsd:dateTime" minOccurs="0"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<!-- Simple Types-->
	<xsd:simpleType name="LicensePartId">
		<xsd:restriction base="xsd:NCName"/>
	</xsd:simpleType>
	<xsd:simpleType name="VariableName">
		<xsd:restriction base="xsd:NCName"/>
	</xsd:simpleType>
</xsd:schema>