<xsd:schema targetNamespace="http://metadata.dod.mil/mdr/ns/jbfsa/2.3"
    xmlns="http://metadata.dod.mil/mdr/ns/jbfsa/2.3" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xml:lang="en">
    <!-- Revision History
        v2.0 - initial version
        v2.1 - removed fields that were more applicable to association data
        v2.2 - added the transponderSubID field to provide a link to the association data schema
        v2.3 - modified the BrevityCodeType description to allow for a broader set of brevity code values
             - modified the CountryCodeType to allow 2 or 3 character codes
             - modified the FigureOfMeritType description by adding the specification that defines FOM
             - added the AdditionalData section to allow for data extensibility, flexibility
             - added the NFFI v1.3.1 'footprint' element
    -->
    <xsd:annotation>
        <xsd:documentation> This schema defines the layout for the JBFSA XML v2.2 message format.
        </xsd:documentation>
    </xsd:annotation>
    <xsd:element name="jbfsaMessage" type="JBFSAMessageType" block="#all"/>

    <xsd:complexType name="JBFSAMessageType">
        <xsd:annotation>
            <xsd:documentation> Provides JBFSA device track data. The contents consist of one or
                more device track data entries. </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element name="source" type="SourceType" minOccurs="1" maxOccurs="1"/>
            <xsd:element name="classification" type="ClassificationType" minOccurs="1" maxOccurs="1"/>
            <xsd:element name="caveat" type="ClassificationCaveatType" minOccurs="0" maxOccurs="5"/>
            <xsd:element name="track" type="TrackDetailsType" minOccurs="1" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:simpleType name="SourceType">
        <xsd:annotation>
            <xsd:documentation> Provides the device source for the JBFSA track(s) contained in the
                JBFSA message (e.g., MTS). </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="50"/>
            <xsd:pattern value="[^&lt;&gt;&amp;&quot;#%\\]{1,50}"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="ClassificationType">
        <xsd:annotation>
            <xsd:documentation> Describes the classification of a JBFSA message (e.g.,
                UNCLASSIFIED). </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="40"/>
            <xsd:pattern value="[A-Za-z ]{1,40}"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="ClassificationCaveatType">
        <xsd:annotation>
            <xsd:documentation> Provides a caveat for the message classification.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="60"/>
            <xsd:pattern value="[A-Za-z0-9 /]{1,60}"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:complexType name="TrackDetailsType">
        <xsd:annotation>
            <xsd:documentation> Represents a single JBFSA device track.<br/> This element consists
                of: <ul>
                    <li> One or more device data entires. Each contain(s): <ul>
                            <li> One TrackDataType element </li>
                            <li> One PositionalDataType element </li>
                            <li> Up to one RemarksDataType elements </li>
                        </ul>
                    </li>
                </ul>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element name="deviceData" type="DeviceDetailsType" minOccurs="1" maxOccurs="1"/>
            <xsd:element name="positionalData" type="PositionDetailsType" minOccurs="1"
                maxOccurs="1"/>
            <xsd:element name="remarks" type="RemarksDetailsType" minOccurs="0" maxOccurs="4"/>
            <xsd:element name="additionalData" type="AdditionalDataType" minOccurs="0"
                maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="DeviceDetailsType">
        <xsd:annotation>
            <xsd:documentation> Provides data associated with a JBFSA track. </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element name="transponderID" type="TransponderIDType" minOccurs="1" maxOccurs="1"/>
            <xsd:element name="transponderSubID" type="TransponderSubIDType" minOccurs="1"
                maxOccurs="1"/>
            <xsd:element name="dtg" type="DateTimeGroupType" minOccurs="1" maxOccurs="1"/>
            <xsd:element name="name" type="NameType" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="alert" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="URN" type="URNType" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="phone_number" type="PhoneNumberType" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="serial_number" type="SerialNumberType" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="status_code" type="StatusCodeType" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="brevity_code" type="BrevityCodeType" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="vehicle_number" type="VehicleNumberType" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="country_code" type="CountryCodeType" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="strength" type="StrengthType" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="parent_name" type="ParentNameType" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="service" type="ServiceCodeType" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="milStd2525b_symbol_code" type="SymbolCodeType" minOccurs="0"
                maxOccurs="1"/>
            <xsd:element name="special_user_defined" type="SpecialUserDefinedType" minOccurs="0"
                maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:simpleType name="TransponderIDType">
        <xsd:annotation>
            <xsd:documentation> Contains the transponder ID of the JBFSA device.<br/> When coupled
                with the source value, the resulting data tuple must be unique. </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="60"/>
            <xsd:pattern value="[^&lt;&gt;&amp;&quot;#%\\]{1,60}"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="TransponderSubIDType">
        <xsd:annotation>
            <xsd:documentation> Contains an optional identifier that is used with the transponder id
                to ensure a unique indentifier for a device's transponder. Derived from the NFFI
                systemType field definition. </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="30"/>
            <xsd:pattern value="[^&lt;&gt;&amp;&quot;#%\\/]{1,30}"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="DateTimeGroupType">
        <xsd:annotation>
            <xsd:documentation> Contains the date/time group of the JBFSA track.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:dateTime"/>
    </xsd:simpleType>

    <xsd:simpleType name="NameType">
        <xsd:annotation>
            <xsd:documentation> Contains the name associated with the JBFSA track.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="60"/>
            <xsd:pattern value="[^&lt;&gt;&amp;&quot;#%\\]{1,60}"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="URNType">
        <xsd:annotation>
            <xsd:documentation> Contains the Universal Resource Number (URN) associated with the
                JBFSA track. </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="15"/>
            <xsd:pattern value="[0-9]{1,15}"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="PhoneNumberType">
        <xsd:annotation>
            <xsd:documentation> Contains the phone number associated with the JBFSA track.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="30"/>
            <xsd:pattern value="[0-9+\-()]{1,30}"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="SerialNumberType">
        <xsd:annotation>
            <xsd:documentation> Contains the serial number associated with the JBFSA tracking
                device. </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="30"/>
            <xsd:pattern value="[A-Za-z0-9]{1,30}"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="StatusCodeType">
        <xsd:annotation>
            <xsd:documentation> Contains a status code associated with the JBFSA track.<br/> This
                entity must be populated with one of the listed set of values. </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="OPERATIONAL"/>
            <xsd:enumeration value="SUBSTANTIALLY OPERATIONAL"/>
            <xsd:enumeration value="MARGINALLY OPERATIONAL"/>
            <xsd:enumeration value="TEMPORARILY NOT OPERATIONAL"/>
            <xsd:enumeration value="NOT OPERATIONAL"/>
            <xsd:enumeration value="NOT KNOWN"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="BrevityCodeType">
        <xsd:annotation>
            <xsd:documentation> Contains the brevity code associated with the JBFSA
            track.</xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="10"/>
            <xsd:pattern value="[A-Z0-9]{1,10}"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="VehicleNumberType">
        <xsd:annotation>
            <xsd:documentation> Contains the bumper number associated with the vehicle in which the
                JBFSA track device is located. </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="50"/>
            <xsd:pattern value="[^&lt;&gt;&amp;&quot;#%\\]{1,50}"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="CountryCodeType">
        <xsd:annotation>
            <xsd:documentation> Contains a two- or three-character country code associated with the
                JBFSA track. </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="2"/>
            <xsd:maxLength value="3"/>
            <xsd:pattern value="[A-Z]{2,3}"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="StrengthType">
        <xsd:annotation>
            <xsd:documentation> Contains the number of vehicles associated with the JBFSA track.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="65536"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="ParentNameType">
        <xsd:annotation>
            <xsd:documentation> Contains the name of the JBFSA track's parent organization.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="60"/>
            <xsd:pattern value="[^&lt;&gt;&amp;&quot;#%\\]{1,60}"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="ServiceCodeType">
        <xsd:annotation>
            <xsd:documentation> Contains the three-character service code associated with the JBFSA
                track (e.g., ARM, NAV). </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="3"/>
            <xsd:maxLength value="3"/>
            <xsd:pattern value="[A-Z0-9]{3}"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="SymbolCodeType">
        <xsd:annotation>
            <xsd:documentation> Contains the 15-character military symbol code associated with the
                JBFSA track.<br/> The contents of this entity must comply with MIL-STD
            2525B.</xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="15"/>
            <xsd:maxLength value="15"/>
            <xsd:pattern
                value="[SGWIMO]{1}[PUAFNSHJKO]{1}[PAGSUFXTCOILMV]{1}[AP]{1}[A-Z0-9\-]{6}[A-Z\-]{4}[AECGNSX\-]{1}"
            />
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="SpecialUserDefinedType">
        <xsd:annotation>
            <xsd:documentation> Contains a special user defined text for a device.<br/> This element
                is provided as a means for device messages to send special data in the message that
                is not represented elsewhere. </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="60"/>
            <xsd:pattern value="[^&lt;&gt;&amp;&quot;#%\\]{1,60}"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:complexType name="PositionDetailsType">
        <xsd:annotation>
            <xsd:documentation> Contains positional and movement data associated with the JBFSA
                track. </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element name="latitude" type="LatitudeType" minOccurs="1" maxOccurs="1"/>
            <xsd:element name="longitude" type="LongitudeType" minOccurs="1" maxOccurs="1"/>
            <xsd:element name="altitude" type="AltitudeDepthElevationType" minOccurs="0"
                maxOccurs="1"/>
            <xsd:element name="elevation" type="AltitudeDepthElevationType" minOccurs="0"
                maxOccurs="1"/>
            <xsd:element name="course" type="CourseType" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="speed" type="SpeedType" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="inclination" type="InclinationType" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="horizonatal_accuracy" type="HorizontalAccuracyType" minOccurs="0"
                maxOccurs="1"/>
            <xsd:element name="altitude_accuracy" type="AltitudeDepthElevationAccuracyType"
                minOccurs="0" maxOccurs="1"/>
            <xsd:element name="elevation_accuracy" type="AltitudeDepthElevationAccuracyType"
                minOccurs="0" maxOccurs="1"/>
            <xsd:element name="course_accuracy" type="CourseAccuracyType" minOccurs="0"
                maxOccurs="1"/>
            <xsd:element name="speed_accuracy" type="SpeedAccuracyType" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="inclination_accuracy" type="InclinationAccuracyType" minOccurs="0"
                maxOccurs="1"/>
            <xsd:element name="gps_figure_of_merit" type="FigureOfMeritType" minOccurs="0"
                maxOccurs="1"/>
            <xsd:element name="reliability" type="ReliabilityType" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="credibility" type="CredibilityType" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="footprint" type="FootprintType" minOccurs="0" maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:simpleType name="LatitudeType">
        <xsd:annotation>
            <xsd:documentation> Contains the latitude (in degrees) associated with the JBFSA track.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:decimal">
            <xsd:minInclusive value="-90.0"/>
            <xsd:maxInclusive value="90.0"/>
            <xsd:fractionDigits value="6"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="LongitudeType">
        <xsd:annotation>
            <xsd:documentation> Contains the longitude (in degrees) associated with the JBFSA track.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:decimal">
            <xsd:minInclusive value="-180.0"/>
            <xsd:maxInclusive value="180.0"/>
            <xsd:fractionDigits value="6"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="AltitudeDepthElevationType">
        <xsd:annotation>
            <xsd:documentation> Contains a value that can represent either the altitude (in feet),
                the depth (in feet), or the elevation (in feet) associated with the JBFSA track.
                    <ul>Definitions: <ul>
                        <li>Altitude is defined as the distance above ground level (AGL).</li>
                        <li>Depth is defined as the distance below ground level.</li>
                        <li>Elevation is defined as the distance above/below mean sea level
                        (MSL).</li>
                    </ul>
                </ul>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:decimal">
            <xsd:minInclusive value="-99999.999999"/>
            <xsd:maxInclusive value="99999.999999"/>
            <xsd:fractionDigits value="6"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="CourseType">
        <xsd:annotation>
            <xsd:documentation> Contains the course (in degrees) associated with the JBFSA
                track.<br/> Course is defined as the rotational measurement clockwise from the line
                of true North to the direction of motion of a specific JBFSA track.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:decimal">
            <xsd:minInclusive value="0.0"/>
            <xsd:maxInclusive value="360.0"/>
            <xsd:fractionDigits value="6"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="SpeedType">
        <xsd:annotation>
            <xsd:documentation> Contains the speed (in knots) associated with the JBFSA track.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:decimal">
            <xsd:minInclusive value="0.0"/>
            <xsd:maxInclusive value="9999.999999"/>
            <xsd:fractionDigits value="6"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="FootprintType">
        <xsd:annotation>
            <xsd:documentation>Contains the radius (in meters) of a circular area in which the represented unit operates, 
                measured from the centre as specified by ‘coordinates.latitude’ and ‘coordinates.longitude’ elements. 
                Based on the NFFI v1.3.1 schema. </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:decimal">
            <xsd:minInclusive value="0.0"/>
            <xsd:fractionDigits value="6"/>
        </xsd:restriction>
    </xsd:simpleType>
    
    <xsd:simpleType name="FigureOfMeritType">
        <xsd:annotation>
            <xsd:documentation> Contains a GPS figure of merit associated with the JBFSA track.<br/>
                The Figure of Merit (or fom) describes the estimated error in the position. The
                following table (extracted from the MTS-EXPORT-INTERFACE-SPEC v4.3) relates the fom
                value to the estimated position error. <table>
                    <tr>
                        <th>FOM</th>
                        <th>Estimated Position Error</th>
                    </tr>
                    <tr>
                        <td>1</td>
                        <td>&lt;= 25 meters</td>
                    </tr>
                    <tr>
                        <td>2</td>
                        <td>&lt;= 50 meters</td>
                    </tr>
                    <tr>
                        <td>3</td>
                        <td>&lt;= 75 meters</td>
                    </tr>
                    <tr>
                        <td>4</td>
                        <td>&lt;= 100 meters</td>
                    </tr>
                    <tr>
                        <td>5</td>
                        <td>&lt;= 200 meters</td>
                    </tr>
                    <tr>
                        <td>6</td>
                        <td>&lt;= 500 meters</td>
                    </tr>
                    <tr>
                        <td>7</td>
                        <td>&lt;= 1000 meters</td>
                    </tr>
                    <tr>
                        <td>8</td>
                        <td>&lt;= 5000 meters</td>
                    </tr>
                    <tr>
                        <td>9</td>
                        <td>&gt; 5000 meters</td>
                    </tr>
                </table>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="1"/>
            <xsd:maxInclusive value="9"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="InclinationType">
        <xsd:annotation>
            <xsd:documentation> Contains the inclination (in degrees) associated with the JBFSA
                track.<br/> Inclination is defined as the rotational measurement from the horizontal
                plane to the direction of motion of a specific battlespace object at a specific
                location where the positive angle is vertically upward. </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:decimal">
            <xsd:minInclusive value="0.0"/>
            <xsd:maxInclusive value="360.0"/>
            <xsd:fractionDigits value="6"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="HorizontalAccuracyType">
        <xsd:annotation>
            <xsd:documentation> Contains the horizontal accuracy (in feet) associated with the JBFSA
                track.<br/> Horizontal accuracy is defined as the one-dimensional linear distance
                representing the uncertainty in the horizontal plane in terms of probable circular
                error for a battlespace object. </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:decimal">
            <xsd:minInclusive value="0.0"/>
            <xsd:maxInclusive value="99999.999999"/>
            <xsd:fractionDigits value="6"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="AltitudeDepthElevationAccuracyType">
        <xsd:annotation>
            <xsd:documentation> Contains the altitude accuracy (in feet) associated with the JBFSA
                track.<br/> Altitude accuracy is defined as the one-dimensional linear distance
                representing the uncertainty in terms of probable error range for the vertical axis
                of a battlespace object. </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:decimal">
            <xsd:minInclusive value="0.0"/>
            <xsd:maxInclusive value="99999.999999"/>
            <xsd:fractionDigits value="6"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="CourseAccuracyType">
        <xsd:annotation>
            <xsd:documentation> Contains the course accuracy (in degrees) associated with the JBFSA
                track.<br/> Course accuracy is defined as the rotational measurement of a sector
                that represents the uncertainty range in the estimate of the course at a specific
                location. The sector is bisected by the course. </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:decimal">
            <xsd:minInclusive value="0.0"/>
            <xsd:maxInclusive value="360.0"/>
            <xsd:fractionDigits value="6"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="SpeedAccuracyType">
        <xsd:annotation>
            <xsd:documentation> Contains the speed accuracy (in knots) associated with the JBFSA
                track.<br/> Speed accuracy is defined as the numeric value that denotes the
                uncertainty range in the estimate for the speed at a specific location where the
                speed estimate falls at the center of the accuracy range. </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:decimal">
            <xsd:minInclusive value="0.0"/>
            <xsd:maxInclusive value="9999.999999"/>
            <xsd:fractionDigits value="6"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="InclinationAccuracyType">
        <xsd:annotation>
            <xsd:documentation> Contains the inclination accuracy (in degrees) associated with the
                JBFSA track.<br/> Inclination accuracy is defined as the rotational measurement of a
                vertical sector that represents the uncertainty range in the estimate of the
                inclination at a specific location. The sector is bisected by the inclination.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:decimal">
            <xsd:minInclusive value="0.0"/>
            <xsd:maxInclusive value="360.0"/>
            <xsd:fractionDigits value="6"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="ReliabilityType">
        <xsd:annotation>
            <xsd:documentation> Contains text describing the reliability of the JBFSA track's
                positional data.<br/> Reliability is defined as the specific value that represents,
                for intelligence purpose, the general appraisal of the source in graded terms to
                indicate the extent to which it has been proven it can be counted on or trusted in
                to do as expected.<br/> This entity must be populated with one of the listed set of
                values.</xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="COMPLETELY RELIABLE"/>
            <xsd:enumeration value="USUALLY RELIABLE"/>
            <xsd:enumeration value="FAIRLY RELIABLE"/>
            <xsd:enumeration value="NOT USUALLY RELIABLE"/>
            <xsd:enumeration value="UNRELIABLE"/>
            <xsd:enumeration value="RELIABILITY CANNOT BE JUDGED"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="CredibilityType">
        <xsd:annotation>
            <xsd:documentation> Contains text describing the credibility of the JBFSA track's
                positional data. Credibility is defined as the specific value that represents, for
                normal operational use, the degree of trustworthiness of the data in the
                positionalData section.<br/> This entity must be populated with one of the listed
                set of values. </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="CONFIRMED BY OTHER SOURCES"/>
            <xsd:enumeration value="PROBABLY TRUE"/>
            <xsd:enumeration value="POSSIBLY TRUE"/>
            <xsd:enumeration value="DOUBTFULLY TRUE"/>
            <xsd:enumeration value="IMPROBABLE"/>
            <xsd:enumeration value="TRUTH CANNOT BE JUDGED"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:complexType name="RemarksDetailsType">
        <xsd:annotation>
            <xsd:documentation> Contains up to four remark text entries for the JBFSA track.<br/> A
                remark can contain any additional information that is deemed necessary by a data
                producer to accompany the JBFSA track. </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element name="remarkText" type="RemarksType" minOccurs="1" maxOccurs="4"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:simpleType name="RemarksType">
        <xsd:annotation>
            <xsd:documentation> Contains a single remark text entry associated with the JBFSA track.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="60"/>
            <xsd:pattern value="[^&lt;&gt;&amp;&quot;#%\\]{1,60}"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="FieldType">
        <xsd:annotation>
            <xsd:documentation> Contains the name of a field that is associated with a field that
                does not exist in this schema. </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="60"/>
            <xsd:pattern value="[^&lt;&gt;&amp;&quot;#%\\]{1,60}"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="ValueType">
        <xsd:annotation>
            <xsd:documentation> Contains the data value of a field that is associated with a field
                that does not exist in this schema. </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="60"/>
            <xsd:pattern value="[^&lt;&gt;&amp;&quot;#%\\]{1,60}"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:complexType name="AdditionalDataType">
        <xsd:annotation>
            <xsd:documentation> The AdditionalDataType is provided for extensibility of this schema.
                The entity consists of a field/value pair that is required to be part of the
                payload, but has not yet been formally added to a version of this
            schema.</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element name="field" type="FieldType" minOccurs="1" maxOccurs="1"/>
            <xsd:element name="value" type="ValueType" minOccurs="1" maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>
</xsd:schema>
