mirror of
https://github.com/iNavFlight/inav.git
synced 2025-07-24 16:55:29 +03:00
132 lines
4.5 KiB
XML
132 lines
4.5 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||
elementFormDefault="qualified">
|
||
<!-- XSchema for MW / iNav missions
|
||
e.g. xmllint --format --schema mw-mission.xsd example.mission
|
||
-->
|
||
<xs:element name="mission">
|
||
<xs:complexType>
|
||
<xs:sequence>
|
||
<xs:element ref="version"/>
|
||
<xs:element ref="mwp" minOccurs="0" maxOccurs="unbounded"/>
|
||
<xs:element maxOccurs="unbounded" ref="missionitem"/>
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<xs:element name="version">
|
||
<xs:complexType>
|
||
<xs:attribute name="value" use="required"/>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<!-- mwp extension -->
|
||
<xs:element name="mwp">
|
||
<xs:complexType>
|
||
<xs:sequence>
|
||
<xs:element ref="details" minOccurs="0"/>
|
||
</xs:sequence>
|
||
<xs:attribute name="cx" type="xs:decimal"/>
|
||
<xs:attribute name="cy" type="xs:decimal"/>
|
||
<xs:attribute name="home-x" type="xs:decimal"/>
|
||
<xs:attribute name="home-y" type="xs:decimal"/>
|
||
<xs:attribute name="save-date" use="required" />
|
||
<xs:attribute name="generator" type="xs:string"/>
|
||
<xs:attribute name="zoom">
|
||
<xs:simpleType>
|
||
<xs:restriction base="xs:integer">
|
||
<xs:minInclusive value="0"/>
|
||
<xs:maxInclusive value="20"/>
|
||
</xs:restriction>
|
||
</xs:simpleType>
|
||
</xs:attribute>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<xs:element name="details">
|
||
<xs:complexType>
|
||
<xs:sequence>
|
||
<xs:element ref="distance" minOccurs="0"/>
|
||
<xs:element ref="nav-speed" minOccurs="0"/>
|
||
<xs:element ref="fly-time" minOccurs="0"/>
|
||
<xs:element ref="loiter-time" minOccurs="0"/>
|
||
</xs:sequence>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<xs:element name="distance">
|
||
<xs:complexType>
|
||
<xs:attribute name="units" use="required" type="xs:NCName"/>
|
||
<xs:attribute name="value" use="required" type="xs:decimal"/>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<xs:element name="nav-speed">
|
||
<xs:complexType>
|
||
<xs:attribute name="units" use="required"/>
|
||
<xs:attribute name="value" use="required" type="xs:decimal"/>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<xs:element name="fly-time">
|
||
<xs:complexType>
|
||
<xs:attribute name="units" use="required" type="xs:NCName"/>
|
||
<xs:attribute name="value" use="required" type="xs:integer"/>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<xs:element name="loiter-time">
|
||
<xs:complexType>
|
||
<xs:attribute name="units" use="required" type="xs:NCName"/>
|
||
<xs:attribute name="value" use="required" type="xs:integer"/>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
<xs:element name="missionitem">
|
||
<xs:complexType>
|
||
<xs:attribute name="action" use="required">
|
||
<xs:simpleType>
|
||
<xs:restriction base="xs:token">
|
||
<xs:enumeration value="UNASSIGNED"/>
|
||
<xs:enumeration value="WAYPOINT"/>
|
||
<xs:enumeration value="POSHOLD_UNLIM"/>
|
||
<xs:enumeration value="POSHOLD_TIME"/>
|
||
<xs:enumeration value="RTH"/>
|
||
<xs:enumeration value="SET_POI"/>
|
||
<xs:enumeration value="JUMP"/>
|
||
<xs:enumeration value="SET_HEAD"/>
|
||
<xs:enumeration value="LAND"/>
|
||
</xs:restriction>
|
||
</xs:simpleType>
|
||
</xs:attribute>
|
||
<!-- no min,max as may be AMSL -->
|
||
<xs:attribute name="alt" use="required" type="xs:integer"/>
|
||
|
||
<!--
|
||
Locations are decimal degrees, WGS84 (EPSG:4326)
|
||
-->
|
||
<xs:attribute name="lat" use="required">
|
||
<xs:simpleType>
|
||
<xs:restriction base="xs:decimal">
|
||
<xs:minInclusive value="-90"/>
|
||
<xs:maxInclusive value="90"/>
|
||
</xs:restriction>
|
||
</xs:simpleType>
|
||
</xs:attribute>
|
||
<xs:attribute name="lon" use="required">
|
||
<xs:simpleType>
|
||
<xs:restriction base="xs:decimal">
|
||
<xs:minInclusive value="-180"/>
|
||
<xs:maxInclusive value="180"/>
|
||
</xs:restriction>
|
||
</xs:simpleType>
|
||
</xs:attribute>
|
||
<xs:attribute name="no" use="required" type="xs:integer"/>
|
||
<xs:attribute name="parameter1" use="required" type="xs:integer"/>
|
||
<xs:attribute name="parameter2" use="required" type="xs:integer"/>
|
||
<xs:attribute name="parameter3" type="xs:integer"/>
|
||
<!--
|
||
flag is not strictly required unless the WP is "Flyby Home"
|
||
or the are multiple mission segments 'multi-mission', inav 4.0
|
||
-->
|
||
<xs:attribute name="flag" use="optional" type="xs:integer"/>
|
||
</xs:complexType>
|
||
</xs:element>
|
||
|
||
<xs:element name="MISSION" substitutionGroup="mission"/>
|
||
<xs:element name="MISSIONITEM" substitutionGroup="missionitem"/>
|
||
<xs:element name="VERSION" substitutionGroup="version"/>
|
||
|
||
</xs:schema>
|