<?xml version="1.0" encoding="UTF-8"?>
<!-- 
	Mobile Broadcast - Service Guide Fragments
		version 	- 1.0
		date    	- 24 April 2007

    FILE INFORMATION

	OMA Permanent Document
	   File: OMA-SUP-XSD_bcast_sg_fragments-V1_0-20070424-D 
	   Type: Text - Schema Description

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

    NORMATIVE INFORMATION

	Information about this file can be found in the specification
	    OMA-TS-BCAST_ServiceGuide-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
	
	20060807 	File created
	20061213	OMA-BCAST-2006-0689R03 implemented
	20061222	OMA-BCAST-2006-1081R02 implemented
	20070117	OMA-BCAST-2007-0170-CR_Updates_to_Service_Guides_Fragments_XML_Schema implemented
						- made consistent with OMA-TS-BCAST_Service_Guide-V1_0_0-20070104-D plus changes in CR170
						- added Range Checks when needed.
	20070312	OMA-BCAST-2007-0170R01-CR_Updates_to_Service_Guides_Fragments_XML_Schema implemented
						- made consistent with OMA-TS-BCAST_Service_Guide-V1_0_0-20070104-D plus changes in CR170R01
	20070402 	in line with OMA-TS-BCAST_Service_Guide-V1_0_0-20070329-D
	20070403 	in line with OMA-TS-BCAST_Service_Guide-V1_0_0-20070329-D plus CRs BCAST-2007-0441, 429R01
	20070410 	CR BCAST-2007-0436 implemented to make consistent with OMA-TS-BCAST_Service_Guide-V1_0_0-20070405-D 
	20070417 	CR BCAST-2007-0361R01 implemented. 
	20070418 	Clerical change: default for attribute InteractivityData.@pushDelivery. 
	20070423 	CR BCAST-2007-0436R01 implemented to make consistent with OMA-TS-BCAST_Service_Guide-V1_0_0-20070421-D 
	20070424 	Version to enter Candidate approval. 
					CR BCAST-2007-0436R02 implemented to make consistent with OMA-TS-BCAST_Service_Guide-V1_0_0-20070421-D 
					and to fix a bug related to cardinalities inside <choice> (TermsOfUseType) 
