<?xml version="1.0" encoding="UTF-8"?>
<!-- 
	ATSC Derivative for A/332
		date		- 4 Aug 2021
	
	Mobile Broadcast - Service Guide Fragments
		version 	- 1.0
		date    	- 12 Feb 2009

    FILE INFORMATION

	OMA Permanent Document
	   File: OMA-SUP-XSD_bcast_sg_fragments-V1_0-20090212-A
	   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 2008 Open Mobile Alliance Ltd.  All Rights Reserved.
	Used with the permission of the Open Mobile Alliance Ltd. under the
	terms set forth above.
-->

<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) -->
	<!-- ATSC: change to local schema file
	<xs:import namespace="http://www.w3.org/XML/1998/namespace"
		schemaLocation="http://www.w3.org/2001/xml.xsd"/>
	-->
	<xs:import namespace="http://www.w3.org/XML/1998/namespace"
		schemaLocation="W3C/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:unsignedByte" use="optional"/>
				<xs:attribute name="ratingValueName" 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"/>
			<!-- Start of program guide information -->
	<!-- ATSC: allow no name -->
			<xs:element name="Name" type="PhoneticLanguageStringType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Description" type="PhoneticLanguageStringType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="AudioLanguage" type="AudioOrTextLanguageType" minOccurs="0"
				maxOccurs="unbounded"/>
			<xs:element name="TextLanguage" type="AudioOrTextLanguageType" minOccurs="0"
				maxOccurs="unbounded"/>
			<!-- ATSC: allow ATSC content here - ContentAdvisoryRatings & OtherRatings -->
			<xs:any namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/SA/1.0/" processContents="strict" 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"/>
	<!-- ATSC: adding Popularity & Freshness from OMA 1.1 -->
			<xs:element name="Popularity" type="PopularityType" minOccurs="0"/>
			<xs:element name="Freshness" type="FreshnessType" 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="globalServiceID" type="xs:anyURI" use="optional"/>
		<xs:attribute name="weight" type="xs:unsignedShort" use="optional" default="65535"/>
		<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">
	<!-- ATSC: no content permitted
		<xs:simpleContent>
			<xs:extension base="xs:string">
	-->
				<xs:attribute ref="xml:lang" use="optional"/>
				<xs:attribute name="type" type="GenreTypeType" use="optional"/>
	<!-- ATSC: href is required 
				<xs:attribute name="href" type="xs:anyURI" use="optional"/>
	-->
				<xs:attribute name="href" type="hrefType"/>
	<!-- ATSC: no content permitted
			</xs:extension>
		</xs:simpleContent>
	-->
	</xs:complexType>
	<!-- ATSC: restricted href type -->
	<xs:simpleType name="hrefType">
		<xs:restriction base="xs:string">
	<!-- ATSC: TODO - regex - "http://www.atsc.org/XMLSchemas/mh/2009/1.0/genre-cs/:" termID from A/153:4 32-173 -->
		</xs:restriction>
	</xs:simpleType>
	<!-- 
		Type of ProtectionKeyID:
		0 - 5-byte long concatenation of Key Domain ID and Key group part of the SEK/PEK ID, as defined 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>
	<!-- Variant of ProtectionKeyID specifically for PPV -->
	<xs:complexType name="ProtectionKeyIDMinMaxType">
		<xs:simpleContent>
			<xs:extension base="xs:base64Binary">
				<xs:attribute name="type" type="ProtectionKeyIDRangeType" use="required"/>
				<xs:attribute name="min" type="xs:nonNegativeInteger" use="optional"/>
				<xs:attribute name="max" type="xs:nonNegativeInteger" use="optional"/>
			</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 - Auxiliary Data
		11 - 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="10"/>
		</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:choice>
						<xs:element name="shape">
							<xs:annotation>
								<xs:documentation> See [OMA MLP]</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:sequence>
	<!-- ATSC change processContents to "strict
									<xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"
										processContents="skip"/>
	-->
									<xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"
										processContents="strict"/>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
						<xs:element name="cc" type="xs:unsignedShort">
							<xs:annotation>
								<xs:documentation> See [OMA MLP]</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="mcc" type="MCCType"/>
						<xs:element name="name_area" type="LanguageString" 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"/>
						<xs:element name="CellTargetArea" type="CellTargetAreaType"/>
					</xs:choice>
				</xs:complexType>
			</xs:element>
			<xs:element name="lev_conf" type="LevConfType" minOccurs="0">
				<xs:annotation>
					<xs:documentation> See [OMA MLP]</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	<!-- ATSC: forbid polarity
		<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 X.S0022-A]
		 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" maxOccurs="unbounded">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="PP2CellID" type="xs:positiveInteger" minOccurs="0"
							maxOccurs="unbounded"/>
					</xs:sequence>
					<xs:attribute name="value" type="xs:string" 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" minOccurs="0" maxOccurs="unbounded" type="MCCType"/>
			<xs:element name="Language" type="xs:string"/>
	<!-- ATSC: forbid PreviewDataIDRef
			<xs:choice>
				<xs:element name="PreviewDataIDRef" type="xs:anyURI"/>
	-->
			<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>
	<!-- ATSC: added PopularityType and FreshnessType from OMA 1.1 -->
	<!-- Popularity -->
	<xs:complexType name="PopularityType">
		<xs:attribute name="rating" type="xs:decimal" use="optional"/>
		<xs:attribute name="noOfViews" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="noOfDiscussions" type="xs:unsignedInt" use="optional"/>
		<xs:attribute name="samplingDate" type="xs:dateTime" use="optional"/>
	</xs:complexType>
	<!-- Freshness -->
	<xs:complexType name="FreshnessType">
		<xs:attribute name="releaseDate" type="xs:dateTime" use="optional"/>
		<xs:attribute name="broadcastDate" type="xs:dateTime" use="optional"/>
	</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:complexType>
			</xs:element>
	<!-- ATSC: InteractivityDataReference, AutoStart, & DistributionWindow forbidden
			<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="repeatPlayback" type="xs:boolean" use="optional"
						default="false"/>
				</xs:complexType>
			</xs:element>
	<!-- ATSC: PreviewDataReference forbidden
			<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"/>
	<!-- ATSC: defaulSchedule and onDemand are forbidden
		<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="ProtectionKeyIDMinMaxType" minOccurs="0"
				maxOccurs="unbounded"/>
			<!-- Start of program guide information -->
	<!-- ATSC: allow no Name and extend it with phonetic extensions -->
			<xs:element name="Name" type="PhoneticLanguageStringType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Description" type="PhoneticLanguageStringType" minOccurs="0" maxOccurs="unbounded"/>
	<!-- ATSC: forbid StartTimeand EndTime
			<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"/>
	<!-- ATSC: allow ATSC content here - ContentAdvisoryRatings & OtherRatings -->
			<xs:any namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/SA/1.0/" processContents="strict" 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="TermsOfUse" type="TermsOfUseType" minOccurs="0" maxOccurs="unbounded"/>
	<!-- ATSC: allow ATSC content here - Popularity & Freshness, however cannot have two of the same namespace wildcards in a sequence
			<xs:any namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/SA/1.0/" processContents="strict" 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="baseCID" type="xs:string" use="optional"/>
	</xs:complexType>
	<!-- ATSC: extended LanguageStringType used for Name and Description -->
	<xs:complexType name="PhoneticLanguageStringType">
		<xs:sequence>
			<xs:element name="SpeechInfoURI" type="SpeechInfoType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="SpeechInfo" type="SpeechInfoType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="text" type="xs:string" use="required"/>
		<xs:attribute ref="xml:lang" use="optional"/>
	</xs:complexType>
	<xs:complexType name="SpeechInfoType">
		<xs:simpleContent>
			<xs:extension base="xs:anyURI">
				<xs:attribute name="content-type" type="xs:string" default="application/ssml+xml"/>
				<xs:attribute name="content-enc" type="xs:string"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="AudioOrTextLanguageType">
		<xs:simpleContent>
			<xs:extension base="LanguageString">
	<!-- ATSC: change from required to optional -->
				<xs:attribute name="languageSDPTag" type="xs:string"/>
			</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="TerminalCapabilityRequirement"
				type="TerminalCapabilityRequirementType" minOccurs="0"/>
			<xs:element name="BandwidthRequirement" type="xs:unsignedInt" minOccurs="0"/>
			<xs:element name="ServiceClass" type="xs:string"/>
			<xs:element name="ReferredSGInfo" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="BSMSelector" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="idRef" type="xs:anyURI" use="required"/>
							</xs:complexType>
						</xs:element>
						<xs:element name="Service" type="xs:anyURI" minOccurs="0"
							maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<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" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="SessionDescription" type="SessionDescriptionType" minOccurs="0"/>
		</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 � SRTP
		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:attribute name="encoding" type="EncodingType" use="optional"/>
							</xs:extension>
						</xs:simpleContent>
					</xs:complexType>
				</xs:element>
				<xs:element name="SDPRef" type="SessionDescriptionReferenceType"/>
				<xs:element name="USBDRef" type="SessionDescriptionReferenceType" minOccurs="0"/>
			</xs:choice>
			<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" type="xs:anyURI"/>
			<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="secureChannelRequired" type="xs:boolean" use="optional"/>
		<xs:attribute name="protectionType" type="protectionRangeType" use="required"/>
	</xs:complexType>
	<xs:complexType name="TerminalCapabilityRequirementType">
		<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="MIMEType" minOccurs="0">
				<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:element name="Complexity" minOccurs="0">
				<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="MIMEType" minOccurs="0">
				<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:element name="Complexity" minOccurs="0">
				<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>, <PollURL>, or <PollPeriod> 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="PollURL" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element name="PollPeriod" type="xs:decimal" minOccurs="0"/>
			</xs:sequence>
			<xs:sequence>
				<xs:element name="PollURL" type="xs:anyURI" maxOccurs="unbounded"/>
				<xs:element name="PollPeriod" type="xs:decimal" minOccurs="0"/>
			</xs:sequence>
			<xs:sequence>
				<xs:element name="PollPeriod" type="xs:decimal"/>
			</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 -->
	<!-- ATSC: allow no Name -->
			<xs:element name="Name" type="LanguageString" minOccurs="0" 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>
			<xs:element name="ProtectionKeyID" type="ProtectionKeyIDMinMaxType" minOccurs="0"
				maxOccurs="unbounded"/>
			<!-- 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="OfferDetails" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="CreditPackageType">
							<xs:complexType>
								<xs:simpleContent>
									<xs:extension base="CreditPackageTypeRangeType">
										<xs:attribute name="extraTokensPurchaseable"
											type="xs:boolean" use="optional"/>
									</xs:extension>
								</xs:simpleContent>
							</xs:complexType>
						</xs:element>
						<xs:choice minOccurs="0">
							<xs:element name="TotalNumberTokenCredits">
								<xs:complexType>
									<xs:simpleContent>
										<xs:extension base="xs:unsignedShort">
											<xs:attribute name="creditType"
												type="CreditTypeRangeType" use="required"/>
											<xs:attribute name="consumptionAmount"
												type="xs:unsignedShort" use="optional"/>
											<xs:attribute name="consumptionUnit"
												type="ConsumptionUnitRangeType" use="required"/>
											<xs:attribute name="maxReplay" type="xs:unsignedShort"
												use="optional"/>
										</xs:extension>
									</xs:simpleContent>
								</xs:complexType>
							</xs:element>
							<xs:element name="TotalNumberCountCredits">
								<xs:complexType>
									<xs:simpleContent>
										<xs:extension base="xs:unsignedShort">
											<xs:attribute name="consumptionAmount"
												type="xs:unsignedShort" use="required"/>
											<xs:attribute name="consumptionUnit"
												type="ConsumptionUnitRangeType" use="required"/>
										</xs:extension>
									</xs:simpleContent>
								</xs:complexType>
							</xs:element>
						</xs:choice>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<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="SubscriptionPeriod" type="xs:duration" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="subscriptionType" type="SubscriptionTypeType" use="required"/>
	</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 - free trial subscription
		3 - token or count-based
		4-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="3"/>
		</xs:restriction>
	</xs:simpleType>
	<!--
		The type of credit package. Possible values:
		0 - unspecified
		1 - ServiceTokenPPTLive 
		2 - ServiceTokenPPTPlayback
		3 - UserTokenPPTLive
		4 - UserTokenPPT Playback
		5 - UserTokenPPVLive
		6 - UserTokenPPPPlayback
		7 - fixed number of recorded content playbacks
		8 - fixed time duration for live content consumption � credit carryover disallowed
		9 - fixed time duration for live content consumption � credit carryover allowed
		10 - fixed time duration for recorded content consumption
		11 - unlimited duration for recorded content consumption
		12-127 Reserved for future use
		128-255 Reserved for proprietary use 
	-->
	<xs:simpleType name="CreditPackageTypeLRType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="11"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="CreditPackageTypeRangeType">
		<xs:union memberTypes="CreditPackageTypeLRType ReservedProprietaryExtByteRangeType"/>
	</xs:simpleType>
	<!--
		The type of token-based credit. Possible values:
		0 - unspecified
		1 - tokens for the DRM Profile
		2 - service tokens for the Smartcard Profile added to live_ppt_purse  
		3 - service tokens for the Smartcard Profile added to playback_ppt_purse 
		4 - user tokens for the Smartcard Profile 
		5-127 Reserved for future use
		128-255 Reserved for proprietary use 
	-->
	<xs:simpleType name="CreditTypeLRType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="4"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="CreditTypeRangeType">
		<xs:union memberTypes="CreditTypeLRType ReservedProprietaryExtByteRangeType"/>
	</xs:simpleType>
	<!--
		The type of consumption unit. Possible values:
		0 � time in seconds
		1 � time in minutes
		2 � time in hours
		3 � number of plays
		4-127 Reserved for future use
		128-255 Reserved for proprietary use 
	-->
	<xs:simpleType name="ConsumptionUnitLRType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="3"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ConsumptionUnitRangeType">
		<xs:union memberTypes="ConsumptionUnitLRType ReservedProprietaryExtByteRangeType"/>
	</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>
			<xs:element name="PortalURL" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:anyURI">
							<xs:attribute name="supportedService" type="SupportedServiceType"
								use="optional" default="0"/>
							<xs:attribute name="kmsType" type="kmsRangeType" use="optional"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="PurchaseURL" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:anyURI">
							<xs:attribute name="kmsType" type="kmsRangeType" use="required"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<!-- Start of program guide information -->
	<!-- ATSC: allow no Name and extend Name and Description types -->
			<xs:element name="Name" type="PhoneticLanguageStringType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Description" type="PhoneticLanguageStringType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="ContactInfo" type="xs:string" minOccurs="0"/>
			<xs:element name="Extension" type="ExtensionType" minOccurs="0" maxOccurs="unbounded"/>
			<!-- End of program guide information -->
			<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="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:simpleType name="EncodingType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="base64"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="EncodedLanguageString">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute ref="xml:lang" use="optional"/>
				<xs:attribute name="encoding" type="EncodingType" use="optional"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<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="EncodedLanguageString" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="AccessReference" minOccurs="0">
				<xs:complexType>
					<xs:attribute name="idRef" type="xs:anyURI" 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>
	<!-- ATSC: change processContext to "strict"
			<xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other" processContents="lax"/>
	-->
			<xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other" processContents="strict"/>
		</xs:sequence>
		<xs:attribute name="type" type="SMILTypeType" use="optional"/>
		<xs:attribute name="encoding" type="EncodingType" 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:element name="ContentReference" type="IDRefType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="ScheduleReference" type="ScheduleReferenceType" minOccurs="0"
				maxOccurs="unbounded"/>
			<xs:element name="InteractivityWindow" type="InteractivityWindowType" minOccurs="0"
				maxOccurs="unbounded"/>
			<xs:element name="InteractiveDelivery" minOccurs="0">
				<xs:complexType>
					<xs:attribute name="interactivityMediaURL" 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>
	<!-- ATSC: change processContents to "strict"
			<xs:any namespace="##other" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
	-->
			<xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<!-- type for Mobile Country Code (3 digits string) -->
	<xs:simpleType name="MCCType">
		<xs:restriction base="xs:string">
			<xs:pattern value="[0-9]{3}"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- type for lev_conf -->
	<xs:simpleType name="LevConfType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="100"/>
		</xs:restriction>
	</xs:simpleType>

</xs:schema>
