<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="urn:mpeg:mpeg21:2003:01-REL-SX-NS" 
			xmlns:rel-sx="urn:mpeg:mpeg21:2003:01-REL-SX-NS"
			xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
			xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" 
			xmlns:rel-r="urn:mpeg:mpeg21:2003:01-REL-R-NS"  
			elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xsd:import namespace="urn:mpeg:mpeg21:2003:01-REL-R-NS" schemaLocation="http://www.dmpf.org/schemas/rel-r.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"/>
	<!-- Elements -->
	<xsd:element name="exerciseLimit" type="rel-sx:ExerciseLimit" substitutionGroup="rel-r:condition"/>
	<xsd:element name="propertyUri" type="rel-sx:PropertyUri" substitutionGroup="rel-r:propertyAbstract"/>
	<xsd:element name="territory" type="rel-sx:Territory" substitutionGroup="rel-r:condition"/>
	<xsd:element name="validityIntervalDurationPattern" type="rel-sx:ValidityIntervalDurationPattern" substitutionGroup="rel-r:conditionPatternAbstract"/>
	<xsd:element name="validityIntervalFloating" type="rel-sx:ValidityIntervalFloating" substitutionGroup="rel-r:condition"/>
	<xsd:element name="validityTimeMetered" type="rel-sx:ValidityTimeMetered" substitutionGroup="rel-r:condition"/>
	<xsd:element name="validityTimePeriodic" type="rel-sx:ValidityTimePeriodic" substitutionGroup="rel-r:condition"/>
	
	<xsd:element name="feeFlat" type="rel-sx:FeeFlat" substitutionGroup="rel-r:condition"/>
	<xsd:element name="feeMetered" type="rel-sx:FeeMetered" substitutionGroup="rel-r:condition"/>
	<xsd:element name="feePerInterval" type="rel-sx:FeePerInterval" substitutionGroup="rel-r:condition"/>
	<xsd:element name="feePerUse" type="rel-sx:FeePerUse" substitutionGroup="rel-r:condition"/>
	<xsd:element name="feePerUsePrePay" type="rel-sx:FeePerUsePrePay" substitutionGroup="rel-r:condition"/>
   <xsd:element name="rate" type="rel-sx:Rate" substitutionGroup="rel-r:licensePart"/>
	<!-- Additional elements -->	
	<!--Complex Types-->
	<xsd:complexType name="ExerciseLimit">
		<xsd:complexContent>
			<xsd:extension base="rel-r:Condition">
				<xsd:sequence>
					<xsd:element name="count" type="xsd:integer" minOccurs="0"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="PropertyUri">
		<xsd:complexContent>
			<xsd:extension base="rel-r:PropertyAbstract">
				<xsd:attribute name="definition" type="xsd:anyURI"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Territory">
		<xsd:complexContent>
			<xsd:extension base="rel-r:Condition">
				<xsd:choice minOccurs="0" maxOccurs="unbounded">
					<xsd:element name="location">
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element name="country" type="xsd:QName" minOccurs="0"/>
								<xsd:element name="region" type="xsd:QName" minOccurs="0"/>
							</xsd:sequence>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="domain">
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element name="uri" type="xsd:anyURI"/>
							</xsd:sequence>
						</xsd:complexType>
					</xsd:element>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="ValidityIntervalDurationPattern">
		<xsd:complexContent>
			<xsd:extension base="rel-r:ConditionPatternAbstract">
				<xsd:sequence minOccurs="0">
					<xsd:element name="duration" type="xsd:duration" />
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="ValidityIntervalFloating">
		<xsd:complexContent>
			<xsd:extension base="rel-r:Condition">
				<xsd:sequence>
					<xsd:element name="duration" type="xsd:duration" minOccurs="0"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="ValidityTimeMetered">
		<xsd:complexContent>
			<xsd:extension base="rel-r:Condition">
				<xsd:sequence>
					<xsd:element name="duration" type="xsd:duration" minOccurs="0"/>
					<xsd:element name="quantum" type="xsd:duration" minOccurs="0"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="ValidityTimePeriodic">
		<xsd:complexContent>
			<xsd:extension base="rel-r:Condition">
				<xsd:sequence minOccurs="0">
					<xsd:element name="start" type="xsd:dateTime"/>
					<xsd:element name="period" type="xsd:duration"/>
					<xsd:element name="phase" type="xsd:duration" minOccurs="0"/>
					<xsd:element name="duration" type="xsd:duration"/>
					<xsd:element name="periodCount" type="xsd:nonNegativeInteger" minOccurs="0"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<!-- Simple Types -->
	<xsd:simpleType name="ProfileCompliance">
		<xsd:list itemType="xsd:QName"/>
	</xsd:simpleType>
	<!-- Attributes -->
	<xsd:attribute name="profileCompliance" type="rel-sx:ProfileCompliance"/>
	
	<!-- Additional Complex Types -->
	<xsd:complexType name="AccountPayable">
		<xsd:sequence>
			<xsd:any namespace="##other" processContents="lax"/>
		</xsd:sequence>
   </xsd:complexType>
	<xsd:complexType name="FeeFlat">
		<xsd:complexContent>
			<xsd:extension base="rel-sx:StatefulCondition">
				<xsd:sequence minOccurs="0">
					<xsd:element ref="rel-sx:rate"/>
					<xsd:element name="to" type="rel-sx:AccountPayable" minOccurs="0"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FeeMetered">
		<xsd:complexContent>
			<xsd:extension base="rel-r:Condition">
				<xsd:sequence minOccurs="0">
					<xsd:element ref="rel-sx:rate"/>
					<xsd:element name="per" type="xsd:duration"/>
					<xsd:element name="by" type="xsd:duration"/>
					<xsd:element name="phase" type="xsd:duration"/>
					<xsd:element name="to" type="rel-sx:AccountPayable" minOccurs="0"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FeePerInterval">
		<xsd:complexContent>
			<xsd:extension base="rel-sx:StatefulCondition">
				<xsd:sequence minOccurs="0">
					<xsd:element ref="rel-sx:rate"/>
					<xsd:element name="per" type="xsd:duration"/>
					<xsd:element name="to" type="rel-sx:AccountPayable" minOccurs="0"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FeePerUse">
		<xsd:complexContent>
			<xsd:extension base="rel-r:Condition">
				<xsd:sequence minOccurs="0">
					<xsd:element ref="rel-sx:rate"/>
					<xsd:element name="to" type="rel-sx:AccountPayable" minOccurs="0"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="FeePerUsePrePay">
		<xsd:complexContent>
			<xsd:extension base="rel-sx:StatefulCondition">
				<xsd:sequence minOccurs="0">
					<xsd:element ref="rel-sx:rate"/>
					<xsd:element name="initialNumberOfUses" type="xsd:integer" minOccurs="0"/>
					<xsd:element name="to" type="rel-sx:AccountPayable" minOccurs="0"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Rate">
		<xsd:complexContent>
			<xsd:extension base="rel-r:LicensePart">
				<xsd:sequence minOccurs="0">
					<xsd:element name="amount" type="xsd:float"/>
					<xsd:element name="currency" type="xsd:QName" minOccurs="0"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="StatefulCondition">
		<xsd:complexContent>
			<xsd:extension base="rel-r:Condition">
				<xsd:sequence>
					<xsd:element ref="rel-r:serviceReference" minOccurs="0"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
</xsd:schema>