-->
<xs:schema xmlns="urn:oma:xml:bcast:sg:fragments:1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:oma:xml:bcast:sg:fragments: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"/>
	<!-- 
		==================================================
		Service
		================================================== 
	-->
	<xs:element name="Service" type="ServiceType"/>
	<xs:complexType name="LanguageString">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute ref="xml:lang" use="optional"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="ParentalRatingType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="ratingSystem" type="xs:string" use="optional"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- Service fragment -->
	<xs:complexType name="ServiceType">
		<xs:sequence>
			<xs:element name="ProtectionKeyID" type="ProtectionKeyIDType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="ServiceType" type="ServiceTypeRangeType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="GlobalServiceID" type="xs:anyURI" minOccurs="0"/>
			<!-- Start of program guide information -->
			<xs:element name="Name" type="LanguageString" maxOccurs="unbounded"/>
			<xs:element name="Description" type="LanguageString" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="AudioLanguage" type="AudioOrTextLanguageType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="TextLanguage" type="AudioOrTextLanguageType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="ParentalRating" type="ParentalRatingType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="TargetUserProfile" type="TargetUserProfileType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Genre" type="GenreType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Extension" type="ExtensionType" minOccurs="0" maxOccurs="unbounded"/>
			<!-- End of program guide information -->
			<xs:element name="PreviewDataReference" type="PreviewDataReferenceType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="BroadcastArea" type="BroadcastAreaType" minOccurs="0"/>
			<xs:element name="TermsOfUse" type="TermsOfUseType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="PrivateExt" type="PrivateExtType" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="id" type="xs:anyURI" use="required"/>
		<xs:attribute name="version" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="validFrom" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="validTo" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="weight" type="xs:unsignedShort" use="optional" default="65535"/>
		<xs:attribute name="serviceContentProtection" type="xs:boolean" use="optional" default="false"/>
		<xs:attribute name="baseCID" type="xs:string" use="optional"/>
		<xs:attribute name="emergency" type="xs:boolean" use="optional" default="false"/>
	</xs:complexType>
	<!-- Genre -->
	<xs:simpleType name="GenreTypeType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="main"/>
			<xs:enumeration value="secondary"/>
			<xs:enumeration value="other"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="GenreType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="type" type="GenreTypeType" use="optional"/>
				<xs:attribute name="href" type="xs:anyURI" use="optional"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- 
		Type of ProtectionKeyID:
		0 ProtectionKeyID = Key Domain ID concatenated with SEK/PEK ID, where both values are as used in the Smartcard Profile [BCAST10-ServContProt].
		1-127 Reserved for future use
		128-255 Reserved for proprietary use
	-->
	<xs:simpleType name="ReservedProprietaryExtByteRangeType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="128"/>
			<xs:maxInclusive value="255"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ProtectionKeyIDRangeType">
		<xs:union memberTypes="ProtectionKeyIDLRType ReservedProprietaryExtByteRangeType"/>
	</xs:simpleType>
	<xs:simpleType name="ProtectionKeyIDLRType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="0"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="ProtectionKeyIDType">
		<xs:simpleContent>
			<xs:extension base="xs:base64Binary">
				<xs:attribute name="type" type="ProtectionKeyIDRangeType" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!--
		Allowed values are:
		0 - unspecified
		1 - Basic TV
		2 - Basic Radio
		3 - Rights Issuer Service
		4 - Cachecast
		5 - File download services
		6 - Software management services
		7 – Notification
		8 – Service Guide
		9 - Terminal Provisioning services
		10 - 127  reserved for future use
		128 -255 reserved for proprietary use
	-->
	<xs:simpleType name="ServiceTypeRangeType">
		<xs:union memberTypes="ServiceTypeLRType ReservedProprietaryExtByteRangeType"/>
	</xs:simpleType>
	<xs:simpleType name="ServiceTypeLRType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="9"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="TargetUserProfileType">
		<xs:attribute name="attributeName" type="xs:string" use="required"/>
		<xs:attribute name="attributeValue" type="xs:string" use="required"/>
	</xs:complexType>
	<xs:complexType name="ExtensionType">
		<xs:sequence>
			<xs:element name="Description" type="LanguageString" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="url" type="xs:anyURI" use="required"/>
	</xs:complexType>
	<!--
		Possible values: 
		0. unspecified
		1.	Service-by-Service switching
		2.	Service Guide Browsing
		3.	Service preview
		4.	Barker
		5. Alternative to blackout
		6-127. reserved for future use
		128-255. reserved for proprietary use
	-->
	<xs:simpleType name="PreviewDataUsageRangeType">
		<xs:union memberTypes="PreviewDataUsageLRType ReservedProprietaryExtByteRangeType"/>
	</xs:simpleType>
	<xs:simpleType name="PreviewDataUsageLRType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="5"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="PreviewDataReferenceType">
		<xs:attribute name="idRef" type="xs:anyURI" use="required"/>
		<xs:attribute name="usage" type="PreviewDataUsageRangeType" use="required"/>
	</xs:complexType>
	<xs:complexType name="BroadcastAreaType">
		<xs:sequence>
			<xs:element name="TargetArea" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="shape" minOccurs="0">
							<xs:annotation>
								<xs:documentation> See [OMA MLP]</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:sequence>
									<xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other" processContents="skip"/>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
						<xs:element name="cc" type="xs:unsignedShort" minOccurs="0">
							<xs:annotation>
								<xs:documentation> See [OMA MLP]</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="name_area" type="LanguageString" minOccurs="0" maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation> See [OMA MLP]. The instances of this element only differ in language.</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="ZipCode" type="xs:string" minOccurs="0"/>
						<xs:element name="CellTargetArea" type="CellTargetAreaType" minOccurs="0"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="hor_acc" type="xs:string" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation> See [OMA MLP]</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="polarity" type="xs:boolean" use="optional" default="true"/>
	</xs:complexType>
	<!-- 
		Type of CellTargetArea.
		Allowed values are:
		 0 - Unspecified
		 1 - 3GPP Cell Global Identifier as defined in 3GPP TS 23.003
		 2 - 3GPP Routing Area Identifier (RAI) as defined in 3GPP TS 23.003
		 3 - 3GPP Location Area Identifier (LAI) as defined in 3GPP TS 23.003
		 4 - 3GPP Service Area Identifier (SAI) as defined in 3GPP TS 23.003
		 5 - 3GPP MBMS Service Area Identity (MBMS SAI) as defined in 3GPP TS 23.003
		 6 - 3GPP2 Subnet ID as defined in [3GPP2 C.S0054-0]
		 7 - 3GPP2 SID as defined in [3GPP2 C.S0005-D]
		 8 - 3GPP2 SID+NID as defined in [3GPP2 C.S0005-D]
		 9 - 3GPP2 SID+NID+PZID as defined in [3GPP2 C.S0005-D]
		10 - 3GPP2 SID+PZID as defined in [3GPP2 C.S0005-D]
		11 - DVB-H Cell ID  (specified in section 6.2.4.1 of [BCAST10-DVBH-IPDC-Adaptation] )
		12 - 127  reserved for future use
		128 -255 reserved for proprietary use
	-->
	<xs:simpleType name="CellTargetAreaRangeType">
		<xs:union memberTypes="CellTargetAreaLRType ReservedProprietaryExtByteRangeType"/>
	</xs:simpleType>
	<xs:simpleType name="CellTargetAreaLRType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="11"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="CellTargetAreaType">
		<xs:sequence>
			<xs:element name="CellArea">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="PP2CellID" type="xs:positiveInteger" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
					<xs:attribute name="value" type="xs:unsignedShort" use="required"/>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="type" type="CellTargetAreaRangeType" use="required"/>
	</xs:complexType>
	<!-- Terms of Use -->
	<!-- 
		Allowed values for type of Terms of Use 
		0 - Display before purchasing or subscribing. 
		1 - Display before playout. 
		2 - 127  reserved for future use
		128 -255 reserved for proprietary use
	-->
	<xs:simpleType name="TermsOfUseRangeType">
		<xs:union memberTypes="TermsOfUseLRType ReservedProprietaryExtByteRangeType"/>
	</xs:simpleType>
	<xs:simpleType name="TermsOfUseLRType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="1"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="TermsOfUseType">
		<xs:sequence>
			<xs:element name="Country" type="xs:string" maxOccurs="unbounded"/>
			<xs:element name="Language" type="xs:string"/>
			<xs:choice>
				<xs:element name="PreviewDataIDRef" type="xs:anyURI" maxOccurs="unbounded"/>
				<xs:element name="TermsOfUseText" type="xs:string"/>
			</xs:choice>
		</xs:sequence>
		<xs:attribute name="type" type="TermsOfUseRangeType" use="required"/>
		<xs:attribute name="id" type="xs:anyURI" use="required"/>
		<xs:attribute name="userConsentRequired" type="xs:boolean" use="required"/>
	</xs:complexType>
	<!-- 
		==================================================
		Schedule
		================================================== 
	-->
	<xs:element name="Schedule" type="ScheduleType"/>
	<xs:complexType name="ScheduleType">
		<xs:sequence>
			<xs:element name="ServiceReference">
				<xs:complexType>
					<xs:attribute name="idRef" type="xs:anyURI" use="required"/>
					<xs:attribute name="audioLanguageIDRef" type="xs:anyURI" use="optional"/>
					<xs:attribute name="textLanguageIDRef" type="xs:anyURI" use="optional"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="InteractivityDataReference" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="AutoStart" type="xs:unsignedInt" minOccurs="0" maxOccurs="unbounded"/>
						<xs:element name="DistributionWindow" type="DistributionWindowType" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
					<xs:attribute name="idRef" type="xs:anyURI" use="required"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="ContentReference" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="AutoStart" type="xs:unsignedInt" minOccurs="0" maxOccurs="unbounded"/>
						<xs:element name="DistributionWindow" type="DistributionWindowType" minOccurs="0" maxOccurs="unbounded"/>
						<xs:element name="PresentationWindow" type="PresentationWindowType" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
					<xs:attribute name="idRef" type="xs:anyURI" use="required"/>
					<xs:attribute name="contentLocation" type="xs:anyURI" use="optional"/>
					<xs:attribute name="audioLanguageIDRef" type="xs:anyURI" use="optional"/>
					<xs:attribute name="textLanguageIDRef" type="xs:anyURI" use="optional"/>
					<xs:attribute name="repeatPlayback" type="xs:boolean" use="optional" default="false"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="PreviewDataReference" type="PreviewDataReferenceType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="TermsOfUse" type="TermsOfUseType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="PrivateExt" type="PrivateExtType" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="id" type="xs:anyURI" use="required"/>
		<xs:attribute name="version" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="defaultSchedule" type="xs:boolean" use="optional" fixed="true"/>
		<xs:attribute name="onDemand" type="xs:boolean" use="optional" default="false"/>
		<xs:attribute name="validFrom" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="validTo" type="xs:unsignedInt" use="optional"/>
	</xs:complexType>
	<xs:complexType name="DistributionWindowType">
		<xs:attribute name="startTime" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="endTime" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="duration" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="id" type="xs:unsignedInt" use="optional"/>
	</xs:complexType>
	<xs:complexType name="PresentationWindowType">
		<xs:attribute name="startTime" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="endTime" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="duration" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="id" type="xs:unsignedInt" use="optional"/>
	</xs:complexType>
	<!-- 
		==================================================
		Content
		================================================== 
	-->
	<xs:element name="Content" type="ContentType"/>
	<xs:complexType name="ContentType">
		<xs:sequence>
			<xs:element name="ServiceReference" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="idRef" type="xs:anyURI" use="required"/>
					<xs:attribute name="weight" type="xs:unsignedShort" use="optional" default="65535"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="ProtectionKeyID" type="ProtectionKeyIDType" minOccurs="0" maxOccurs="unbounded"/>
			<!-- Start of program guide information -->
			<xs:element name="Name" type="LanguageString" maxOccurs="unbounded"/>
			<xs:element name="Description" type="LanguageString" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="StartTime" type="xs:dateTime" minOccurs="0"/>
			<xs:element name="EndTime" type="xs:dateTime" minOccurs="0"/>
			<xs:element name="AudioLanguage" type="AudioOrTextLanguageType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="TextLanguage" type="AudioOrTextLanguageType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Length" type="xs:duration" minOccurs="0"/>
			<xs:element name="ParentalRating" type="ParentalRatingType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="TargetUserProfile" type="TargetUserProfileType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Genre" type="GenreType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="TermsOfUse" type="TermsOfUseType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Extension" type="ExtensionType" minOccurs="0" maxOccurs="unbounded"/>
			<!-- End of program guide information -->
			<xs:element name="PreviewDataReference" type="PreviewDataReferenceType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="BroadcastArea" type="BroadcastAreaType" minOccurs="0"/>
			<xs:element name="PrivateExt" type="PrivateExtType" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="id" type="xs:anyURI" use="required"/>
		<xs:attribute name="version" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="validFrom" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="validTo" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="globalContentID" type="xs:anyURI" use="optional"/>
		<xs:attribute name="emergency" type="xs:boolean" use="optional" default="false"/>
		<xs:attribute name="serviceContentProtection" type="xs:boolean" use="optional" default="false"/>
		<xs:attribute name="baseCID" type="xs:string" use="optional"/>
	</xs:complexType>
	<xs:complexType name="AudioOrTextLanguageType">
		<xs:simpleContent>
			<xs:extension base="LanguageString">
				<xs:attribute name="id" type="xs:anyURI" use="optional"/>
				<xs:attribute name="languageSDPTag" type="xs:string" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- 
		==================================================
		Access
		================================================== 
	-->
	<xs:element name="Access" type="AccessType">
		<xs:annotation>
			<xs:documentation>
			Access fragment describes how the terminal can access a service during the lifespan of the access fragment					</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="AccessType">
		<xs:sequence>
			<xs:element name="AccessType">
				<xs:complexType>
					<xs:choice>
						<xs:element name="BroadcastServiceDelivery" type="BroadcastServiceDeliveryType" minOccurs="1"/>
						<xs:element name="UnicastServiceDelivery" type="UnicastServiceDeliveryType" minOccurs="1" maxOccurs="unbounded"/>
					</xs:choice>
				</xs:complexType>
			</xs:element>
			<xs:element name="KeyManagementSystem" type="KeyManagementSystemType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="EncryptionType" type="EncryptionTypeType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:choice>
				<xs:element name="ServiceReference" type="IDRefType" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element name="ScheduleReference" minOccurs="0" maxOccurs="unbounded">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="DistributionWindowID" type="xs:unsignedInt" minOccurs="0" maxOccurs="unbounded"/>
						</xs:sequence>
						<xs:attribute name="idRef" type="xs:anyURI" use="required"/>
					</xs:complexType>
				</xs:element>
			</xs:choice>
			<xs:element name="TerminalCapabilitRequirement" type="TerminalCapabilitRequirementType" minOccurs="0"/>
			<xs:element name="BandwidthRequirement" type="xs:unsignedInt" minOccurs="0"/>
			<xs:element name="ServiceClass" type="xs:string" maxOccurs="unbounded"/>
			<xs:element name="PreviewDataReference" type="PreviewDataReferenceType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="NotificationReception" type="NotificationReceptionType" minOccurs="0"/>
			<xs:element name="PrivateExt" type="PrivateExtType" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="id" type="xs:anyURI" use="required"/>
		<xs:attribute name="version" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="validFrom" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="validTo" type="xs:unsignedInt" use="optional"/>
	</xs:complexType>
	<xs:complexType name="IDRefType">
		<xs:attribute name="idRef" type="xs:anyURI" use="required"/>
	</xs:complexType>
	<xs:complexType name="BroadcastServiceDeliveryType">
		<xs:sequence>
			<xs:element name="BDSType" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Type" type="BDSTypeRangeType" minOccurs="0"/>
						<xs:element name="Version" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="SessionDescription" type="SessionDescriptionType"/>
			<xs:element name="FileDescription" type="FileDescriptionType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="UnicastServiceDeliveryType">
		<xs:sequence>
			<xs:element name="AccessServerURL" type="xs:anyURI" maxOccurs="unbounded"/>
			<xs:element name="SessionDescription" type="SessionDescriptionType"/>
			<xs:element name="ServiceAccessNotificationURL" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="type" type="UnicastServiceDeliveryTypeType" use="required"/>
	</xs:complexType>
	<xs:complexType name="FileDescriptionType">
		<xs:sequence>
			<xs:element name="File" type="FileType" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="Content-Type" type="xs:string" use="optional"/>
		<xs:attribute name="Content-Encoding" type="xs:string" use="optional"/>
		<xs:attribute name="FEC-OTI-FEC-Encoding-ID" type="xs:unsignedByte" use="optional"/>
		<xs:attribute name="FEC-OTI-FEC-Instance-ID" type="xs:unsignedLong" use="optional"/>
		<xs:attribute name="FEC-OTI-Maximum-Source-Block-Length" type="xs:unsignedLong" use="optional"/>
		<xs:attribute name="FEC-OTI-Encoding-Symbol-Length" type="xs:unsignedLong" use="optional"/>
		<xs:attribute name="FEC-OTI-Max-Number-of-Encoding-Symbols" type="xs:unsignedLong" use="optional"/>
		<xs:attribute name="FEC-OTI-Scheme-Specific-Info" type="xs:base64Binary" use="optional"/>
	</xs:complexType>
	<xs:complexType name="FileType">
		<xs:attribute name="Content-Location" type="xs:anyURI" use="required"/>
		<xs:attribute name="TOI" type="xs:positiveInteger" use="required"/>
		<xs:attribute name="Content-Length" type="xs:unsignedLong" use="optional"/>
		<xs:attribute name="Transfer-Length" type="xs:unsignedLong" use="optional"/>
		<xs:attribute name="Content-Type" type="xs:string" use="optional"/>
		<xs:attribute name="Content-Encoding" type="xs:string" use="optional"/>
		<xs:attribute name="Content-MD5" type="xs:base64Binary" use="optional"/>
		<xs:attribute name="FEC-OTI-FEC-Encoding-ID" type="xs:unsignedByte" use="optional"/>
		<xs:attribute name="FEC-OTI-FEC-Instance-ID" type="xs:unsignedLong" use="optional"/>
		<xs:attribute name="FEC-OTI-Maximum-Source-Block-Length" type="xs:unsignedLong" use="optional"/>
		<xs:attribute name="FEC-OTI-Encoding-Symbol-Length" type="xs:unsignedLong" use="optional"/>
		<xs:attribute name="FEC-OTI-Max-Number-of-Encoding-Symbols" type="xs:unsignedLong" use="optional"/>
		<xs:attribute name="FEC-OTI-Scheme-Specific-Info" type="xs:base64Binary" use="optional"/>
	</xs:complexType>
	<!--
		Specifies transport mechanism that is used for this access.
		0 - HTTP
		1 - WAP 1.0
		2 - WAP 2.x
		3 - Generic RTSP to initialize RTP delivery
		4 - RTSP to initialize RTP delivery as per 3GPP-PSS (3GPP packet-switched streaming service)
		5 - RTSP to initialize RTP delivery as per 3GPP2-MSS (3GPP2 multimedia streaming services)
		6 - FLUTE over Unicast
		7-127 Reserved for future use
		128-255 Reserved for proprietary use
	-->
	<xs:simpleType name="UnicastServiceDeliveryTypeType">
		<xs:union memberTypes="UnicastServiceDeliveryLRType ReservedProprietaryExtByteRangeType"/>
	</xs:simpleType>
	<xs:simpleType name="UnicastServiceDeliveryLRType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="6"/>
		</xs:restriction>
	</xs:simpleType>
	<!--
		Type of underlying BDS, possible values:
		0. IPDC over DVB-H 
		1. 3GPP MBMS
		2. 3GPP2 BCMCS 
		3 -127. reserved for future use
		128 -255. reserved for proprietary use
	-->
	<xs:simpleType name="BDSTypeRangeType">
		<xs:union memberTypes="BDSTypeLRType ReservedProprietaryExtByteRangeType"/>
	</xs:simpleType>
	<xs:simpleType name="BDSTypeLRType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="2"/>
		</xs:restriction>
	</xs:simpleType>
	<!--
		Specifies which encryption methods the terminal is to be able to support in order to utilize this Access. Contains the same value as traffic_protection_protocol signalled in STKM.
		0 – IPsec
		1 – STRP
		2 – ISMACryp
		3 – DCF
		4..255 – Reserved for future use.
		If this element is not present, this Access is not encrypted.
	-->
	<xs:simpleType name="EncryptionTypeType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="3"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="SessionDescriptionType">
		<xs:sequence>
			<xs:choice>
				<xs:element name="SDP">
					<xs:complexType>
						<xs:simpleContent>
							<xs:extension base="xs:string">
								<xs:attribute ref="xml:space" fixed="preserve"/>
							</xs:extension>
						</xs:simpleContent>
					</xs:complexType>
				</xs:element>
				<xs:element name="SDPRef" type="SessionDescriptionReferenceType"/>
			</xs:choice>
			<xs:element name="USBDRef" type="SessionDescriptionReferenceType" minOccurs="0"/>
			<xs:element name="ADPRef" type="SessionDescriptionReferenceType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="SessionDescriptionReferenceType">
		<xs:attribute name="uri" type="xs:anyURI" use="optional"/>
		<xs:attribute name="idRef" type="xs:anyURI" use="optional"/>
	</xs:complexType>
	<!--
		Identifies the type of Key Management System(s)(KMS). Possible values:
		0. oma-bcast-drm-pki  
		Indicates OMA BCAST DRM profile (Public Key Infrastructure)
		1. oma-bcast-gba_u-mbms
		Indicates BCAST Smartcard profile using GBA_U (Symmetric Key Infrastructure)
		2. oma-bcast-gba_me-mbms
		Indicates BCAST Smartcard profile using GBA_ME 
		3. oma-bcast-prov-bcmcs 
		Indicates provisioned 3GPP2 BCMCS SKI
		4 -127 Reserved for future use
		128 – 255 Reserved for proprietary use
	-->
	<xs:simpleType name="kmsRangeType">
		<xs:union memberTypes="kmsLRType ReservedProprietaryExtByteRangeType"/>
	</xs:simpleType>
	<xs:simpleType name="kmsLRType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="3"/>
		</xs:restriction>
	</xs:simpleType>
	<!--
		Specifies the protection type offered by the KMS.
		Values:
		0. Content protection only
		(protection_after_reception in STKM = 0x00 [BCAST SPCP])
		1. Service protection only
		(protection_after_reception in STKM = 0x02 or 0x03 [BCAST SPCP])
		2. Both Content protection and Service Protection 
		(protection_after_reception in STKM = 0x01 [BCAST SPCP])
		3 – 127  Reserved for future use
		128 – 255 Reserved for proprietary use
	-->
	<xs:simpleType name="protectionRangeType">
		<xs:union memberTypes="protectionLRType ReservedProprietaryExtByteRangeType"/>
	</xs:simpleType>
	<xs:simpleType name="protectionLRType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="2"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="KeyManagementSystemType">
		<xs:sequence>
			<xs:element name="PermissionsIssuerURI">
				<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="ProtectionKeyID" minOccurs="0" maxOccurs="unbounded" type="ProtectionKeyIDType"/>
			<xs:element name="TerminalBindingKeyID" minOccurs="0">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:unsignedInt">
							<xs:attribute name="tbkPermissionsIssuerURI" type="xs:anyURI" use="optional"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="kmsType" type="kmsRangeType" use="required"/>
		<xs:attribute name="protectionType" type="protectionRangeType" use="required"/>
	</xs:complexType>
	<xs:complexType name="TerminalCapabilitRequirementType">
		<xs:sequence>
			<xs:element name="Video" type="VideoType" minOccurs="0"/>
			<xs:element name="Audio" type="AudioType" minOccurs="0"/>
			<xs:element name="DownloadFile" type="DownloadFileType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="VideoType">
		<xs:sequence>
			<xs:element name="Complexity">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Bitrate" type="BitrateType" minOccurs="0"/>
						<xs:element name="Resolution" minOccurs="0">
							<xs:complexType>
								<xs:attribute name="horizontal" type="xs:unsignedShort" use="required"/>
								<xs:attribute name="vertical" type="xs:unsignedShort" use="required"/>
								<xs:attribute name="temporal" type="xs:decimal" use="required"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="MinimumBufferSize" type="xs:unsignedInt" minOccurs="0"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="BitrateType">
		<xs:attribute name="average" type="xs:unsignedShort" use="optional"/>
		<xs:attribute name="maximum" type="xs:unsignedShort" use="optional"/>
	</xs:complexType>
	<xs:complexType name="AudioType">
		<xs:sequence>
			<xs:element name="Complexity">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Bitrate" type="BitrateType" minOccurs="0"/>
						<xs:element name="MinimumBufferSize" type="xs:unsignedInt" minOccurs="0"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DownloadFileType">
		<xs:sequence>
			<xs:element name="MIMEType" minOccurs="1" maxOccurs="unbounded">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attribute name="codec" type="xs:string" use="optional"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="NotificationReceptionType">
		<!-- 
			this construct implements the constraint: 
			"at least one of the elements <IPBroadcastDelivery>, <RequestURL>, or <PollURL> SHALL be present." 
		-->
		<xs:choice>
			<xs:sequence>
				<xs:element name="IPBroadcastDelivery">
					<xs:complexType>
						<xs:attribute name="port" type="xs:unsignedInt" use="required"/>
						<xs:attribute name="address" type="xs:string" use="optional"/>
					</xs:complexType>
				</xs:element>
				<xs:element name="RequestURL" type="xs:anyURI" minOccurs="0"/>
				<xs:element name="PollURL" type="xs:anyURI" minOccurs="0"/>
			</xs:sequence>
			<xs:sequence>
				<xs:element name="RequestURL" type="xs:anyURI"/>
				<xs:element name="PollURL" type="xs:anyURI" minOccurs="0"/>
			</xs:sequence>
			<xs:sequence>
				<xs:element name="PollURL" type="xs:anyURI"/>
			</xs:sequence>
		</xs:choice>
	</xs:complexType>
	<!-- 
		==================================================
		PurchaseItem
		================================================== 
	-->
	<xs:element name="PurchaseItem" type="PurchaseItemType">
		<xs:annotation>
			<xs:documentation>
				A purchase item groups one or multiple services/contents, or schedules associated with specific services or contents that an end-user can purchase or subscribe to as a whole
			</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="PurchaseItemType">
		<xs:sequence>
			<xs:choice>
				<xs:element name="ServiceReference" type="IDRefType" minOccurs="1" maxOccurs="unbounded"/>
				<xs:element name="ScheduleReference" type="ScheduleReferenceType" minOccurs="1" maxOccurs="unbounded"/>
				<xs:element name="ContentReference" type="IDRefType" minOccurs="1" maxOccurs="unbounded"/>
				<xs:element name="PurchaseItemReference" type="IDRefType" minOccurs="1" maxOccurs="unbounded"/>
			</xs:choice>
			<xs:element name="ProtectionKeyID" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:base64Binary">
							<xs:attribute name="type" type="ProtectionKeyIDRangeType" use="required"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<!-- Start of program guide information -->
			<xs:element name="Name" type="LanguageString" maxOccurs="unbounded"/>
			<xs:element name="Description" type="LanguageString" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="StartTime" type="xs:dateTime" minOccurs="0"/>
			<xs:element name="EndTime" type="xs:dateTime" minOccurs="0"/>
			<xs:element name="ParentalRating" type="ParentalRatingType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Extension" type="ExtensionType" minOccurs="0" maxOccurs="unbounded"/>
			<!-- End of program guide information -->
			<xs:element name="DependencyReference" type="IDRefType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="ExclusionReference" type="IDRefType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="PrivateExt" type="PrivateExtType" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="id" type="xs:anyURI" use="required"/>
		<xs:attribute name="version" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="validFrom" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="validTo" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="globalPurchaseItemID" type="xs:anyURI" use="required"/>
		<xs:attribute name="binaryPurchaseItemID" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="weight" type="xs:unsignedShort" use="optional" default="65535"/>
		<xs:attribute name="closed" type="xs:boolean" use="optional" default="false"/>
	</xs:complexType>
	<!-- 
		==================================================
		PurchaseData
		================================================== 
	-->
	<xs:element name="PurchaseData" type="PurchaseDataType">
		<xs:annotation>
			<xs:documentation>Purchase data fragment</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="PurchaseDataType">
		<xs:sequence>
			<!-- Start of program guide information -->
			<xs:element name="Description" type="LanguageString" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="PriceInfo" type="PriceInfoType" minOccurs="0"/>
			<xs:element name="PromotionInfo" type="PromotionInfoType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Extension" type="ExtensionType" minOccurs="0" maxOccurs="unbounded"/>
			<!-- End of program guide information -->
			<xs:element name="PurchaseItemReference" type="IDRefType"/>
			<xs:element name="PurchaseChannelReference" type="IDRefType" maxOccurs="unbounded"/>
			<xs:element name="PreviewDataReference" type="PreviewDataReferenceType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="TermsOfUse" type="TermsOfUseType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="PrivateExt" type="PrivateExtType" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="id" type="xs:anyURI" use="required"/>
		<xs:attribute name="version" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="validFrom" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="validTo" type="xs:unsignedInt" use="optional"/>
	</xs:complexType>
	<xs:complexType name="PriceInfoType">
		<xs:sequence>
			<xs:element name="MonetaryPrice" type="PriceType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="TotalNumberToken" type="TotalNumberTokenType" minOccurs="0"/>
			<xs:element name="SubscriptionPeriod" type="xs:duration" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="subscriptionType" type="SubscriptionTypeType" use="optional"/>
	</xs:complexType>
	<xs:complexType name="PriceType">
		<xs:annotation>
			<xs:documentation>Currency, using ISO 4217 international currency codes</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:decimal">
				<xs:attribute name="currency" type="xs:string" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!--
		The type of subscription offered. Possible values:
		0 – one-time subscription
		1 – open-ended subscription
		2-127 Reserved for future use
		128-255 Reserved for proprietary use 
	-->
	<xs:simpleType name="SubscriptionTypeType">
		<xs:union memberTypes="SubscriptionTypeLRType ReservedProprietaryExtByteRangeType"/>
	</xs:simpleType>
	<xs:simpleType name="SubscriptionTypeLRType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="1"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="TotalNumberTokenType">
		<xs:simpleContent>
			<xs:extension base="xs:unsignedShort">
				<xs:attribute name="tokenType" type="TokenTypeType" use="required"/>
				<xs:attribute name="consumptionAmount" type="xs:unsignedShort" use="optional"/>
				<xs:attribute name="consumptionUnit" type="ConsumptionUnitType" use="required"/>
				<xs:attribute name="maxReplay" type="xs:unsignedShort" use="optional"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!--
		Specifies the type of tokens. 
		0 – unspecified
		1 – tokens for the DRM Profile
		2 – time tokens for service purse of Smartcard Profile
		3 – time tokens for user purse of Smartcard Profile
		4 – play tokens for service purse of Smartcard Profile
		5 – play tokens for user purse of Smartcard Profile
		6-127 – reserved for future use
		128-255 – reserved for proprietary use
	-->
	<xs:simpleType name="TokenTypeType">
		<xs:union memberTypes="TokenTypeLRType ReservedProprietaryExtByteRangeType"/>
	</xs:simpleType>
	<xs:simpleType name="TokenTypeLRType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="5"/>
		</xs:restriction>
	</xs:simpleType>
	<!--
		Describes the type of consumption unit.
		0 – time in seconds, used for ‘tokenType’ = 2 or 3
		1 – time in minutes, used for ‘tokenType’ = 2 or 3
		2 – time in hours, used for ‘tokenType’ = 2 or 3
		3 – number of plays, used for ‘tokenType’ = 4 or 5
		4 -127 reserved for future use
		128-255 reserved for proprietary use
	-->
	<xs:simpleType name="ConsumptionUnitType">
		<xs:union memberTypes="ConsumptionUnitLRType ReservedProprietaryExtByteRangeType"/>
	</xs:simpleType>
	<xs:simpleType name="ConsumptionUnitLRType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="3"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="PromotionInfoType">
		<xs:sequence>
			<!-- Start of program guide information -->
			<xs:element name="Title" type="LanguageString" maxOccurs="unbounded"/>
			<xs:element name="TargetUserProfile" type="TargetUserProfileType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Description" type="LanguageString" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="PromotionExtension" type="PromotionExtensionURLType" minOccurs="0" maxOccurs="unbounded"/>
			<!-- End of program guide information -->
		</xs:sequence>
		<xs:attribute name="id" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="validFrom" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="validTo" type="xs:unsignedInt" use="optional"/>
	</xs:complexType>
	<xs:complexType name="PromotionExtensionURLType">
		<xs:sequence>
			<xs:element name="Description" type="LanguageString" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="url" type="xs:anyURI" use="required"/>
	</xs:complexType>
	<!-- 
		==================================================
		PurchaseChannel
		================================================== 
	-->
	<xs:element name="PurchaseChannel" type="PurchaseChannelType">
		<xs:annotation>
			<xs:documentation>
				The purchase channel fragment represents a system from which access and content rights can be 
				purchased by the terminal (and its end user)
			</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="PurchaseChannelType">
		<xs:sequence>
			<!-- Start of program guide information -->
			<xs:element name="Name" type="LanguageString" maxOccurs="unbounded"/>
			<xs:element name="Description" type="LanguageString" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="ContactInfo" type="xs:string" minOccurs="0"/>
			<xs:element name="PortalURL" minOccurs="0">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:anyURI">
							<xs:attribute name="supportedService" type="SupportedServiceType" use="optional" default="0"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="PurchaseURL" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Extension" type="ExtensionType" minOccurs="0" maxOccurs="unbounded"/>
			<!-- End of program guide information -->
			<xs:element name="PrivateExt" type="PrivateExtType" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="id" type="xs:anyURI" use="required"/>
		<xs:attribute name="version" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="validFrom" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="validTo" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="rightsIssuerURI" type="xs:anyURI" use="optional"/>
	</xs:complexType>
	<!--
		Specifies how the Terminal is expected to use PortalURL and PurchaseURL. 
		0: use the Service provisioning messages of [BCAST10-Services] to PurchaseURL for the DRM Profile and RightsIssuerURI for the Smartcard Profile to enable the service provisioning functionality. Further, the Terminal MAY contact the PortalURL via HTTP to acquire further information on PurchaseItems available on this PurchaseChannel. 
		1: The Terminal SHALL be able to access the PortalURL via HTTP to acquire further information on PurchaseItems available on this PurchaseChannel and to achieve service provisioning functionality. Further, the Terminal SHALL perform the service provisioning directly on the PortalURL and SHALL NOT send the Service provisioning messages of [BCAST10-Services] to PurchaseURL / RightsIssuerURI to enable the service provisioning functionality.
		2: The Terminal SHALL be able to access the PortalURL via HTTP to acquire further information on PurchaseItems available on this PurchaseChannel. Further, the Terminal MAY perform the service provisioning directly on the PortalURL or the send the Service provisioning messages of [BCAST10-Services] to PurchaseURL (DRM Profile) or RightsIssuerURI (Smartcard Profile) to enable the service provisioning functionality.
		3-255: Reserved for future use.
	-->
	<xs:simpleType name="SupportedServiceType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="2"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- 
		==================================================
		PreviewData
		================================================== 
	-->
	<xs:element name="PreviewData" type="PreviewDataType">
		<xs:annotation>
			<xs:documentation>
				Contains information used by the terminal to present the service or content outline to users
			</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="PreviewDataType">
		<xs:sequence>
			<xs:element name="SMIL" type="SMILType" minOccurs="0"/>
			<xs:element name="Video" type="VideoPType" minOccurs="0"/>
			<xs:element name="Audio" type="AudioPType" minOccurs="0"/>
			<xs:element name="Picture" type="PictureType" minOccurs="0"/>
			<xs:element name="Text" type="LanguageString" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="AccessReference" minOccurs="0">
				<xs:complexType>
					<xs:attribute name="idRef" type="xs:anyURI" use="required"/>
					<xs:attribute name="usage" type="AccessUsageType" use="required"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="PrivateExt" type="PrivateExtType" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="id" type="xs:anyURI" use="required"/>
		<xs:attribute name="version" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="validFrom" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="validTo" type="xs:unsignedInt" use="optional"/>
	</xs:complexType>
	<!--
		Usage of the ‘Access’ fragment identified by ‘AccessReference’ element.
		0. file distribution session
		1. stream distribution session
		2-127. reserved for future use
		128 -255. reserved for proprietary use
	-->
	<xs:simpleType name="AccessUsageType">
		<xs:union memberTypes="AccessUsageLRType ReservedProprietaryExtByteRangeType"/>
	</xs:simpleType>
	<xs:simpleType name="AccessUsageLRType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="1"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="SMILType">
		<xs:annotation>
			<xs:documentation>Embedded SMIL to define and synchronize the multimedia components (video, audio, picture, text) of the preview data.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other" processContents="lax"/>
		</xs:sequence>
		<xs:attribute name="type" type="SMILTypeType" use="optional"/>
	</xs:complexType>
	<!--
		The type of SMIL profile associated with a PreviewData fragment.
		0: 3GPP PSS SMIL Profile [3GPP TS 26.246]
		1: 3GPP2 MSS SMIL Profile [3GPP2 C.S0050]
		2..127: reserved for future use
		128..255: reserved for proprietary use
	-->
	<xs:simpleType name="SMILTypeType">
		<xs:union memberTypes="SMILTypeLRType ReservedProprietaryExtByteRangeType"/>
	</xs:simpleType>
	<xs:simpleType name="SMILTypeLRType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="1"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="MIMETypeType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="codec" type="xs:string" use="optional"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="VideoPType">
		<xs:sequence>
			<xs:element name="VideoURI" type="xs:anyURI"/>
			<xs:element name="MIMEType" type="MIMETypeType" minOccurs="0"/>
			<xs:element name="AlternativeText" type="LanguageString" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="AlternativePicture" type="PictureType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="AudioPType">
		<xs:sequence>
			<xs:element name="AudioURI" type="xs:anyURI"/>
			<xs:element name="MIMEType" type="MIMETypeType" minOccurs="0"/>
			<xs:element name="AlternativeText" type="LanguageString" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="AlternativePicture" type="PictureType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="PictureType">
		<xs:sequence>
			<xs:choice>
				<xs:element name="PictureURI" type="xs:anyURI" minOccurs="1"/>
				<xs:element name="PictureData" type="xs:base64Binary" minOccurs="1"/>
			</xs:choice>
			<xs:element name="MIMEType" type="xs:string" minOccurs="0"/>
			<xs:element name="AlternativeText" type="LanguageString" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<!-- 
		==================================================
		InteractivityData
		================================================== 
	-->
	<xs:element name="InteractivityData" type="InteractivityDataType">
		<xs:annotation>
			<xs:documentation>
				InteractivityData fragment contains information that is used by the terminal to 
				offer interactive services to the user
			</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="InteractivityDataType">
		<xs:sequence>
			<xs:element name="InteractivityType" type="LanguageString" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="ServiceReference" type="IDRefType"/>
			<xs:choice>
				<xs:element name="ContentReference" type="IDRefType" minOccurs="1" maxOccurs="unbounded"/>
				<xs:element name="ScheduleReference" type="ScheduleReferenceType" minOccurs="1" maxOccurs="unbounded"/>
				<xs:element name="InteractivityWindow" type="InteractivityWindowType" minOccurs="1" maxOccurs="unbounded"/>
			</xs:choice>
			<xs:element name="InteractiveDelivery" minOccurs="0">
				<xs:complexType>
					<xs:attribute name="interactivtyMediaURL" type="xs:anyURI" use="optional"/>
					<xs:attribute name="pushDelivery" type="xs:boolean" use="optional" default="false"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="Extension" type="ExtensionType" minOccurs="0"/>
			<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:element name="TermsofUse" type="TermsOfUseType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="PrivateExt" type="PrivateExtType" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="id" type="xs:anyURI" use="required"/>
		<xs:attribute name="version" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="validFrom" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="validTo" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="preListenIndicator" type="xs:boolean" use="required"/>
		<xs:attribute name="interactivityMediaDocumentPointer" type="xs:anyURI" use="required"/>
	</xs:complexType>
	<xs:complexType name="ScheduleReferenceType">
		<xs:sequence>
			<xs:element name="PresentationWindowIDRef" type="xs:unsignedInt" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="idRef" type="xs:anyURI" use="required"/>
	</xs:complexType>
	<xs:complexType name="InteractivityWindowType">
		<xs:attribute name="startTime" type="xs:unsignedInt" use="required"/>
		<xs:attribute name="endTime" type="xs:unsignedInt" use="required"/>
	</xs:complexType>
	<!--
		==================================================
		 type for proprietary extensions 
		==================================================
	-->
	<xs:complexType name="PrivateExtType">
		<xs:sequence>
			<xs:annotation>
				<xs:documentation>
					This container provides the place for proprietary and application-specific extensions. 
					Extensions SHALL use a different namespace.
				</xs:documentation>
			</xs:annotation>
			<xs:any namespace="##other" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
</xs:schema>
