<xs:schema xmlns="http://www.smc.af.mil/ISSA/5.0/services"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:issa="http://www.smc.af.mil/ISSA/5.0/services"
    targetNamespace="http://www.smc.af.mil/ISSA/5.0/services"
    attributeFormDefault="unqualified"
    elementFormDefault="unqualified">
      
    <xs:include schemaLocation="ISSACommon.xsd"/>

    <xs:complexType name="ConstellationsForSatelliteRequest">
        <xs:sequence>
            <xs:element minOccurs="0" name="satelliteNumbers" nillable="true"
                type="SatelliteNumbersType"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="ConstellationsForSatelliteResponse">
        <xs:complexContent>
            <xs:extension base="Collection">
                <xs:sequence>
                    <xs:element maxOccurs="unbounded" minOccurs="0" name="ConstellationsInSatellite"
                        nillable="true" type="SatelliteResponse"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="SatelliteResponse">
        <xs:sequence>
            <xs:element minOccurs="0" name="satellite" nillable="true" type="Satellite"/>
            <xs:element minOccurs="0" name="constellations" nillable="true" type="Constellations"/>
        </xs:sequence>
    </xs:complexType>


    <xs:complexType name="SatelliteNumbersType">
        <xs:complexContent>
            <xs:extension base="Collection">
                <xs:sequence>
                    <xs:element maxOccurs="unbounded" minOccurs="0" name="satelliteNumber"
                        nillable="true" type="xs:int"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>


    <xs:complexType name="ConstellationListResponse">
        <xs:sequence>
            <xs:element minOccurs="0" name="blueSOB" nillable="true" type="Constellations"/>
            <xs:element minOccurs="0" name="graySOB" nillable="true" type="Constellations"/>
            <xs:element minOccurs="0" name="redSOB" nillable="true" type="Constellations"/>
        </xs:sequence>
    </xs:complexType>



    <xs:complexType name="SatelliteListResponse">
        <xs:sequence>
            <xs:element minOccurs="0" name="satellites" nillable="true" type="Satellites"/>
        </xs:sequence>
    </xs:complexType>


    <xs:complexType name="GetSatellitesInConstellation">
        <xs:sequence>
            <xs:element minOccurs="0" name="constellations" nillable="true"
                type="ConstellationRequest"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="ConstellationRequest">
        <xs:complexContent>
            <xs:extension base="Collection">
                <xs:sequence>
                    <xs:element maxOccurs="unbounded" minOccurs="0" name="constellationName"
                        nillable="true" type="xs:string"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>


    <xs:complexType name="SatellitesInConstellationsResponse">

        <xs:sequence>
            <xs:element minOccurs="0" name="constellations" nillable="true"
                type="ConstellationsResponse"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="ConstellationsResponse">

        <xs:complexContent>

            <xs:extension base="Collection">

                <xs:sequence>
                    <xs:element maxOccurs="unbounded" minOccurs="0" name="SatellitesInConstellation"
                        nillable="true" type="ConstellationResponse"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="ConstellationResponse">

        <xs:complexContent>
            <xs:extension base="Collection">
                <xs:sequence>
                    <xs:element minOccurs="0" name="constellation" nillable="true"
                        type="Constellation"/>
                    <xs:element minOccurs="0" name="satellites" nillable="true" type="Satellites"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>


    <xs:complexType name="Constellations">
        <xs:complexContent>
            <xs:extension base="Collection">

                <xs:sequence>
                    <xs:element maxOccurs="unbounded" minOccurs="0" name="Constellation"
                        nillable="true" type="Constellation"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>

    </xs:complexType>

    <xs:complexType name="Constellation">

        <xs:sequence>
            <xs:element name="name" nillable="true" type="xs:string"/>
            <xs:element name="commonName" nillable="true" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="Satellites">
        <xs:complexContent>
            <xs:extension base="Collection">
                <xs:sequence>
                    <xs:element maxOccurs="unbounded" minOccurs="0" name="Satellite" nillable="true"
                        type="Satellite"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="Satellite">
        <xs:sequence>
            <xs:element name="country" nillable="true" type="xs:string" minOccurs="0"/>
            <xs:element name="status" type="xs:int" minOccurs="0"/>
            <xs:element name="commonName" type="xs:int"/>
            <xs:element name="sscNumber" nillable="true" type="xs:string"/>
            <xs:element name="missionName" nillable="true" type="xs:string" maxOccurs="unbounded"
                minOccurs="0"/>
            <xs:element minOccurs="0" name="remarks" nillable="true" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>


</xs:schema>
