<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.smc.af.mil/ISSA/5.0/services"
    xmlns:issa="http://www.smc.af.mil/ISSA/5.0/services" attributeFormDefault="unqualified"
    elementFormDefault="unqualified">

    <xs:complexType name="ISSARequest">

        <xs:sequence>
            <xs:element minOccurs="0" name="startTime" nillable="true" type="xs:dateTime"/>
            <xs:element minOccurs="0" name="endTime" nillable="true" type="xs:dateTime"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="ISSAResponse">

        <xs:sequence>
            <xs:element minOccurs="0" name="startDate" nillable="true" type="xs:dateTime"/>
            <xs:element minOccurs="0" name="endDate" nillable="true" type="xs:dateTime"/>
            <xs:element minOccurs="0" name="classification" nillable="true" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="Collection">
        <xs:sequence/>
    </xs:complexType>
    
    <xs:complexType name="Exception">
        <xs:sequence>
            <xs:element minOccurs="0" name="Exception" nillable="true" type="xs:anyType" /> 
        </xs:sequence>
    </xs:complexType>
    
    <xs:complexType name="ISSAException">
         <xs:complexContent>
            <xs:extension base="issa:Exception">
                <xs:sequence /> 
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="BasicSatellite">
        
        <xs:sequence>
            <xs:element minOccurs="0" name="satelliteName" nillable="true" type="xs:string"/>
            <xs:element minOccurs="0" name="satelliteNumber" type="xs:int"/>
        </xs:sequence>
    </xs:complexType>
    
    <xs:complexType name="BasicSatellites">
        
        <xs:complexContent>
            
            <xs:extension base="issa:Collection">
                
                <xs:sequence>
                    <xs:element maxOccurs="unbounded" minOccurs="0" name="Satellite"
                        nillable="true" type="issa:BasicSatellite"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    
    <xs:complexType name="SimpleLocation">
        
        <xs:sequence>
            <xs:element minOccurs="0" name="lat" type="xs:double"/>
            <xs:element minOccurs="0" name="lon" type="xs:double"/>
        </xs:sequence>
    </xs:complexType>
    
    <xs:complexType name="Location">
        
        <xs:complexContent>
            
            <xs:extension base="issa:SimpleLocation">
                
                <xs:sequence>
                    <xs:element minOccurs="0" name="alt" type="xs:double"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    
    <xs:complexType name="RequestConstellations">
        
        <xs:complexContent>
            
            <xs:extension base="issa:Collection">
                
                <xs:sequence>
                    <xs:element maxOccurs="unbounded" minOccurs="0" name="Constellation"
                        nillable="true" type="issa:RequestConstellation"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    
    <xs:complexType name="RequestConstellation">
        
        <xs:sequence>
            <xs:element minOccurs="0" name="name" nillable="true" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    
    <xs:complexType name="GroundSensorSites">
        
        <xs:complexContent>
            
            <xs:extension base="issa:Collection">
                
                <xs:sequence>
                    <xs:element maxOccurs="unbounded" minOccurs="0" name="GroundSensor"
                        nillable="true" type="issa:GroundSensorSite"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    
    <xs:complexType name="GroundSensorSite">
        
        <xs:sequence>
            <xs:element minOccurs="0" name="location" nillable="true" type="issa:Location"/>
            <xs:element minOccurs="0" name="maxAzimuth" type="xs:float"/>
            <xs:element minOccurs="0" name="maxElevation" type="xs:float"/>
            <xs:element minOccurs="0" name="maxRange" type="xs:float"/>
            <xs:element minOccurs="0" name="minAzimuth" type="xs:float"/>
            <xs:element minOccurs="0" name="minElevation" type="xs:float"/>
            <xs:element minOccurs="0" name="minRange" type="xs:float"/>
            <xs:element minOccurs="0" name="name" nillable="true" type="xs:string"/>
            <xs:element minOccurs="0" name="type" nillable="true" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    
    <xs:complexType name="SimpleLocations">
        
        <xs:complexContent>
            
            <xs:extension base="issa:Collection">
                
                <xs:sequence>
                    <xs:element maxOccurs="unbounded" minOccurs="0" name="Location"
                        nillable="true" type="issa:SimpleLocation"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

</xs:schema>
