<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:cablelabs:md:xsd:signaling:3.0"
	xmlns:core="urn:cablelabs:md:xsd:core:3.0" xmlns:scte35="http://www.scte.org/schemas/35/201x"
	targetNamespace="urn:cablelabs:md:xsd:signaling:3.0" elementFormDefault="qualified"
	attributeFormDefault="unqualified" version="1">
	<xsd:import namespace="urn:cablelabs:md:xsd:core:3.0" schemaLocation="MD-SP-CORE-C01.xsd"/>
	<xsd:import namespace="http://www.scte.org/schemas/35/2014" schemaLocation="SCTE35.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: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>
	<!-- ECN 14.xxx - added Signal Point and Signal Region Elements -->
	<xsd:element name="SignalPoint" type="SignalPointType">
		<xsd:annotation>
			<xsd:documentation>Define a point of interest in an asset.</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="SignalRegion" type="SignalRegionType">
		<xsd:annotation>
			<xsd:documentation>Defube a region of interest in an asset</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<!--                        -->
	<!-- Complex types -->
	<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>
			<!-- ECN 14.xxx - changed to scte35:SpliceInfoSectionType -->
			<xsd:group minOccurs="0" ref="scte35:Signal"/>
			<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:choice>
				<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:element name="NPTPoint" type="NPTPointDescriptorType">
					<xsd:annotation>
						<xsd:documentation>NPT point within the stream</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
			</xsd:choice>
			<xsd:group minOccurs="0" ref="scte35:Signal"/>
			<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>
			<!-- ECN 14.xxx - changed type to core:AlternateIdType -->
			<xsd:element name="AlternateId" type="core:AlternateIdType" 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>
			<!-- ECN 14.xxx - added Description -->
			<xsd:element name="Description" type="core:DescriptionType" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>A description for the Signal Region</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>
		<!-- ECN 14.xxx - added version numbering -->
		<xsd:attribute name="providerVersionNum" type="xsd:integer">
			<xsd:annotation>
				<xsd:documentation>The provider-supplied version number for the signal region. Should be incremented each time the signal region is changed by the provider.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="internalVersionNum" type="xsd:integer">
			<xsd:annotation>
				<xsd:documentation>The internal version number for the signal region. This version number should be set to 0 by the provider whenever providerVersionNum is changed. Likewise, this version number should be increased when internal variants of the signal region are generated.</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>
	</xsd:complexType>
	<!--                           -->
	<!-- Signal Point Type -->
	<!--                           -->
	<xsd:complexType name="SignalPointType">
		<xsd:annotation>
			<xsd:documentation>Based type for signals</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<!-- ECN 14.xxx - changed type to core:AlternateIdType -->
			<xsd:element name="AlternateId" type="core:AlternateIdType" 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>
			<!-- ECN 14.xxx - added Description -->
			<xsd:element name="Description" type="core:DescriptionType" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>A description for the Signal Point</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>
		<!-- ECN 14.xxx - added version numbering -->
		<xsd:attribute name="providerVersionNum" type="xsd:integer">
			<xsd:annotation>
				<xsd:documentation>The provider-supplied version number for the signal point. Should be incremented each time the signal point is changed by the provider.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="internalVersionNum" type="xsd:integer">
			<xsd:annotation>
				<xsd:documentation>The internal version number for the signal point. This version number should be set to 0 by the provider whenever providerVersionNum is changed. Likewise, this version number should be increased when internal variants of the signal point are generated.</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>
	</xsd:complexType>
	<!-- ECN 14.xxx - REMOVED AvailDescriptorType-->
	<!-- ECN 14.xxx - REMOVED DTMFDescriptorType-->
	<!-- ECN 14.xxx - REMOVED UniqueDescriptorType-->
	<!-- ECN 14.xxx - REMOVED SegmentationDescriptorType-->
	<!-- ECN 14.xxx - REMOVED SpliceInsertType -->
	<!-- ECN 14.xxx - REMOVED SCTE35PointDescriptorType -->
	<!-- ECN 14.xxx - REMOVED SCTE35PointType -->
	<!---->
	<!--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>
