<?xml version="1.0" encoding="UTF-8"?>
<!-- 
	Mobile Broadcast - Service Provisioning Order Queries
		version 	- 1.0
		date    	- 25 April 2007

    FILE INFORMATION

	OMA Permanent Document
	   File: OMA-SUP-XSD_bcast_pr_orderqueries-V1_0-20070425-D 
	   Type: Text - Schema Description

	Public Reachable Information
	   Path: http://www.openmobilealliance.org/tech/profiles
	   Name: bcast_pr_orderqueries-v1_0.xsd

    NORMATIVE INFORMATION

	Information about this file can be found in the specification
	    OMA-TS-BCAST_Services-V1_0
	available at http://www.openmobilealliance.org/

	Send comments to technical-comments@mail.openmobilealliance.org

    LEGAL DISCLAIMER

	Use of this document is subject to all of the terms and conditions
	of the Use Agreement located at
		http://www.openmobilealliance.org/UseAgreement.html

	You may use this document or any part of the document for internal
	or educational purposes only, provided you do not modify, edit or
	take out of context the information in this document in any manner.
	Information contained in this document may be used, at your sole
	risk, for any purposes.

	You may not use this document in any other manner without the prior
	written permission of the Open Mobile Alliance.  The Open Mobile
	Alliance authorizes you to copy this document, provided that you
	retain all copyright and other proprietary notices contained in the
	original materials on any copies of the materials and that you
	comply strictly with these terms.  This copyright permission does
	not constitute an endorsement of the products or services.  The
	Open Mobile Alliance assumes no responsibility for errors or
	omissions in this document.

	Each Open Mobile Alliance member has agreed to use reasonable
	endeavors to inform the Open Mobile Alliance in a timely manner of
	Essential IPR as it becomes aware that the Essential IPR is related
	to the prepared or published specification.  However, the members
	do not have an obligation to conduct IPR searches.  The declared
	Essential IPR is publicly available to members and non-members of
	the Open Mobile Alliance and may be found on the "OMA IPR
	Declarations" list at http://www.openmobilealliance.org/ipr.html.
	The Open Mobile Alliance has not conducted an independent IPR review
	of this document and the information contained herein, and makes no
	representations or warranties regarding third party IPR, including
	without limitation patents, copyrights or trade secret rights.  This
	document may contain inventions for which you must obtain licenses
	from third parties before making, using or selling the inventions.
	Defined terms above are set forth in the schedule to the Open Mobile
	Alliance Application Form.

	NO REPRESENTATIONS OR WARRANTIES (WHETHER EXPRESS OR IMPLIED) ARE
	MADE BY THE OPEN MOBILE ALLIANCE OR ANY OPEN MOBILE ALLIANCE MEMBER
	OR ITS AFFILIATES REGARDING ANY OF THE IPR'S REPRESENTED ON THE "OMA
	IPR DECLARATIONS" LIST, INCLUDING, BUT NOT LIMITED TO THE ACCURACY,
	COMPLETENESS, VALIDITY OR RELEVANCE OF THE INFORMATION OR WHETHER OR
	NOT SUCH RIGHTS ARE ESSENTIAL OR NON-ESSENTIAL.

	THE OPEN MOBILE ALLIANCE IS NOT LIABLE FOR AND HEREBY DISCLAIMS ANY
	DIRECT, INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL, CONSEQUENTIAL, OR
	EXEMPLARY DAMAGES ARISING OUT OF OR IN CONNECTION WITH THE USE OF
	DOCUMENTS AND THE INFORMATION CONTAINED IN THE DOCUMENTS.

	Copyright 2007 Open Mobile Alliance Ltd.  All Rights Reserved.
	Used with the permission of the Open Mobile Alliance Ltd. under the
	terms set forth above.
