<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.cablelabs.com/namespaces/metadata/xsd/signaling/2" 
	xmlns:core="http://www.cablelabs.com/namespaces/metadata/xsd/core/2" 
	targetNamespace="http://www.cablelabs.com/namespaces/metadata/xsd/signaling/2" 
	elementFormDefault="qualified" attributeFormDefault="unqualified" version="1">
	<xsd:import namespace="http://www.cablelabs.com/namespaces/metadata/xsd/core/2" schemaLocation="MD-SP-CORE-EC0089.xsd"/>
	<xsd:complexType name="SignalGroupAssetType">
		<xsd:annotation>
			<xsd:documentation>SignalGroupAssetType is an extension of the CableLabs 3 AssetType.
				Implementers which do not deal with CableLabs Assets may safely ignore this
				type.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="core:AssetType">
				<xsd:sequence>
					<xsd:element name="SignalPoint" type="SignalPointType" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>One or more SignalPoint elements that exist in an
								asset.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SignalRegion" type="SignalRegionType" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>One or more SignalRegion elements that exist in an
								asset.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Ext" type="core:ExtType" minOccurs="0"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<!--                              -->
	<!-- Element definitions -->
	<!--                              -->
	<xsd:element name="SignalGroup" type="SignalGroupType">
		<xsd:annotation>
			<xsd:documentation>Container for a collection of signals. Signal Group can contain one
				or more Signal Points and/or Signal Regions</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="AcquiredSignal" type="AcquisitionPointInfoType">
		<xsd:annotation>
			<xsd:documentation>Container for passing a signal from an acquisition
				point</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<!--                                                 -->
	<!--                        -->
	<!-- Complex types -->
	<!--                        -->
	<!-- Binary Signal Type - binary data related to signals in live streams -->
	<!--                        -->
	<xsd:complexType name="BinarySignalType">
		<xsd:simpleContent>
			<xsd:extension base="xsd:base64Binary">
				<xsd:attribute name="signalType" use="required">
					<xsd:annotation>
						<xsd:documentation>Specifies the type of signal contained in this element.</xsd:documentation>
					</xsd:annotation>
					<xsd:simpleType>
						<xsd:restriction base="xsd:string">
							<xsd:pattern value="SCTE35|EISS|binary|private:.+"/>
						</xsd:restriction>
					</xsd:simpleType>
				</xsd:attribute>
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>
	<!--                        -->
	<!-- Signaled Point Info Type - data related to signals in live streams -->
	<!--                        -->
	<xsd:complexType name="SignaledPointInfoType">
		<xsd:annotation>
			<xsd:documentation>Specify information about a signaled point in a stream. The
				information may specfy information about an anticipated signal or be populated after
				the signal arrives.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="SignalValidityTimeRange" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Specify the time range the signal will be considered valid.
						For example, an SCTE 35 cue message may only be considered valid during a
						defined time range.</xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:complexContent>
						<xsd:extension base="SignalValidityTimeRangeType"/>
					</xsd:complexContent>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="SCTE35PointDescriptor" type="SCTE35PointDescriptorType" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>For SCTE 35 cue messages with additional descriptive data the
						following can be used for matching incoming signals and/or populated with
						authoritative descriptive data received. For example, a match may be done on
						SCTE 35 Segmentaiton Descriptor information, on "providerAvailId" in the
						AvailDesciptorInfo on the SpliceInsert or various other
						means.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="StreamTimes" type="StreamTimesType" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Authoritative StreamTimes contains one or more time values
						that are generated and interpreted by the underlying subsystem. While
						implementation specific, this data is intended to be passed as is through
						intervening systems unaltered.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="AcquisitionPointInfo" type="AcquisitionPointInfoType" minOccurs="0" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>One or more AcquisitionPointInfo items can be passed in the
						structure. One use of this structure is in the case where signals for the
						same point are acquired from multiple acquisiiton points. Typically only one
						of the signals will be applied while multiple signals are actually received
						and communicated between subsystems. This structure allows a system to pass
						the data for all acquisition points. A diagnostic system is one consumer of
						such a fully populated structure.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Ext" type="core:ExtType" minOccurs="0"/>
		</xsd:sequence>
		<xsd:attribute name="acquisitionSignalID" type="AcquisitionSignalIDType">
			<xsd:annotation>
				<xsd:documentation>The authoritative ID of the signal. This ID may be carried
					forward from the acquisition sytem to other system element in the delivery
					platform.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:anyAttribute namespace="##any" processContents="lax">
			<xsd:annotation>
				<xsd:documentation>In addition to the attributes defined, a signaled point may include additional, custom attributes as needed by the application.</xsd:documentation>
			</xsd:annotation>
		</xsd:anyAttribute>
	</xsd:complexType>
	<!--                        -->
	<!-- Acquisiton Point Info Type - informaiton about a specific acquisiton point -->
	<!--                        -->
	<xsd:complexType name="AcquisitionPointInfoType">
		<xsd:annotation>
			<xsd:documentation>Acquisiton Point Info Type - information about a specific acquisiton
				point</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:annotation>
				<xsd:documentation>Information for each acquisition point</xsd:documentation>
			</xsd:annotation>
			<xsd:element name="UTCPoint" type="UTCPointDescriptorType">
				<xsd:annotation>
					<xsd:documentation>UTC Zulu combined date and time encoding of the wall clock for the signal point (e.g., the splice time as referenced by the SCTE 35 splice_time, i.e., cue time). This UTC time value typically should not match the acquisitionTime value.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:choice minOccurs="0">
				<xsd:element name="SCTE35PointDescriptor" type="SCTE35PointDescriptorType">
					<xsd:annotation>
						<xsd:documentation>For SCTE 35 cue messages with additional descriptive data the following can be used for matching incoming signals and/or populated with descriptive data received. For example, a match may be done on "providerAvailId" in the AvailDesciptorInfo on the SpliceInsert.</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:element name="BinaryData" type="BinarySignalType">
					<xsd:annotation>
						<xsd:documentation>Typed HEX Binary Data to support passing typed unparsed binary data </xsd:documentation>
					</xsd:annotation>
				</xsd:element>
			</xsd:choice>
			<xsd:element name="StreamTimes" type="StreamTimesType" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>StreamTimes contains one or more time values that are
						generated and interpreted by the underlying subsystem. While implementation
						specific, this data is intended to be passed as is through intervening
						systems unaltered.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Ext" type="core:ExtType" minOccurs="0"/>
		</xsd:sequence>
		<xsd:attribute name="acquisitionPointIdentity" type="core:NonEmptyStringType" use="required">
			<xsd:annotation>
				<xsd:documentation>A unique identity of the acquisition point. (ex.
					MUX5)</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="acquisitionSignalID" type="AcquisitionSignalIDType" use="required">
			<xsd:annotation>
				<xsd:documentation>A globally unique ID for the point
					referenced.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="acquisitionTime" type="xsd:dateTime">
			<xsd:annotation>
				<xsd:documentation>UTC Zulu combined date and time encoding of the wall clock when
					the signal was captured (e.g., the SCTE 35 splice_info_section() acquisition
					time). For SCTE 35, this time value is not the splice time as referenced by a
					cue time or time_signal() but rather the date and time of when the signal was
					received/encountered by the acquisition point. </xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="signalPointID" type="core:URIIdType">
			<xsd:annotation>
				<xsd:documentation>Identifier for this entity. Use core:AssetRefType when
					referencing a signalPointID. NOTE: not to be confused with the
					acquisitionSignalID generated by an acquisiton device if this signal is
					instantiated based on receipt of some instream signaling.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:anyAttribute namespace="##any" processContents="lax">
			<xsd:annotation>
				<xsd:documentation>In addition to the attributes defined, acquisition point info may
					include additional, custom attributes as needed by the
					application.</xsd:documentation>
			</xsd:annotation>
		</xsd:anyAttribute>
	</xsd:complexType>
	<!--                            -->
	<!--  SignalGroupType -->
	<!--                            -->
	<xsd:complexType name="SignalGroupType">
		<xsd:annotation>
			<xsd:documentation>Specify a group of signal points and/or regions.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="SignalPoint" type="SignalPointType" minOccurs="0" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>One or more SignalPoint elements that exist in an
						asset.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="SignalRegion" type="SignalRegionType" minOccurs="0" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>One or more SignalRegion elements that exist in an
						asset.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Ext" type="core:ExtType" minOccurs="0"/>
		</xsd:sequence>
		<xsd:anyAttribute namespace="##any" processContents="lax">
			<xsd:annotation>
				<xsd:documentation>A signal group may include additional, custom attributes as
					needed by the application.</xsd:documentation>
			</xsd:annotation>
		</xsd:anyAttribute>
	</xsd:complexType>
	<!--                              -->
	<!-- Signal Region Type -->
	<!--                              -->
	<xsd:complexType name="SignalRegionType">
		<xsd:annotation>
			<xsd:documentation>Type definition for a region of interest. The region can be defined
				by reference or by fully describing each point that bounds the region. The End Point
				is optional since not all End Points are signaled (ex. SCTE 35 out point signals
				only)</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="AlternateId" type="core:URIIdType" minOccurs="0" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>Any number of alternate identifiers that may be used to
						identify this region. For example, may be referenced by a shared POGroup
						with PORegion</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:choice>
				<xsd:sequence>
					<xsd:element name="StartPoint" type="SignalPointType">
						<xsd:annotation>
							<xsd:documentation>In line definition for a start
								point.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="EndPoint" type="SignalPointType" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>In line definition for an end point.
							</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
				<xsd:sequence>
					<xsd:element name="StartPointRef" type="core:AssetRefType">
						<xsd:annotation>
							<xsd:documentation>A pointer to the signal point identified by
								signalPointId. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="EndPointRef" type="core:AssetRefType" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>Optional pointer to the signal point identified by
								signalPointId.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:choice>
			<xsd:element name="Ext" type="core:ExtType" minOccurs="0"/>
		</xsd:sequence>
		<xsd:attribute name="signalRegionID" type="core:URIIdType">
			<xsd:annotation>
				<xsd:documentation>Identifier for this entity. Use core:AssetRefType when
					referencing a signalRegionID.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="duration" type="xsd:duration">
			<xsd:annotation>
				<xsd:documentation>Defines the effective duration of a signal region. Duration
					should only be used for regions that are signaled (ex. a SCTE 35 cue message for
					an out point that does not have a authoriative in point) that do not have a
					matching end signal. There is no known use case for using the duration attribute
					on an end point.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:anyAttribute namespace="##any" processContents="lax">
			<xsd:annotation>
				<xsd:documentation>A signal region may include additional, custom attributes as
					needed by the application.</xsd:documentation>
			</xsd:annotation>
		</xsd:anyAttribute>
		<!-- 110923 - Duration moved from signal start point -->
	</xsd:complexType>
	<!--                           -->
	<!-- Signal Point Type -->
	<!--                           -->
	<xsd:complexType name="SignalPointType">
		<xsd:annotation>
			<xsd:documentation>Based type for signals</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="AlternateId" type="core:URIIdType" minOccurs="0" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>Any number of alternate identifiers that may be used to
						identify this region. For example, may be referenced by a shared POGroup
						with POPoint</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="NPTPointDescriptor" type="NPTPointDescriptorType" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Soruce of value may be: 1) Passed as part of a metadata
						package (ex. pitched VOD asset) 2) If signaled in the stream this is
						populated upon receipt of an authoritative signal 3) For an end point may be
						derived based on the start point plus a duration supplied from an external
						source.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="SignaledPointInfo" type="SignaledPointInfoType" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Acquisition point information. If present the SignalPoint is
						instantiated based on receipt of a signal in the stream (ex. SCTE
						35)</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Ext" type="core:ExtType" minOccurs="0"/>
		</xsd:sequence>
		<xsd:attribute name="signalPointID" type="core:URIIdType">
			<xsd:annotation>
				<xsd:documentation>Identifier for this entity. Use core:AssetRefType when
					referencing a signalPointID. NOTE: not to be confused with the
					acquisitionSignalID generated by an acquisiton device if this signal is
					instantiated based on receipt of some instream signaling.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:anyAttribute namespace="##any" processContents="lax">
			<xsd:annotation>
				<xsd:documentation>In addition to the attributes defined, a signal may include
					additional, custom attributes as needed by the application.</xsd:documentation>
			</xsd:annotation>
		</xsd:anyAttribute>
		<!-- 110923 - Duration was moved to the signal region -->
	</xsd:complexType>
	<!--                          -->
	<!-- SCTE 35 Splice Descriptor Type Definitions -->
	<!--                       -->
	<!-- AvailDescriptor -->
	<!--                       -->
	<xsd:complexType name="AvailDescriptorType">
		<xsd:annotation>
			<xsd:documentation>Type definition for an SCTE 35 avail descriptor. The avail descriptor
				contains an authorization identifier to be sent for an avail.</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="providerAvailId" type="xsd:unsignedInt" use="required"/>
		<xsd:anyAttribute namespace="##any" processContents="lax">
			<xsd:annotation>
				<xsd:documentation>In addition to the attributes defined, an avail descriptor may
					include additional, custom attributes as needed by the
					application.</xsd:documentation>
			</xsd:annotation>
		</xsd:anyAttribute>
	</xsd:complexType>
	<!--                       -->
	<!-- AvailDescriptor -->
	<!--                       -->
	<xsd:complexType name="DTMFDescriptorType">
		<xsd:annotation>
			<xsd:documentation>Type definition for an SCTE 35 DTMF descriptor. The DTMF descriptor
				allows a receiving device to generate a legacy analog
				DTMFsequence.</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="preRoll" type="xsd:unsignedByte" use="optional"/>
		<xsd:attribute name="dtmfCount" type="xsd:unsignedByte" use="optional"/>
		<xsd:attribute name="dtmfChars" type="xsd:token"/>
		<xsd:anyAttribute namespace="##any" processContents="lax">
			<xsd:annotation>
				<xsd:documentation>In addition to the attributes defined, a DTMF descriptor may
					include additional, custom attributes as needed by the
					application.</xsd:documentation>
			</xsd:annotation>
		</xsd:anyAttribute>
	</xsd:complexType>
	<!--                    -->
	<!-- UniqueDescriptorType -->
	<!--                        -->
	<xsd:complexType name="UniqueDescriptorType" mixed="false">
		<xsd:annotation>
			<xsd:documentation>SCTE 35 supports a specific list of descriptor types but recognizes
				other descriptors may be sent. The Unique descriptor type allows an implementaiton
				to handle such descriptors in an implementation specific manner.</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="descriptorTag" type="xsd:unsignedByte" use="required">
			<xsd:annotation>
				<xsd:documentation>The 8-bit field that identifies each
					descriptor.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="descriptorData">
			<xsd:annotation>
				<xsd:documentation>The hexbinary coded bytes comprising the descriptor. The data may
					be no longer than 253 bytes.</xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:restriction base="xsd:hexBinary">
					<xsd:maxLength value="253"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:anyAttribute namespace="##any" processContents="lax">
			<xsd:annotation>
				<xsd:documentation>In addition to the attributes defined, a unique descriptor may
					include additional, custom attributes as needed by the
					application.</xsd:documentation>
			</xsd:annotation>
		</xsd:anyAttribute>
	</xsd:complexType>
	<!-- SegmentDescriptor -->
	<!--                    -->
	<xsd:complexType name="SegmentationDescriptorType">
		<xsd:annotation>
			<xsd:documentation>SCTE 35 Segmentation Descriptor Type consistent with SCTE 35
				2007.</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="segmentEventId" type="xsd:unsignedInt" use="optional">
			<xsd:annotation>
				<xsd:documentation>Unique segmentation identifier.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="segmentationEventCancelIndicator" type="xsd:boolean">
			<xsd:annotation>
				<xsd:documentation>Boolean value indicating if the event is canceled. Set to TRUE if
					canceled. If FALSE or omitted the descriptor is valid.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="upidType" type="xsd:unsignedByte" use="optional">
			<xsd:annotation>
				<xsd:documentation>A value from table 8-6 of SCTE35.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="upid" type="xsd:hexBinary">
			<xsd:annotation>
				<xsd:documentation>A upid coded per table 8-6 in SCTE35</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="segmentTypeId" type="xsd:unsignedByte" use="optional">
			<xsd:annotation>
				<xsd:documentation>A value from table 8-7 of SCTE35.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="segmentNum" type="xsd:unsignedByte" use="optional">
			<xsd:annotation>
				<xsd:documentation>Segment number.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="segmentsExpected" type="xsd:unsignedByte" use="optional">
			<xsd:annotation>
				<xsd:documentation>Segments expected.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="duration" type="xsd:duration" use="optional"/>
		<xsd:anyAttribute namespace="##any" processContents="lax">
			<xsd:annotation>
				<xsd:documentation>In addition to the attributes defined, a segmentation descriptor
					may include additional, custom attributes as needed by the
					application.</xsd:documentation>
			</xsd:annotation>
		</xsd:anyAttribute>
	</xsd:complexType>
	<!--                       -->
	<!-- SpliceInsertType -->
	<!--                       -->
	<xsd:complexType name="SpliceInsertType">
		<xsd:annotation>
			<xsd:documentation>Type definition for an SCTE 35 splice insert message. Splice insert
				messages are sent to signal the location of a splice point.</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute name="spliceEventId" type="xsd:unsignedInt" use="optional">
			<xsd:annotation>
				<xsd:documentation>A 32-bit unique splice event identifier</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="spliceEventCancelIndicator" type="xsd:boolean">
			<xsd:annotation>
				<xsd:documentation>Boolean value indicating if the event is canceled. Set to TRUE if
					canceled. If FALSE or omitted the descriptor is valid.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="outOfNetworkIndicator" type="xsd:boolean" use="optional">
			<xsd:annotation>
				<xsd:documentation>Boolean indication of exiting or returning to the network (main
					essence) stream. A value of TRUE indicates exiting the network. A value of FALSE
					or if omitted indicates a return to network.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="uniqueProgramId" type="xsd:unsignedShort" use="optional">
			<xsd:annotation>
				<xsd:documentation>Unique identifier for the program.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="availNum" type="xsd:unsignedByte" use="optional">
			<xsd:annotation>
				<xsd:documentation>Avail number.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="availsExpected" type="xsd:unsignedByte" use="optional">
			<xsd:annotation>
				<xsd:documentation>Avails expected.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="duration" type="xsd:duration" use="optional"/>
		<xsd:anyAttribute namespace="##any" processContents="lax">
			<xsd:annotation>
				<xsd:documentation>In addition to the attributes defined, a splice insert may
					include additional, custom attributes as needed by the
					application.</xsd:documentation>
			</xsd:annotation>
		</xsd:anyAttribute>
	</xsd:complexType>
	<!--                                      -->
	<!-- SCTE35 Point Descriptor -->
	<!--                                      -->
	<xsd:complexType name="SCTE35PointDescriptorType">
		<xsd:annotation>
			<xsd:documentation>Type definition for an SCTE 35 splice info section.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="SpliceInsert" type="SpliceInsertType" minOccurs="0"/>
			<xsd:element name="AvailDescriptorInfo" type="AvailDescriptorType" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="DTMFDescriptorInfo" type="DTMFDescriptorType" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="SegmentationDescriptorInfo" type="SegmentationDescriptorType" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element name="UniqueDescriptorInfo" type="UniqueDescriptorType" minOccurs="0" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>Generic descriptor conveyence mechanism for any descriptor except the AvailDescriptorInfo, the DTMFDescriptorInfo, and the SegmentationDescriptorInfo.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Ext" type="core:ExtType" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attribute name="spliceCommandType" type="xsd:unsignedInt" use="required">
			<xsd:annotation>
				<xsd:documentation>Splice command type from table 7-2 of SCTE35 which indicates the
					structure carrying the detailed information contained
					herein.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:anyAttribute namespace="##any" processContents="lax">
			<xsd:annotation>
				<xsd:documentation>In addition to the attributes defined, an SCTE 35 Point
					Descriptor may include additional, custom attributes as needed by the
					application.</xsd:documentation>
			</xsd:annotation>
		</xsd:anyAttribute>
	</xsd:complexType>
	<!--                               -->
	<!-- SCTE35 Point Type -->
	<!--                               -->
	<xsd:simpleType name="SCTE35PointType">
		<xsd:annotation>
			<xsd:documentation>SCTE35 point descriptor in SCTE35 clock tick
				format:</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="core:NonEmptyStringType">
			<xsd:pattern value="[0-9]*"/>
		</xsd:restriction>
	</xsd:simpleType>
	<!---->
	<!--Acquisition Signal ID Type - format of a signal identifier sourced from the delivery network-->
	<!---->
	<xsd:simpleType name="AcquisitionSignalIDType">
		<xsd:annotation>
			<xsd:documentation>The identity of signal. Should be Universally Unique Identifier as
				defined by RFC 4122</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="core:NonEmptyStringType"/>
	</xsd:simpleType>
	<!--                                        -->
	<!-- NPT Point Descriptor Type -->
	<!--                                         -->
	<xsd:complexType name="NPTPointDescriptorType">
		<xsd:annotation>
			<xsd:documentation>The NPT for a point that specifies a point of interest or the start
				or end point of a region. NPT always has an nptPoint but may also include a date
				constraint on the NPT. The date is useful when defining NPT offsets into what was
				previously a live stream</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence minOccurs="0">
			<xsd:element name="Ext" type="core:ExtType" minOccurs="0"/>
		</xsd:sequence>
		<xsd:attribute name="nptDate" type="NPTDateType">
			<xsd:annotation>
				<xsd:documentation>For live streams. NPT Date in xsd:date format. If nptDate is
					present, nptPoint is offset from start of day. nptPoint wraps to 0 at UTC
					mid-night.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="nptPoint" type="NPTPointType" use="required">
			<xsd:annotation>
				<xsd:documentation>NPT point format:(ss.sss|EOS|BOS). If nptDate is present BOS is
					same as 00.000 and EOS is same as 86399.999</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:anyAttribute namespace="##any" processContents="lax">
			<xsd:annotation>
				<xsd:documentation>In addition to the attributes defined, NPT Point Descriptor may
					include additional, custom attributes as needed by the
					application.</xsd:documentation>
			</xsd:annotation>
		</xsd:anyAttribute>
	</xsd:complexType>
	<!--                                                                                                                 -->
	<!-- NPT Point  Type expressed as seconds with a fractional part for milliseconds -->
	<!--                                                                                                                 -->
	<xsd:simpleType name="NPTPointType">
		<xsd:annotation>
			<xsd:documentation>An NPT postition expressed as seconds with a fractional part for
				milliseconds </xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="core:NonEmptyStringType">
			<xsd:pattern value="[0-9]*\.[0-9]{3}|BOS|EOS"/>
		</xsd:restriction>
	</xsd:simpleType>
	<!--                                                                                                                 -->
	<!-- NPT Date  Type expressed as seconds with a fractional part for milliseconds -->
	<!--                                                                                                                 -->
	<xsd:simpleType name="NPTDateType">
		<xsd:annotation>
			<xsd:documentation>The date portion of NPT postition expressed as a date
			</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:date"/>
	</xsd:simpleType>
	<!--                                        -->
	<!-- UTC Point Descriptor Type -->
	<!-- for signals in live streams the xsd:dateTime of the point of interest -->
	<!--                                         -->
	<xsd:complexType name="UTCPointDescriptorType">
		<xsd:annotation>
			<xsd:documentation>Type to hold the UTC time of a point.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence minOccurs="0">
			<xsd:element name="Ext" type="core:ExtType" minOccurs="0"/>
		</xsd:sequence>
		<xsd:attribute name="utcPoint" type="UTCPointType" use="required">
			<xsd:annotation>
				<xsd:documentation>UTC point.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:anyAttribute namespace="##any" processContents="lax">
			<xsd:annotation>
				<xsd:documentation>In addition to utcPoint, UTC Point Descriptor may include
					additional, custom attributes as needed by the application.</xsd:documentation>
			</xsd:annotation>
		</xsd:anyAttribute>
	</xsd:complexType>
	<!--                                                                                                                 -->
	<!-- UTC Point  Type expressed as XSD:dateTime-->
	<!--                                                                                                                 -->
	<xsd:simpleType name="UTCPointType">
		<xsd:annotation>
			<xsd:documentation> UTC Point Type expressed as XSD:dateTime</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:dateTime">
			<xsd:pattern value=".+T[^+\-]+Z"/>
		</xsd:restriction>
	</xsd:simpleType>
	<!---->
	<!-- Valid time range for a signal from the delivery network-->
	<!---->
	<xsd:complexType name="SignalValidityTimeRangeType">
		<xsd:annotation>
			<xsd:documentation>Specifies a bounded interval of time when a signal should be considered valid. If a signal arrives outside the valid time range it shall not be considered valid.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="UTCStart" type="UTCPointDescriptorType">
				<xsd:annotation>
					<xsd:documentation>Specifies the start of the valid time range.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="UTCEnd" type="UTCPointDescriptorType">
				<xsd:annotation>
					<xsd:documentation>Specifies the end of the valid time range.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Ext" type="core:ExtType" minOccurs="0"/>
		</xsd:sequence>
		<xsd:attribute name="order" type="xsd:unsignedInt" use="optional">
			<xsd:annotation>
				<xsd:documentation>If more than one signal shares the same expected arrive time range, order will contain an incrementing value, starting at 1, to drive the order of evaluation by a signal acquisition system.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:anyAttribute namespace="##any" processContents="lax">
			<xsd:annotation>
				<xsd:documentation>The valid time range may include additional, custom attributes as needed by the application.</xsd:documentation>
			</xsd:annotation>
		</xsd:anyAttribute>
	</xsd:complexType>
	<!--                                                                                                                 -->
	<!-- Types for carrying platform specific stream times. -->
	<!--                                                                                                                 -->
	<xsd:complexType name="StreamTimesType">
		<xsd:annotation>
			<xsd:documentation>StreamTimes contains one or more time values that are generated and
				interpreted by an underlying subsystem. While implementation specific, this data is
				intended to be passed as is through intervening subsystems
				unaltered.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="StreamTime" type="StreamTimeType" maxOccurs="unbounded"/>
			<xsd:element name="Ext" type="core:ExtType" minOccurs="0"/>
		</xsd:sequence>
		<xsd:anyAttribute namespace="##any" processContents="lax">
			<xsd:annotation>
				<xsd:documentation>Stream times may include additional, custom attributes as needed
					by the application.</xsd:documentation>
			</xsd:annotation>
		</xsd:anyAttribute>
	</xsd:complexType>
	<!---->
	<xsd:complexType name="StreamTimeType">
		<xsd:annotation>
			<xsd:documentation>A single platform specific time comprised of a type and value pair.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence minOccurs="0">
			<xsd:element name="Ext" type="core:ExtType" minOccurs="0"/>
		</xsd:sequence>
		<xsd:attribute name="timeType" type="core:NonEmptyStringType"/>
		<xsd:attribute name="timeValue" type="core:NonEmptyStringType"/>
		<xsd:anyAttribute namespace="##any" processContents="lax">
			<xsd:annotation>
				<xsd:documentation>In addition to the attributes defined, a stream time may include
					additional, custom attributes as needed by the application.</xsd:documentation>
			</xsd:annotation>
		</xsd:anyAttribute>
	</xsd:complexType>
	<xsd:element name="SignalGroupAsset" type="SignalGroupAssetType"/>
</xsd:schema>
