<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
	xmlns:slt="tag:atsc.org,2016:XMLSchemas/ATSC3/Delivery/SLT/1.0/"
	xmlns:sa="tag:atsc.org,2016:XMLSchemas/ATSC3/SA/1.0/"
	targetNamespace="tag:atsc.org,2016:XMLSchemas/ATSC3/Delivery/SLT/1.0/"
	elementFormDefault="qualified">
	<xs:import namespace="tag:atsc.org,2016:XMLSchemas/ATSC3/SA/1.0/"
		schemaLocation="SA-1.0-20210312.xsd"/>
	<xs:element name="SLT" type="slt:sltType"/>
	<xs:complexType name="sltType">
		<xs:sequence>
			<xs:element name="SLTCapabilities" type="sa:CapabilitiesType" minOccurs="0"/>
			<xs:element name="SLTInetUrl" type="slt:URLType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Service" type="slt:serviceType" maxOccurs="unbounded"/>
			<xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"
			/>
		</xs:sequence>
		<xs:attribute name="bsid" type="slt:listOfUnsignedShortType" use="required"/>
		<xs:anyAttribute processContents="strict"/>
	</xs:complexType>
	<xs:complexType name="serviceType">
		<xs:sequence>
			<xs:element name="SimulcastTSID" type="slt:SimulcastTSIDType" minOccurs="0"/>
			<xs:element name="SvcCapabilities" type="sa:CapabilitiesType" minOccurs="0"/>
			<xs:element name="BroadcastSvcSignaling" type="slt:broadcastSigType" minOccurs="0"/>
			<xs:element name="SvcInetUrl" type="slt:URLType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="OtherBsid" type="slt:OtherBsidType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="OtherRf" type="slt:OtherRfType" minOccurs="0" maxOccurs="unbounded"/>
			<xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="serviceId" type="xs:unsignedShort" use="required"/>
		<xs:attribute name="globalServiceID" type="xs:anyURI"/>
		<xs:attribute name="sltSvcSeqNum" type="xs:unsignedByte" use="required"/>
		<xs:attribute name="protected" type="xs:boolean" default="false"/>
		<xs:attribute name="majorChannelNo" type="slt:ChannelNumType"/>
		<xs:attribute name="minorChannelNo" type="slt:ChannelNumType"/>
		<xs:attribute name="serviceCategory" type="slt:serviceCategoryType" use="required"/>
		<xs:attribute name="shortServiceName" type="slt:shortServiceNameType"/>
		<xs:attribute name="hidden" type="xs:boolean" default="false"/>
		<xs:attribute name="hideInGuide" type="xs:boolean" default="false"/>
		<xs:attribute name="broadbandAccessRequired" type="xs:boolean" default="false"/>
		<xs:attribute name="essential" type="xs:boolean"/>
		<xs:attribute name="drmSystemID" type="xs:anyURI"/>
		<xs:attribute name="configuration" type="slt:configurationType" default="Broadcast"/>
		<xs:anyAttribute processContents="strict"/>
	</xs:complexType>
	<xs:complexType name="SimulcastTSIDType">
		<xs:simpleContent>
			<xs:extension base="xs:unsignedShort">
				<xs:attribute name="simulcastMajorChannelNo" type="slt:ChannelNumType"/>
				<xs:attribute name="simulcastMinorChannelNo" type="slt:ChannelNumType"/>
				<xs:anyAttribute processContents="strict"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="broadcastSigType">
		<xs:attribute name="slsProtocol" type="slt:slsProtocolType" use="required"/>
		<xs:attribute name="slsMajorProtocolVersion" type="xs:unsignedByte" default="1"/>
		<xs:attribute name="slsMinorProtocolVersion" type="xs:unsignedByte" default="0"/>
		<xs:attribute name="slsDestinationIpAddress" type="slt:IPv4addressType" use="required"/>
		<xs:attribute name="slsDestinationUdpPort" type="slt:PortType" use="required"/>
		<xs:attribute name="slsSourceIpAddress" type="slt:IPv4addressType"/>
		<xs:anyAttribute processContents="strict"/>
	</xs:complexType>
	<xs:complexType name="URLType">
		<xs:simpleContent>
			<xs:extension base="xs:anyURI">
				<xs:attribute name="urlType" type="slt:urlTypeType" use="required"/>
				<xs:anyAttribute processContents="strict"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="OtherBsidType">
		<xs:simpleContent>
			<xs:extension base="slt:listOfUnsignedShortType">
				<xs:attribute name="type" type="slt:otherBsidTypeType" use="required"/>
				<xs:anyAttribute processContents="strict"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="OtherRfType">
		<xs:sequence>
			<xs:element name="Directional" type="slt:DirectionalType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="otherBsidRf" type="xs:unsignedShort" use="required"/>
		<xs:attribute name="otherBsid" type="xs:unsignedShort" use="required"/>
		<xs:attribute name="lat" type="slt:latType" use="required"/>
		<xs:attribute name="long" type="slt:longType" use="required"/>
		<xs:attribute name="elev" type="xs:integer" use="required"/>
		<xs:attribute name="erp" type="xs:integer" use="required"/>
		<xs:anyAttribute processContents="strict"/>
	</xs:complexType>
	<xs:complexType name="DirectionalType">
		<xs:attribute name="heading" type="slt:headingType" use="required"/>
		<xs:attribute name="strength" type="xs:float" use="required"/>
		<xs:attribute name="haat" type="xs:integer"/>
		<xs:anyAttribute processContents="strict"/>
	</xs:complexType>
	<xs:simpleType name="latType">
		<xs:restriction base="xs:float">
			<xs:minInclusive value="-90"/>
			<xs:maxInclusive value="90"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="longType">
		<xs:restriction base="xs:float">
			<xs:minInclusive value="-180"/>
			<xs:maxInclusive value="180"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="headingType">
		<xs:restriction base="xs:integer">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="360"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ChannelNumType">
		<xs:restriction base="xs:unsignedShort">
			<xs:minInclusive value="1"/>
			<xs:maxInclusive value="999"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IPv4addressType">
		<xs:restriction base="xs:token">
			<xs:pattern
				value="(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])"
			/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="PortType">
		<xs:restriction base="xs:unsignedShort">
			<xs:minInclusive value="1"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="listOfUnsignedShortType">
		<xs:list itemType="xs:unsignedShort"/>
	</xs:simpleType>
	<xs:simpleType name="urlTypeType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="1"/>
			<xs:maxInclusive value="4"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="serviceCategoryType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="1"/>
			<xs:maxInclusive value="6"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="slsProtocolType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="1"/>
			<xs:maxInclusive value="2"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="otherBsidTypeType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="1"/>
			<xs:maxInclusive value="3"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="shortServiceNameType">
		<xs:restriction base="xs:string">
			<xs:minLength value="0"/>
			<xs:maxLength value="7"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="configurationType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Broadcast"/>
			<xs:enumeration value="Broadband"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>