-->
<!-- 
	CHANGE HISTORY
	
	20061103 	File created
	20061114  Harmonized with CR 438R05; modified namespace name to urn:oma:xml:bcast:pr:orderqueries:1.0
	20070109	OMA-BCAST-2007-0051-CR_Updates_to_Orderqueries_XML_Schema implemented
					to make schema consistent with OMA-TS-BCAST_Services-V1_0-20061229-D
	20070202	OMA-BCAST-2007-0051R01-CR_Updates_to_Orderqueries_XML_Schema implemented (change of references to external schemas)
	20070308	OMA-BCAST-2007-0051R02-CR_Updates_to_Orderqueries_XML_Schema implemented (undoing change in R01)
	20070412 	CR BCAST-2007-0475 implemented to make consistent 
					with OMA-TS-BCAST_Services-V1_0-20070406-D plus CR BCAST-2007-0469R02
	20070418 	CR BCAST-2007-0475R01 implemented to make consistent 
					with OMA-TS-BCAST_Services-V1_0-20070417-D 
	20070424 	Made consistent with OMA-TS-BCAST_Services-V1_0-20070423-D 
	20070425	Version to enter Candidate approval. 
					Clerical: made naming consistent with OMNA rules

-->
<xs:schema xmlns:roap="urn:oma:bac:dldrm:roap-1.0" xmlns:sg="urn:oma:xml:bcast:sg:fragments:1.0" xmlns="urn:oma:xml:bcast:pr:orderqueries:1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:oma:xml:bcast:pr:orderqueries:1.0" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<!-- Importing xml default declarations (like xml:lang and xml:space) -->
	<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
	<!-- Importing referenced BCAST namespaces -->
	<xs:import namespace="urn:oma:xml:bcast:sg:fragments:1.0" schemaLocation="http://www.openmobilealliance.org/tech/profiles/bcast_sg_fragments-v1_0.xsd"/>
	<xs:import namespace="urn:oma:bac:dldrm:roap-1.0" schemaLocation="http://www.openmobilealliance.org/tech/profiles/drm_roap_xbs-v2_0.xsd"/>
	<!-- 
	==========================
	PricingInfoRequest
	==========================
	-->
	<xs:element name="PricingInfoRequest" type="PricingInfoRequestType"/>
	<xs:complexType name="PricingInfoRequestType">
		<xs:sequence>
			<xs:element name="UserID" type="UserIDType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="DeviceID" type="DeviceIDType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="PurchaseItem" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="PurchaseDataReference" type="IDRefType" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
					<xs:attribute name="globalIDRef" type="xs:anyURI" use="required"/>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="requestID" type="xs:unsignedInt" use="optional"/>
	</xs:complexType>
	<!-- 
	==========================
	PricingInfoResponse
	==========================
	-->
	<xs:element name="PricingInfoResponse" type="PricingInfoResponseType"/>
	<xs:complexType name="PricingInfoResponseType">
		<xs:sequence>
			<xs:element name="PurchaseItem" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="PurchaseDataReference" maxOccurs="unbounded">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="Price" type="ValidPriceType" maxOccurs="unbounded"/>
									<xs:element name="SubscriptionPeriod" type="xs:duration" minOccurs="0"/>
								</xs:sequence>
								<xs:attribute name="idRef" type="xs:anyURI" use="required"/>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
					<xs:attribute name="globalIDRef" type="xs:anyURI" use="required"/>
					<xs:attribute name="itemwiseStatusCode" type="GlobalStatusCodeType" use="optional"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="TermsOfUse" type="sg:TermsOfUseType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="PurchaseDataFragment" type="sg:PurchaseDataType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="requestID" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="globalStatusCode" type="GlobalStatusCodeType" use="required"/>
	</xs:complexType>
	<!-- 
	==========================
	ServiceRequest
	==========================
	-->
	<xs:element name="ServiceRequest" type="ServiceRequestType"/>
	<xs:complexType name="ServiceRequestType">
		<xs:sequence>
			<xs:element name="UserID" type="UserIDType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="DeviceID" type="DeviceIDType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="ServiceEncryptionProtocol" type="xs:string" minOccurs="0"/>
			<xs:element name="PurchaseItem" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="PurchaseDataReference" type="PurchaseDataReferenceType" minOccurs="0" maxOccurs="unbounded"/>
						<xs:element name="UserConsentAnswer" type="UserConsentAnswerType"/>
						<xs:element name="Service" type="ServiceType" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
					<xs:attribute name="globalIDRef" type="xs:anyURI" use="required"/>
				</xs:complexType>
			</xs:element>
			<xs:choice>
				<xs:element name="DrmProfileSpecificPart" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="BroadcastMode" type="xs:boolean" minOccurs="0"/>
						</xs:sequence>
						<xs:attribute name="rightsIssuerURI" type="xs:anyURI" use="optional"/>
					</xs:complexType>
				</xs:element>
				<xs:element name="SmartcardProfileSpecificPart" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="ProtectionKeyID" type="xs:unsignedLong" minOccurs="1" maxOccurs="unbounded"/>
						</xs:sequence>
						<xs:attribute name="timestampMin" type="xs:hexBinary" use="optional"/>
						<xs:attribute name="timestampMax" type="xs:hexBinary" use="optional"/>
					</xs:complexType>
				</xs:element>
			</xs:choice>
		</xs:sequence>
		<xs:attribute name="requestID" type="xs:unsignedInt" use="optional"/>
	</xs:complexType>
	<!-- 
	==========================
	ServiceResponse
	==========================
	-->
	<xs:element name="ServiceResponse" type="ServiceResponseType"/>
	<xs:complexType name="ServiceResponseType">
		<xs:sequence>
			<xs:element name="PurchaseItem" type="PurchaseItemWithStatusType" maxOccurs="unbounded"/>
			<xs:element name="DrmProfileSpecificPart" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Trigger" type="roap:RoapTrigger" minOccurs="0"/>
					</xs:sequence>
					<xs:attribute name="rightsValidityEndTime" type="xs:unsignedInt" use="optional"/>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="requestID" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="globalStatusCode" type="GlobalStatusCodeType" use="required"/>
		<xs:attribute name="adaptationMode" type="xs:boolean" use="optional"/>
	</xs:complexType>
	<!-- 
	==========================
	ServiceCompletion
	==========================
	-->
	<xs:element name="ServiceCompletion" type="ServiceCompletionType"/>
	<xs:complexType name="ServiceCompletionType">
		<xs:sequence>
			<xs:element name="LTKMessageID" type="xs:string" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="requestID" type="xs:unsignedInt" use="optional"/>
	</xs:complexType>
	<!-- 
	==========================
	LTK Renewal Request
	==========================
	-->
	<xs:element name="LTKRenewalRequest" type="LTKRenewalRequestType"/>
	<xs:complexType name="LTKRenewalRequestType">
		<xs:sequence>
			<xs:element name="UserID" type="UserIDType" maxOccurs="unbounded"/>
			<xs:element name="DeviceID" type="DeviceIDType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="PurchaseItem" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="UserConsentAnswer" type="UserConsentAnswerType" minOccurs="0"/>
					</xs:sequence>
					<xs:attribute name="globalIDRef" type="xs:anyURI" use="required"/>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="requestID" type="xs:unsignedInt" use="optional"/>
	</xs:complexType>
	<!-- 
	==========================
	LTK Renewal Response
	==========================
	-->
	<xs:element name="LTKRenewalResponse" type="LTKRenewalResponseType"/>
	<xs:complexType name="LTKRenewalResponseType">
		<xs:sequence>
			<xs:element name="PurchaseItem" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="PurchaseDataReference" type="PurchaseDataReferenceType"/>
					</xs:sequence>
					<xs:attribute name="globalIDRef" type="xs:anyURI" use="required"/>
					<xs:attribute name="ltkValidityEndTime" type="xs:unsignedInt" use="optional"/>
					<xs:attribute name="itemwiseStatusCode" type="GlobalStatusCodeType" use="optional"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="DrmProfileSpecificPart" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Trigger" type="roap:RoapTrigger" minOccurs="0"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="requestID" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="globalStatusCode" type="GlobalStatusCodeType" use="required"/>
	</xs:complexType>
	<!-- 
	==========================
	LTK Renewal Completion
	==========================
	-->
	<xs:element name="LTKRenewalCompletion" type="LTKRenewalCompletionType"/>
	<xs:complexType name="LTKRenewalCompletionType">
		<xs:sequence>
			<xs:element name="LongTermKeyID" type="xs:string" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="requestID" type="xs:unsignedInt" use="optional"/>
	</xs:complexType>
	<!-- 
	==========================
	Unsubscribe Request
	==========================
	-->
	<xs:element name="UnsubscribeRequest" type="UnsubscribeRequestType"/>
	<xs:complexType name="UnsubscribeRequestType">
		<xs:sequence>
			<xs:element name="UserID" type="UserIDType" maxOccurs="unbounded"/>
			<xs:element name="DeviceID" type="DeviceIDType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="PurchaseItem" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Service" type="ServiceType" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
					<xs:attribute name="globalIDRef" type="xs:anyURI" use="required"/>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="requestID" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="keepSubscription" type="xs:boolean" use="optional"/>
	</xs:complexType>
	<!-- 
	==========================
	Unsubscribe Response
	==========================
	-->
	<xs:element name="UnsubscribeResponse" type="UnsubscribeResponseType"/>
	<xs:complexType name="UnsubscribeResponseType">
		<xs:sequence>
			<xs:element name="PurchaseItem" type="PurchaseItemWithStatusType" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="requestID" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="globalStatusCode" type="GlobalStatusCodeType" use="required"/>
	</xs:complexType>
	<!-- 
	==========================
	Token Purchase Request
	==========================
	-->
	<xs:element name="TokenPurchaseRequest" type="TokenPurchaseRequestType"/>
	<xs:complexType name="TokenPurchaseRequestType">
		<xs:sequence>
			<xs:element name="UserID" type="UserIDType" maxOccurs="unbounded"/>
			<xs:element name="DeviceID" type="DeviceIDType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="PermissionsIssuerURI" minOccurs="0">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:anyURI">
							<xs:attribute name="type" type="xs:boolean" use="required"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="TokensRequested" type="TokensType" minOccurs="0"/>
			<xs:element name="SmartcardProfileSpecificPart" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="PurchaseItem">
							<xs:complexType>
								<xs:attribute name="globalIDRef" type="xs:anyURI" use="required"/>
								<xs:attribute name="purchaseDataIDRef" type="xs:anyURI" use="optional"/>
								<xs:attribute name="purchaseUnitNum" type="xs:unsignedShort" use="optional"/>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="requestID" type="xs:unsignedInt" use="optional"/>
	</xs:complexType>
	<!-- 
	==========================
	Token Purchase Response
	==========================
	-->
	<xs:element name="TokenPurchaseResponse" type="TokenPurchaseResponseType"/>
	<xs:complexType name="TokenPurchaseResponseType">
		<xs:choice>
			<xs:element name="DrmProfileSpecificPart" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Trigger" type="roap:RoapTrigger" minOccurs="0"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="SmartcardProfileSpecificPart" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="TokensGranted" type="TokensType" minOccurs="0"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:choice>
		<xs:attribute name="requestID" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="globalStatusCode" type="GlobalStatusCodeType" use="required"/>
	</xs:complexType>
