123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291 |
- <?xml version="1.0" encoding="ISO-8859-1" ?>
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <!-- definition of simple elements -->
- <xs:element name="include" type="xs:anyURI"/>
- <xs:element name="version" type="xs:unsignedByte"/>
- <xs:element name="dialect" type="xs:unsignedByte"/>
- <xs:element name="description" type="xs:string"/>
- <!-- definition of attributes -->
- <xs:attribute name="name"> <!-- used in enum,entry,message,field elements -->
- </xs:attribute>
- <xs:attribute name="id" type="xs:unsignedShort"/> <!-- used in message elements -->
- <xs:attribute name="print_format" type="xs:string"/> <!-- used in field elements -->
- <xs:attribute name="enum" type="xs:string"/> <!-- used in field,param elements -->
- <xs:attribute name="display" type="xs:string"/> <!-- used in field elements -->
- <xs:attribute name="units" type="SI_Unit"/> <!-- this will get changed on the fly to xs:string if no strict-units command line option is used -->
- <xs:attribute name="value"> <!-- used in entry elements -->
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:pattern value="\d{1,10}"/> <!-- base 10 int -->
- <xs:pattern value="0[xX][0-9a-fA-F]{1,8}"/> <!-- base 16 -->
- <xs:pattern value="0[bB][0-1]{1,32}"/> <!-- base 1 -->
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="default"> <!-- used in field elements -->
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:pattern value="\d{1,10}"/> <!-- base 10 int -->
- <xs:pattern value="0[xX][0-9a-fA-F]{1,8}"/> <!-- base 16 -->
- <xs:pattern value="0[bB][0-1]{1,32}"/> <!-- base 1 -->
- <xs:pattern value="NaN"/> <!-- Allow not-a-number as a default (for params) -->
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="type"> <!-- used in field elements -->
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:pattern value="float(\[([0-9])+\])?"/>
- <xs:pattern value="double(\[([0-9])+\])?"/>
- <xs:pattern value="char(\[([0-9])+\])?"/>
- <xs:pattern value="int8_t(\[([0-9])+\])?"/>
- <xs:pattern value="uint8_t(\[([0-9])+\])?"/>
- <xs:pattern value="uint8_t_mavlink_version"/>
- <xs:pattern value="int16_t(\[([0-9])+\])?"/>
- <xs:pattern value="uint16_t(\[([0-9])+\])?"/>
- <xs:pattern value="int32_t(\[([0-9])+\])?"/>
- <xs:pattern value="uint32_t(\[([0-9])+\])?"/>
- <xs:pattern value="int64_t(\[([0-9])+\])?"/>
- <xs:pattern value="uint64_t(\[([0-9])+\])?"/>
- <xs:pattern value="array\[[0-9]+\]"/> <!-- 0.9 compatibility -->
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="since"> <!-- used in deprecated elements -->
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:pattern value="(20)\d{2}-(0[1-9]|1[012])"/> <!-- restrict dates to 20YY-MM format -->
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="replaced_by" type="xs:string"/> <!-- used in deprecated elements -->
- <xs:simpleType name="SI_Unit">
- <xs:restriction base="xs:string">
- <!-- time -->
- <xs:enumeration value="s"/> <!-- seconds -->
- <xs:enumeration value="ds"/> <!-- deciseconds -->
- <xs:enumeration value="cs"/> <!-- centiseconds -->
- <xs:enumeration value="ms"/> <!-- milliseconds -->
- <xs:enumeration value="us"/> <!-- microseconds -->
- <xs:enumeration value="Hz"/> <!-- Herz -->
- <xs:enumeration value="MHz"/> <!-- Mega-Herz -->
- <!-- distance -->
- <xs:enumeration value="km"/> <!-- kilometres -->
- <xs:enumeration value="dam"/> <!-- decametres -->
- <xs:enumeration value="m"/> <!-- metres -->
- <xs:enumeration value="m/s"/> <!-- metres per second -->
- <xs:enumeration value="m/s/s"/> <!-- metres per second per second -->
- <xs:enumeration value="m/s*5"/> <!-- metres per second * 5 required from dagar for HIGH_LATENCY2 message -->
- <xs:enumeration value="dm"/> <!-- decimetres -->
- <xs:enumeration value="dm/s"/> <!-- decimetres per second -->
- <xs:enumeration value="cm"/> <!-- centimetres -->
- <xs:enumeration value="cm^2"/> <!-- centimetres squared (typically used in variance) -->
- <xs:enumeration value="cm/s"/> <!-- centimetres per second -->
- <xs:enumeration value="mm"/> <!-- millimetres -->
- <xs:enumeration value="mm/s"/> <!-- millimetres per second -->
- <xs:enumeration value="mm/h"/> <!-- millimetres per hour -->
- <!-- temperature -->
- <xs:enumeration value="K"/> <!-- Kelvin -->
- <xs:enumeration value="degC"/> <!-- degrees Celsius -->
- <xs:enumeration value="cdegC"/> <!-- centi degrees Celsius -->
- <!-- angle -->
- <xs:enumeration value="rad"/> <!-- radians -->
- <xs:enumeration value="rad/s"/> <!-- radians per second -->
- <xs:enumeration value="mrad/s"/> <!-- milli-radians per second -->
- <xs:enumeration value="deg"/> <!-- degrees -->
- <xs:enumeration value="deg/2"/> <!-- degrees/2 required from dagar for HIGH_LATENCY2 message-->
- <xs:enumeration value="deg/s"/> <!-- degrees per second -->
- <xs:enumeration value="cdeg"/> <!-- centidegrees -->
- <xs:enumeration value="degE5"/> <!-- degrees * 10E5 -->
- <xs:enumeration value="degE7"/> <!-- degrees * 10E7 -->
- <xs:enumeration value="rpm"/> <!-- rotations per second -->
- <!-- electricity -->
- <xs:enumeration value="V"/> <!-- Volt -->
- <xs:enumeration value="cV"/> <!-- centi-Volt -->
- <xs:enumeration value="mV"/> <!-- milli-Volt -->
- <xs:enumeration value="A"/> <!-- Ampere -->
- <xs:enumeration value="cA"/> <!-- centi-Ampere -->
- <xs:enumeration value="mA"/> <!-- milli-Ampere -->
- <xs:enumeration value="mAh"/> <!-- milli-Ampere hour -->
- <!-- magnetism -->
- <xs:enumeration value="mT"/> <!-- milli-Tesla -->
- <xs:enumeration value="gauss"/> <!-- Gauss -->
- <xs:enumeration value="mgauss"/> <!-- milli-Gauss -->
- <!-- energy -->
- <xs:enumeration value="hJ"/> <!-- hecto-Joule -->
- <!-- force -->
- <xs:enumeration value="mG"/> <!-- milli-G -->
- <!-- mass -->
- <xs:enumeration value="g"/> <!-- grams -->
- <!-- pressure -->
- <xs:enumeration value="Pa"/> <!-- Pascal -->
- <xs:enumeration value="hPa"/> <!-- hecto-Pascal -->
- <xs:enumeration value="mbar"/> <!-- millibar -->
- <!-- ratio -->
- <xs:enumeration value="%"/> <!-- percent -->
- <xs:enumeration value="d%"/> <!-- decipercent -->
- <xs:enumeration value="c%"/> <!-- centipercent -->
- <xs:enumeration value="dB"/> <!-- Deci-Bell -->
- <xs:enumeration value="dBm"/> <!-- Deci-Bell-milliwatts-->
- <!-- digital -->
- <xs:enumeration value="KiB"/> <!-- Kibibyte (1024 bytes) -->
- <xs:enumeration value="KiB/s"/> <!-- Kibibyte (1024 bytes) per second -->
- <xs:enumeration value="MiB"/> <!-- Mebibyte (1024*1024 bytes) -->
- <xs:enumeration value="MiB/s"/> <!-- Mebibyte (1024*1024 bytes) per second -->
- <xs:enumeration value="bytes"/> <!-- bytes -->
- <xs:enumeration value="bytes/s"/> <!-- bytes per second-->
- <xs:enumeration value="bits/s"/> <!-- bits per second -->
- <xs:enumeration value="pix"/> <!-- pixels -->
- <xs:enumeration value="dpix"/> <!-- decipixels -->
- </xs:restriction>
- </xs:simpleType>
- <!-- definition param elements attributes (like the ones used on MAV_CMD for example) -->
- <xs:attribute name="index" type="xs:unsignedByte"/> <!-- parameter index -->
- <xs:attribute name="label" type="xs:string"/> <!-- parameter label (name) -->
- <xs:attribute name="decimalPlaces" type="xs:unsignedByte"/> <!-- parameter number of decimal places to be displayed in the GUI -->
- <xs:attribute name="increment" type="xs:float"/> <!-- parameter increment -->
- <xs:attribute name="minValue" type="xs:float"/> <!-- parameter minimum value -->
- <xs:attribute name="maxValue" type="xs:float"/> <!-- parameter maximum value -->
- <xs:attribute name="reserved" type="xs:boolean" default="false"/> <!-- parameter is reserved -->
- <!-- definition entry elements attributes (like the ones used on MAV_CMD for example) -->
- <xs:attribute name="hasLocation" type="xs:boolean" default="true"/> <!-- entry has lat/lon/alt location -->
- <xs:attribute name="isDestination" type="xs:boolean" default="true"/> <!-- entry is a destination -->
- <!-- definition of complex elements -->
- <xs:element name="param">
- <xs:complexType mixed="true">
- <xs:attribute ref="index" use="required"/>
- <xs:attribute ref="label"/>
- <xs:attribute ref="units"/>
- <xs:attribute ref="enum" />
- <xs:attribute ref="decimalPlaces"/>
- <xs:attribute ref="increment"/>
- <xs:attribute ref="minValue"/>
- <xs:attribute ref="maxValue"/>
- <xs:attribute ref="reserved"/>
- <xs:attribute ref="default"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="deprecated">
- <xs:complexType mixed="true">
- <xs:sequence>
- <xs:element ref="description" minOccurs="0"/>
- </xs:sequence>
- <xs:attribute ref="since" use="required"/>
- <xs:attribute ref="replaced_by" use="required"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="wip">
- <xs:complexType mixed="true">
- <xs:sequence>
- <xs:element ref="description" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="field">
- <xs:complexType mixed="true">
- <xs:sequence>
- <xs:element ref="description" minOccurs="0"/>
- </xs:sequence>
- <xs:attribute ref="type" use="required"/>
- <xs:attribute ref="name" use="required"/>
- <xs:attribute ref="print_format" />
- <xs:attribute ref="enum" />
- <xs:attribute ref="display" />
- <xs:attribute ref="units" />
- <xs:attribute ref="default" />
- </xs:complexType>
- </xs:element>
- <xs:element name="extensions">
- </xs:element>
- <xs:element name="entry">
- <xs:complexType>
- <xs:sequence>
- <xs:choice minOccurs="0" maxOccurs="1">
- <xs:element ref="deprecated"/>
- <xs:element ref="wip"/>
- </xs:choice>
- <xs:element ref="description" minOccurs="0"/>
- <xs:element ref="param" minOccurs="0" maxOccurs="unbounded" />
- </xs:sequence>
- <xs:attribute ref="value" />
- <xs:attribute ref="name" use="required"/>
- <xs:attribute ref="hasLocation"/>
- <xs:attribute ref="isDestination"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="enum">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="deprecated" minOccurs="0" maxOccurs="1"/>
- <xs:element ref="description" minOccurs="0"/>
- <xs:element ref="entry" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute ref="name" use="required"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="message">
- <xs:complexType>
- <xs:sequence>
- <xs:sequence minOccurs="1" maxOccurs="1">
- <xs:choice minOccurs="0" maxOccurs="1">
- <xs:element ref="deprecated"/>
- <xs:element ref="wip"/>
- </xs:choice>
- <xs:element ref="description" minOccurs="1" maxOccurs="1"/>
- <xs:element ref="field" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <!-- MavLink 2.0 extensions are optional hence minOccurs="0" -->
- <xs:sequence minOccurs="0" maxOccurs="1">
- <xs:element ref="extensions" minOccurs="1" maxOccurs="1"/>
- <xs:element ref="field" minOccurs="1" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:sequence>
- <xs:attribute ref="id" use="required"/>
- <xs:attribute ref="name" use="required"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="enums">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="enum" maxOccurs="unbounded" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="messages">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="message" maxOccurs="unbounded" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="mavlink">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="include" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="version" minOccurs="0"/>
- <xs:element ref="dialect" minOccurs="0"/>
- <xs:element ref="enums" minOccurs="0"/>
- <xs:element ref="messages"/>
- </xs:sequence>
- <xs:attribute name="file" type="xs:anyURI"/>
- </xs:complexType>
- </xs:element>
- </xs:schema>
|