<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="Tethys/Control"
    elementFormDefault="qualified"
    xmlns="http://www.w3.org/2001/XMLSchema"
    xmlns:Control="Tethys/Control"
    xmlns:Tethys="Tethys">

    <import namespace="Tethys" schemaLocation="Tethys.xsd"/>
    <element name="VerticalControl.verticalMode" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.verticalHoldMode" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.depthCmd" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.depthRateCmd" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.pitchCmd" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.pitchRateCmd" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.buoyancyCmd" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.massPositionCmd" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.elevatorAngleCmd" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.kdPitchElevator" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.kiPitchElevator" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.kpPitchElevator" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.kdPitchMass" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.kiPitchMass" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.kpPitchMass" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.maxPitchElevatorInt" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.maxPitchMassInt" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.pitchLimit" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.elevatorLimit" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.massPositionLimit" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.massDefault" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.massPositionDelay" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.maxDiveRate" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.kdDepth" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.kiDepth" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.kpDepth" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.kdDepthBuoy" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.kiDepthBuoy" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.kpDepthBuoy" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.kdDepthRateBuoy" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.kiDepthRateBuoy" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.kpDepthRateBuoy" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.maxDepthInt" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.maxBuoyInt" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.depthDeadband" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.buoyancyNeutral" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.kiDepthOff" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.maxDiveAccel" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.maxBuoyDiveAccel" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.smoothDepthInternal" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.depthErrorInternal" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.depthIntegralInternal" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.depth2buoyIntInternal" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.pitchInternal" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.massIntegralInternal" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.elevatorIntegralInternal" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.pitchErrorInternal" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.dtInternal" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.elevatorAngleAction" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.massPositionAction" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="VerticalControl.buoyancyAction" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <!--VerticalControl.NONE=0 -->
    <!--VerticalControl.SURFACE=1 -->
    <!--VerticalControl.DEPTH=2 -->
    <!--VerticalControl.DEPTH_RATE=3 -->
    <!--VerticalControl.PITCH_ZERO=4 -->
    <!--VerticalControl.PITCH=5 -->
    <!--VerticalControl.PITCH_RATE=6 -->
    <!--VerticalControl.MASS_AND_ELEVATOR=7 -->
    <!--VerticalControl.FLOAT_ON_SURFACE=8 -->
    <!--VerticalControl.typedef=0 -->
    <!--VerticalControl.HOLD_NEITHER=1 -->
    <!--VerticalControl.HOLD_MASS=2 -->
    <!--VerticalControl.HOLD_ELEVATOR=3 -->
    <!--VerticalControl.HOLD_BOTH=4 -->
    <element name="HorizontalControl.horizontalMode" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="HorizontalControl.latitudeCmd" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="HorizontalControl.longitudeCmd" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="HorizontalControl.headingCmd" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="HorizontalControl.headingRateCmd" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="HorizontalControl.rudderAngleCmd" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="HorizontalControl.bearingCmd" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="HorizontalControl.headingInternal" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="HorizontalControl.smoothHeadingInternal" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="HorizontalControl.xteInternal" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="HorizontalControl.bearingInternal" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="HorizontalControl.rudderAngleAction" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <!--HorizontalControl.NONE=0 -->
    <!--HorizontalControl.WAYPOINT=1 -->
    <!--HorizontalControl.HEADING=2 -->
    <!--HorizontalControl.HEADING_RATE=3 -->
    <!--HorizontalControl.RUDDER_ANGLE=4 -->
    <element name="SpeedControl.speedCmd" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="SpeedControl.propOmegaAction" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>
    <element name="LoopControl.periodCmd" substitutionGroup="Tethys:Uri" type="Tethys:UriType"/>

</schema>