<!--
	==============================================
	Token Purchase Completion 
	==============================================
	-->
	<xs:element name="TokenPurchaseCompletion" type="TokenPurchaseCompletionType"/>
	<xs:complexType name="TokenPurchaseCompletionType">
		<xs:attribute name="requestID" type="xs:unsignedInt" use="optional"/>
	</xs:complexType>
	<!--
	==============================================
	Account Inquiry Request
	==============================================
	-->
	<xs:element name="AccountRequest" type="AccountRequestType"/>
	<xs:complexType name="AccountRequestType">
		<xs:sequence>
			<xs:element name="UserID" type="UserIDType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="DeviceID" type="DeviceIDType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="AccountInquiry" type="AccountInquiryRangeType" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="requestID" type="xs:unsignedInt" use="optional"/>
	</xs:complexType>
	<!--
	==============================================
	Account Inquiry Response
	==============================================
	-->
	<xs:element name="AccountResponse" type="AccountResponseType"/>
	<xs:complexType name="AccountResponseType">
		<xs:sequence>
			<xs:element name="BillingInformation" type="LanguageString" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="PurchaseItem" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Description" type="LanguageString" minOccurs="0" maxOccurs="unbounded"/>
						<xs:element name="PurchaseItemFragment" type="sg:PurchaseItemType" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
					<xs:attribute name="globalIDRef" type="xs:anyURI" use="required"/>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="requestID" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="globalStatusCode" type="GlobalStatusCodeType" use="required"/>
	</xs:complexType>
	<!--
	==============================================
	Smartcard Profile Trigger
	==============================================
	-->
	<xs:element name="SmartcardProfileTrigger" type="SmartcardProfileTriggerType"/>
	<xs:complexType name="SmartcardProfileTriggerType">
		<xs:sequence>
			<xs:element name="PurchaseItem" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="ProtectionKeyID" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:simpleContent>
									<xs:extension base="xs:base64Binary">
										<xs:attribute name="type" type="ProtectionKeyIDTypeType" use="required"/>
									</xs:extension>
								</xs:simpleContent>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
					<xs:attribute name="globalIDRef" type="xs:anyURI" use="required"/>
					<xs:attribute name="purchaseDataIDRef" type="xs:anyURI" use="required"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="BackOffTiming" minOccurs="0">
				<xs:complexType>
					<xs:attribute name="offsetTime" type="xs:decimal" use="required"/>
					<xs:attribute name="randomTime" type="xs:decimal" use="required"/>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="version" type="xs:unsignedByte" use="required"/>
		<xs:attribute name="keyManagementType" type="xs:boolean" use="required"/>
		<xs:attribute name="purchaseURL" type="xs:anyURI" use="required"/>
	</xs:complexType>
	<!--
	==============================================
	Referenced types
	==============================================
	-->
	<!-- The user ID type, used in most request messages -->
	<xs:complexType name="UserIDType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="type" type="UserIDTypeType" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- 
	Type of User ID:
	0 – username defined in [RFC 2865] 
	1 – IMSI
	2 – URI
	3 – IMPI
	4 – MSISDN
	5 – MIN 
	6-127 reserved for future use
	128-255 reserved for proprietary use
	-->
	<xs:simpleType name="UserIDTypeType">
		<xs:union memberTypes="UserIDLRType ReservedProprietaryExtByteRangeType"/>
	</xs:simpleType>
	<xs:simpleType name="UserIDLRType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="5"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- The device ID type, used in most request messages -->
	<xs:complexType name="DeviceIDType">
		<xs:simpleContent>
			<xs:extension base="xs:unsignedInt">
				<xs:attribute name="type" type="DeviceIDTypeType" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- 
	Type of Device ID.
	0 – DVB Device ID
	1 – 3GPP Device ID (IMEI) [3GPP TS 23.003]
	2 – 3GPP2 Device ID (MEID)[3GPP2 C.S0072]
	3-127 reserved for future use
	128-255 reserved for proprietary use
	-->
	<xs:simpleType name="DeviceIDTypeType">
		<xs:union memberTypes="DeviceIDLRType ReservedProprietaryExtByteRangeType"/>
	</xs:simpleType>
	<xs:simpleType name="DeviceIDLRType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="2"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- IDRef -->
	<xs:complexType name="IDRefType">
		<xs:attribute name="idRef" type="xs:anyURI" use="required"/>
	</xs:complexType>
	<!-- The price type, expressing a price with optional currency indication -->
	<xs:complexType name="PriceType">
		<xs:simpleContent>
			<xs:extension base="xs:double">
				<xs:attribute name="currency" type="xs:string" use="optional"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- Price with validity time -->
	<xs:complexType name="ValidPriceType">
		<xs:complexContent>
			<xs:extension base="PriceType">
				<xs:attribute name="validTo" type="xs:unsignedInt" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- Purchase data reference -->
	<xs:complexType name="PurchaseDataReferenceType">
		<xs:sequence>
			<xs:element name="Price" type="PriceType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="idRef" type="xs:anyURI" use="required"/>
	</xs:complexType>
	<!-- User consent answer -->
	<xs:complexType name="UserConsentAnswerType">
		<xs:simpleContent>
			<xs:extension base="xs:boolean">
				<xs:attribute name="id" type="xs:anyURI" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- Service reference to subscribe/unsubscribe service-specific notifications -->
	<xs:complexType name="ServiceType">
		<xs:attribute name="globalIDRef" type="xs:anyURI" use="required"/>
		<xs:attribute name="notification" type="xs:boolean" use="required"/>
	</xs:complexType>
	<!-- PurchaseItem type -->
	<xs:complexType name="PurchaseItemWithStatusType">
		<xs:attribute name="globalIDRef" type="xs:anyURI" use="required"/>
		<xs:attribute name="itemwiseStatusCode" type="GlobalStatusCodeType" use="optional"/>
	</xs:complexType>
	<!-- Type to communicate amount of Tokens -->
	<xs:complexType name="TokensType">
		<xs:attribute name="type" type="TokensRequestedTypeType" use="required"/>
		<xs:attribute name="amount" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="chargingType" type="ChargingTypeType" use="required"/>
	</xs:complexType>
	<!-- String with xml:lang attribute -->
	<xs:complexType name="LanguageString">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute ref="xml:lang" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!--
	==============================================
	Enumeration types
	==============================================
	-->
	<!-- 
		Global status codes
			0 - 29    defined in OMA-TS-BCAST_Services-V1_0 
			30 -127  reserved for future use
			128 - 255 reserved for proprietary use
	-->
	<xs:simpleType name="GlobalStatusCodeType">
		<xs:union memberTypes="GlobalStatusCodeLRType ReservedProprietaryExtByteRangeType"/>
	</xs:simpleType>
	<xs:simpleType name="GlobalStatusCodeLRType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="29"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ReservedProprietaryExtByteRangeType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="128"/>
			<xs:maxInclusive value="255"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- 
		Type of Charging
			0 – undefined
			1 – prepaid
			2 – postpaid
			3-127 – reserved for future use
			128-255 – reserved for proprietary use
	-->
	<xs:simpleType name="ChargingTypeType">
		<xs:union memberTypes="ChargingLRType ReservedProprietaryExtByteRangeType"/>
	</xs:simpleType>
	<xs:simpleType name="ChargingLRType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="2"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- 
	Type of tokens requested
	0 - unspecified
	1 – tokens for the DRM Profile
	2 – time tokens, service purse
	3 – time tokens, user purse
	4 – play tokens, service purse
	5 – play tokens, user purse
	6-127 reserved for future use
	128-255 reserved for proprietary use
	-->
	<xs:simpleType name="TokensRequestedTypeType">
		<xs:union memberTypes="TokensRequestedLRType ReservedProprietaryExtByteRangeType"/>
	</xs:simpleType>
	<xs:simpleType name="TokensRequestedLRType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="5"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- 
		Specifies the type of AccountInquiry. Allowed values are:
			0 - undefined
			1 - PurchaseItem List
			2 - Service Guide Fragments
			3 - Billing Information
			4 -127  reserved for future use
			128-255 reserved for proprietary use
	-->
	<xs:simpleType name="AccountInquiryRangeType">
		<xs:union memberTypes="AccountInquiryLRType ReservedProprietaryExtByteRangeType"/>
	</xs:simpleType>
	<xs:simpleType name="AccountInquiryLRType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="3"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- 
		Specifies the type of ProtectionKey. Allowed values are:
			0 - ProtectionKeyID
			1 -127  reserved for future use
			128-255 reserved for proprietary use
	-->
	<xs:simpleType name="ProtectionKeyIDTypeType">
		<xs:union memberTypes="ProtectionKeyIDLRType ReservedProprietaryExtByteRangeType"/>
	</xs:simpleType>
	<xs:simpleType name="ProtectionKeyIDLRType">
		<xs:restriction base="xs:unsignedByte">
			<xs:enumeration value="0"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>
