692 lines
30 KiB
XML
692 lines
30 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
|
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en">
|
|
Radio data schema for companion9x.
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
|
|
<xs:simpleType name="CalibrationValue">
|
|
<xs:restriction base="xs:int">
|
|
<xs:minInclusive value="-125"/>
|
|
<xs:maxInclusive value="125"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<xs:complexType name="Calibration">
|
|
<xs:attribute name="middle" type="CalibrationValue" use="required"/>
|
|
<xs:attribute name="negative" type="CalibrationValue" use="required"/>
|
|
<xs:attribute name="positive" type="CalibrationValue" use="required"/>
|
|
</xs:complexType>
|
|
|
|
<xs:complexType name="PPMCalibration">
|
|
<xs:attribute name="middle" type="CalibrationValue" use="required"/>
|
|
</xs:complexType>
|
|
|
|
<xs:simpleType name="Switch">
|
|
<xs:restriction base="xs:string">
|
|
<!-- TODO accepter minuscules/majuscules -->
|
|
<xs:enumeration value="OFF"/>
|
|
<xs:enumeration value="!SWC"/>
|
|
<xs:enumeration value="!SWB"/>
|
|
<xs:enumeration value="!SWA"/>
|
|
<xs:enumeration value="!SW9"/>
|
|
<xs:enumeration value="!SW8"/>
|
|
<xs:enumeration value="!SW7"/>
|
|
<xs:enumeration value="!SW6"/>
|
|
<xs:enumeration value="!SW5"/>
|
|
<xs:enumeration value="!SW4"/>
|
|
<xs:enumeration value="!SW3"/>
|
|
<xs:enumeration value="!SW2"/>
|
|
<xs:enumeration value="!SW1"/>
|
|
<xs:enumeration value="!TRN"/>
|
|
<xs:enumeration value="!GEA"/>
|
|
<xs:enumeration value="!AIL"/>
|
|
<xs:enumeration value="!ID2"/>
|
|
<xs:enumeration value="!ID1"/>
|
|
<xs:enumeration value="!ID0"/>
|
|
<xs:enumeration value="!ELE"/>
|
|
<xs:enumeration value="!RUD"/>
|
|
<xs:enumeration value="!THR"/>
|
|
<!-- 0 -->
|
|
<xs:enumeration value="THR"/>
|
|
<xs:enumeration value="RUD"/>
|
|
<xs:enumeration value="ELE"/>
|
|
<xs:enumeration value="ID0"/>
|
|
<xs:enumeration value="ID1"/>
|
|
<xs:enumeration value="ID2"/>
|
|
<xs:enumeration value="AIL"/>
|
|
<xs:enumeration value="GEA"/>
|
|
<xs:enumeration value="TRN"/>
|
|
<xs:enumeration value="SW1"/>
|
|
<xs:enumeration value="SW2"/>
|
|
<xs:enumeration value="SW3"/>
|
|
<xs:enumeration value="SW4"/>
|
|
<xs:enumeration value="SW5"/>
|
|
<xs:enumeration value="SW6"/>
|
|
<xs:enumeration value="SW7"/>
|
|
<xs:enumeration value="SW8"/>
|
|
<xs:enumeration value="SW9"/>
|
|
<xs:enumeration value="SWA"/>
|
|
<xs:enumeration value="SWB"/>
|
|
<xs:enumeration value="SWC"/>
|
|
<xs:enumeration value="ON"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<xs:simpleType name="TimerSwitch">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="!mSWC"/>
|
|
<xs:enumeration value="!mSWB"/>
|
|
<xs:enumeration value="!mSWA"/>
|
|
<xs:enumeration value="!mSW9"/>
|
|
<xs:enumeration value="!mSW8"/>
|
|
<xs:enumeration value="!mSW7"/>
|
|
<xs:enumeration value="!mSW6"/>
|
|
<xs:enumeration value="!mSW5"/>
|
|
<xs:enumeration value="!mSW4"/>
|
|
<xs:enumeration value="!mSW3"/>
|
|
<xs:enumeration value="!mSW2"/>
|
|
<xs:enumeration value="!mSW1"/>
|
|
<xs:enumeration value="!mTRN"/>
|
|
<xs:enumeration value="!mGEA"/>
|
|
<xs:enumeration value="!mAIL"/>
|
|
<xs:enumeration value="!mID2"/>
|
|
<xs:enumeration value="!mID1"/>
|
|
<xs:enumeration value="!mID0"/>
|
|
<xs:enumeration value="!mELE"/>
|
|
<xs:enumeration value="!mRUD"/>
|
|
<xs:enumeration value="!mTHR"/>
|
|
<xs:enumeration value="!SWC"/>
|
|
<xs:enumeration value="!SWB"/>
|
|
<xs:enumeration value="!SWA"/>
|
|
<xs:enumeration value="!SW9"/>
|
|
<xs:enumeration value="!SW8"/>
|
|
<xs:enumeration value="!SW7"/>
|
|
<xs:enumeration value="!SW6"/>
|
|
<xs:enumeration value="!SW5"/>
|
|
<xs:enumeration value="!SW4"/>
|
|
<xs:enumeration value="!SW3"/>
|
|
<xs:enumeration value="!SW2"/>
|
|
<xs:enumeration value="!SW1"/>
|
|
<xs:enumeration value="!TRN"/>
|
|
<xs:enumeration value="!GEA"/>
|
|
<xs:enumeration value="!AIL"/>
|
|
<xs:enumeration value="!ID2"/>
|
|
<xs:enumeration value="!ID1"/>
|
|
<xs:enumeration value="!ID0"/>
|
|
<xs:enumeration value="!ELE"/>
|
|
<xs:enumeration value="!RUD"/>
|
|
<xs:enumeration value="!THR"/>
|
|
<xs:enumeration value="!P3%"/>
|
|
<xs:enumeration value="!P3"/>
|
|
<xs:enumeration value="!P2%"/>
|
|
<xs:enumeration value="!P2"/>
|
|
<xs:enumeration value="!P1%"/>
|
|
<xs:enumeration value="!P1"/>
|
|
<xs:enumeration value="!AL%"/>
|
|
<xs:enumeration value="!ALs"/>
|
|
<xs:enumeration value="!TH%"/>
|
|
<xs:enumeration value="!THs"/>
|
|
<xs:enumeration value="!EL%"/>
|
|
<xs:enumeration value="!ELs"/>
|
|
<xs:enumeration value="!RU%"/>
|
|
<xs:enumeration value="!RUs"/>
|
|
<xs:enumeration value="!ABS"/>
|
|
<!-- TODO on affiche 2x ABS -->
|
|
<xs:enumeration value="OFF"/>
|
|
<!-- TODO a retirer + decalage -->
|
|
<xs:enumeration value="ABS"/>
|
|
<xs:enumeration value="RUs"/>
|
|
<xs:enumeration value="RU%"/>
|
|
<xs:enumeration value="ELs"/>
|
|
<xs:enumeration value="EL%"/>
|
|
<xs:enumeration value="THs"/>
|
|
<xs:enumeration value="TH%"/>
|
|
<xs:enumeration value="ALs"/>
|
|
<xs:enumeration value="AL%"/>
|
|
<xs:enumeration value="P1"/>
|
|
<xs:enumeration value="P1%"/>
|
|
<xs:enumeration value="P2"/>
|
|
<xs:enumeration value="P2%"/>
|
|
<xs:enumeration value="P3"/>
|
|
<xs:enumeration value="P3%"/>
|
|
<xs:enumeration value="THR"/>
|
|
<xs:enumeration value="RUD"/>
|
|
<xs:enumeration value="ELE"/>
|
|
<xs:enumeration value="ID0"/>
|
|
<xs:enumeration value="ID1"/>
|
|
<xs:enumeration value="ID2"/>
|
|
<xs:enumeration value="AIL"/>
|
|
<xs:enumeration value="GEA"/>
|
|
<xs:enumeration value="TRN"/>
|
|
<xs:enumeration value="SW1"/>
|
|
<xs:enumeration value="SW2"/>
|
|
<xs:enumeration value="SW3"/>
|
|
<xs:enumeration value="SW4"/>
|
|
<xs:enumeration value="SW5"/>
|
|
<xs:enumeration value="SW6"/>
|
|
<xs:enumeration value="SW7"/>
|
|
<xs:enumeration value="SW8"/>
|
|
<xs:enumeration value="SW9"/>
|
|
<xs:enumeration value="SWA"/>
|
|
<xs:enumeration value="SWB"/>
|
|
<xs:enumeration value="SWC"/>
|
|
<xs:enumeration value="mTHR"/>
|
|
<xs:enumeration value="mRUD"/>
|
|
<xs:enumeration value="mELE"/>
|
|
<xs:enumeration value="mID0"/>
|
|
<xs:enumeration value="mID1"/>
|
|
<xs:enumeration value="mID2"/>
|
|
<xs:enumeration value="mAIL"/>
|
|
<xs:enumeration value="mGEA"/>
|
|
<xs:enumeration value="mTRN"/>
|
|
<xs:enumeration value="mSW1"/>
|
|
<xs:enumeration value="mSW2"/>
|
|
<xs:enumeration value="mSW3"/>
|
|
<xs:enumeration value="mSW4"/>
|
|
<xs:enumeration value="mSW5"/>
|
|
<xs:enumeration value="mSW6"/>
|
|
<xs:enumeration value="mSW7"/>
|
|
<xs:enumeration value="mSW8"/>
|
|
<xs:enumeration value="mSW9"/>
|
|
<xs:enumeration value="mSWA"/>
|
|
<xs:enumeration value="mSWB"/>
|
|
<xs:enumeration value="mSWC"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<xs:simpleType name="Source">
|
|
<xs:restriction base="xs:string">
|
|
<!-- TODO accepter minuscules/majuscules -->
|
|
<xs:enumeration value="RUD"/>
|
|
<xs:enumeration value="THR"/>
|
|
<xs:enumeration value="ELE"/>
|
|
<xs:enumeration value="AIL"/>
|
|
<xs:enumeration value="P1"/>
|
|
<xs:enumeration value="P2"/>
|
|
<xs:enumeration value="P3"/>
|
|
<xs:enumeration value="MAX"/>
|
|
<xs:enumeration value="FULL"/>
|
|
<xs:enumeration value="CYC1"/>
|
|
<xs:enumeration value="CYC2"/>
|
|
<xs:enumeration value="CYC3"/>
|
|
<xs:enumeration value="PPM1"/>
|
|
<xs:enumeration value="PPM2"/>
|
|
<xs:enumeration value="PPM3"/>
|
|
<xs:enumeration value="PPM4"/>
|
|
<xs:enumeration value="PPM5"/>
|
|
<xs:enumeration value="PPM6"/>
|
|
<xs:enumeration value="PPM7"/>
|
|
<xs:enumeration value="PPM8"/>
|
|
<xs:enumeration value="CH1"/>
|
|
<xs:enumeration value="CH2"/>
|
|
<xs:enumeration value="CH3"/>
|
|
<xs:enumeration value="CH4"/>
|
|
<xs:enumeration value="CH5"/>
|
|
<xs:enumeration value="CH6"/>
|
|
<xs:enumeration value="CH7"/>
|
|
<xs:enumeration value="CH8"/>
|
|
<xs:enumeration value="CH9"/>
|
|
<xs:enumeration value="CH10"/>
|
|
<xs:enumeration value="CH11"/>
|
|
<xs:enumeration value="CH12"/>
|
|
<xs:enumeration value="CH13"/>
|
|
<xs:enumeration value="CH14"/>
|
|
<xs:enumeration value="CH15"/>
|
|
<xs:enumeration value="CH16"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<xs:simpleType name="Output">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="CH1"/>
|
|
<xs:enumeration value="CH2"/>
|
|
<xs:enumeration value="CH3"/>
|
|
<xs:enumeration value="CH4"/>
|
|
<xs:enumeration value="CH5"/>
|
|
<xs:enumeration value="CH6"/>
|
|
<xs:enumeration value="CH7"/>
|
|
<xs:enumeration value="CH8"/>
|
|
<xs:enumeration value="CH9"/>
|
|
<xs:enumeration value="CH10"/>
|
|
<xs:enumeration value="CH11"/>
|
|
<xs:enumeration value="CH12"/>
|
|
<xs:enumeration value="CH13"/>
|
|
<xs:enumeration value="CH14"/>
|
|
<xs:enumeration value="CH15"/>
|
|
<xs:enumeration value="CH16"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<xs:simpleType name="Stick">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="rudder"/>
|
|
<xs:enumeration value="aileron"/>
|
|
<xs:enumeration value="elevator"/>
|
|
<xs:enumeration value="throttle"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<xs:simpleType name="Weight100">
|
|
<xs:restriction base="xs:int">
|
|
<xs:minInclusive value="-100"/>
|
|
<xs:maxInclusive value="100"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<xs:simpleType name="Weight125">
|
|
<xs:restriction base="xs:int">
|
|
<xs:minInclusive value="-125"/>
|
|
<xs:maxInclusive value="125"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<xs:simpleType name="TrimValue">
|
|
<xs:restriction base="xs:int">
|
|
<xs:minInclusive value="-1024"/>
|
|
<xs:maxInclusive value="+1024"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<xs:complexType name="TrimType">
|
|
<xs:attribute name="phaseRef" type="xs:int"/>
|
|
<!-- TODO either phaseRef or value -->
|
|
<xs:attribute name="value" type="TrimValue"/>
|
|
</xs:complexType>
|
|
<!-- TODO <xs:key name="phaseRef">
|
|
<xs:selector xpath="model/phases/phase"/>
|
|
<xs:field xpath="@id"/>
|
|
</xs:key> -->
|
|
|
|
|
|
<xs:element name="radio">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="global-settings" minOccurs="0">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="calibration" minOccurs="0">
|
|
<xs:complexType>
|
|
<xs:all>
|
|
<xs:element name="rudder" type="Calibration"/>
|
|
<xs:element name="throttle" type="Calibration"/>
|
|
<xs:element name="aileron" type="Calibration"/>
|
|
<xs:element name="elevator" type="Calibration"/>
|
|
<xs:element name="p1" type="Calibration"/>
|
|
<xs:element name="p2" type="Calibration"/>
|
|
<xs:element name="p3" type="Calibration"/>
|
|
</xs:all>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
<xs:element name="contrast" type="xs:unsignedByte" minOccurs="0"/>
|
|
|
|
<xs:element name="battery" minOccurs="0">
|
|
<xs:complexType>
|
|
<xs:attribute name="calibration" type="xs:unsignedByte" use="required"/>
|
|
<xs:attribute name="warning" type="xs:unsignedByte" use="required"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
<xs:element name="light-switch" type="Switch" minOccurs="0"/>
|
|
|
|
<xs:element name="ppm-input-calibration" minOccurs="0">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="multiplier" type="xs:int"/>
|
|
<xs:element name="ch1" type="PPMCalibration"/>
|
|
<xs:element name="ch2" type="PPMCalibration"/>
|
|
<xs:element name="ch3" type="PPMCalibration"/>
|
|
<xs:element name="ch4" type="PPMCalibration"/>
|
|
<!-- <xs:element name="ch5" type="PPMCalibration"/>
|
|
<xs:element name="ch6" type="PPMCalibration"/>
|
|
<xs:element name="ch7" type="PPMCalibration"/>
|
|
<xs:element name="ch8" type="PPMCalibration"/> //-->
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="view" type="xs:unsignedByte" minOccurs="0"/>
|
|
<!-- switch -->
|
|
<xs:element name="beeper" type="xs:unsignedByte" minOccurs="0"/>
|
|
<!-- switch -->
|
|
<xs:element name="inactivity-timer" type="xs:byte" minOccurs="0"/>
|
|
<xs:element name="timer-beeps" minOccurs="0">
|
|
<xs:complexType>
|
|
<xs:attribute name="minute" type="xs:boolean"/>
|
|
<xs:attribute name="countdown" type="xs:boolean"/>
|
|
<xs:attribute name="screen-flash" type="xs:boolean"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="splash-screen" type="xs:boolean" minOccurs="0"/>
|
|
<xs:element name="filter-input" minOccurs="0">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="single"/>
|
|
<xs:enumeration value="oversample"/>
|
|
<xs:enumeration value="filter"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:element>
|
|
<xs:element name="light-auto-off-timer" type="xs:unsignedByte" minOccurs="0"/>
|
|
<xs:element name="default-channel-order" type="xs:unsignedByte" minOccurs="0"/>
|
|
<xs:element name="PPM_Multiplier" type="xs:byte" minOccurs="0"/>
|
|
<xs:element name="owner-name" type="xs:string" minOccurs="0"/>
|
|
<xs:element name="sticks" minOccurs="0">
|
|
<xs:complexType>
|
|
<xs:attribute name="mode" type="xs:unsignedByte" use="required"/>
|
|
<xs:attribute name="throttle-reverse" type="xs:boolean"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="warnings" minOccurs="0">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="warning" minOccurs="0" maxOccurs="unbounded">
|
|
<xs:complexType>
|
|
<xs:attribute name="name" use="required" >
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:NMTOKEN">
|
|
<xs:enumeration value="throttle"/>
|
|
<xs:enumeration value="switchs"/>
|
|
<xs:enumeration value="memory"/>
|
|
<xs:enumeration value="silent"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
<xs:attribute name="value" type="xs:boolean" use="required"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
<xs:element name="models" minOccurs="0">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="model" minOccurs="0" maxOccurs="unbounded">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="name" type="xs:normalizedString"/>
|
|
<xs:element name="timer" minOccurs="0" maxOccurs="unbounded">
|
|
<xs:complexType>
|
|
<xs:attribute name="mode" type="TimerSwitch" use="required"/>
|
|
<xs:attribute name="direction" use="required">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="down"/>
|
|
<xs:enumeration value="up"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
<xs:attribute name="value" type="xs:time" use="required"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="modulation" minOccurs="0">
|
|
<xs:complexType>
|
|
<xs:attribute name="type">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:string">
|
|
<!-- TODO accepter minuscules/majuscules -->
|
|
<xs:enumeration value="PPM"/>
|
|
<xs:enumeration value="PCM"/>
|
|
<xs:enumeration value="Silver A"/>
|
|
<xs:enumeration value="Silver B"/>
|
|
<xs:enumeration value="Silver C"/>
|
|
<xs:enumeration value="Trac 09"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
<xs:attribute name="channels">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:nonNegativeInteger">
|
|
<xs:maxExclusive value="17"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
<xs:attribute name="delay" type="xs:nonNegativeInteger"/>
|
|
<xs:attribute name="polarity">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="positive"/>
|
|
<xs:enumeration value="negative"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="trims" minOccurs="0">
|
|
<xs:complexType>
|
|
<xs:attribute name="extended" type="xs:boolean"/>
|
|
<xs:attribute name="inc">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="exponential"/>
|
|
<xs:enumeration value="extra-fine"/>
|
|
<xs:enumeration value="fine"/>
|
|
<xs:enumeration value="medium"/>
|
|
<xs:enumeration value="coarse"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
<xs:attribute name="throttleTrim" type="xs:boolean"/>
|
|
<xs:attribute name="throttleTrimExpo" type="xs:boolean"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="centerBeep" minOccurs="0">
|
|
<xs:complexType>
|
|
<xs:attribute name="rudder" type="xs:boolean"/>
|
|
<xs:attribute name="elevator" type="xs:boolean"/>
|
|
<xs:attribute name="throttle" type="xs:boolean"/>
|
|
<xs:attribute name="aileron" type="xs:boolean"/>
|
|
<xs:attribute name="p1" type="xs:boolean"/>
|
|
<xs:attribute name="p2" type="xs:boolean"/>
|
|
<xs:attribute name="p3" type="xs:boolean"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
<xs:element name="heliSwashplate" minOccurs="0">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="invert">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="aileron" type="xs:boolean"/>
|
|
<xs:element name="collective" type="xs:boolean"/>
|
|
<xs:element name="elevator" type="xs:boolean"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
<xs:attribute name="type">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="off"/>
|
|
<xs:enumeration value="120"/>
|
|
<xs:enumeration value="120Xfine"/>
|
|
<xs:enumeration value="140"/>
|
|
<xs:enumeration value="90"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
<xs:attribute name="source" type="Source"/>
|
|
<xs:attribute name="value" type="xs:int"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
<xs:element name="phases" minOccurs="0">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="phase" maxOccurs="unbounded">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="trims">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="rudder" type="TrimType"/>
|
|
<xs:element name="elevator" type="TrimType"/>
|
|
<xs:element name="throttle" type="TrimType"/>
|
|
<xs:element name="aileron" type="TrimType"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
<xs:attribute name="id" type="xs:int" use="required"/>
|
|
<xs:attribute name="name" type="xs:string"/>
|
|
<xs:attribute name="switch" type="Switch"/>
|
|
<xs:attribute name="fadeIn" type="xs:int"/>
|
|
<xs:attribute name="fadeOut" type="xs:int"/>
|
|
</xs:complexType>
|
|
<xs:unique name="uniquePhaseId">
|
|
<xs:selector xpath="model/phases/phase"/>
|
|
<xs:field xpath="@id"/>
|
|
</xs:unique>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
|
|
|
|
<xs:element name="outputs" minOccurs="0">
|
|
<!-- TODO pas de minOccurs -->
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="curve" maxOccurs="unbounded">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="point">
|
|
<xs:complexType>
|
|
<xs:attribute name="x" type="Weight100"/>
|
|
<xs:attribute name="y" type="Weight100"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
<xs:attribute name="id" type="xs:string"/>
|
|
</xs:complexType>
|
|
<xs:unique name="uniqueCurveForEachModel">
|
|
<xs:selector xpath="model/outputs/curve"/>
|
|
<xs:field xpath="@id"/>
|
|
</xs:unique>
|
|
</xs:element>
|
|
|
|
<xs:element name="output" maxOccurs="unbounded">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="limit">
|
|
<xs:complexType>
|
|
<xs:attribute name="min" type="Weight100"/>
|
|
<xs:attribute name="max" type="Weight100"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="revert" type="xs:boolean"/>
|
|
<xs:element name="offset" type="Weight100"/>
|
|
<xs:element name="mixer" minOccurs="1" maxOccurs="unbounded">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="source" type="Source"/>
|
|
<xs:element name="weight" type="Weight125"/>
|
|
<xs:element name="offset" type="Weight125"/>
|
|
<xs:element name="switch" type="Switch"/>
|
|
<xs:element name="curve" type="xs:string"/>
|
|
<xs:element name="delay">
|
|
<xs:complexType>
|
|
<xs:attribute name="up" type="xs:int"/>
|
|
<xs:attribute name="down" type="xs:int"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="speed">
|
|
<xs:complexType>
|
|
<xs:attribute name="up" type="xs:int"/>
|
|
<xs:attribute name="down" type="xs:int"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="trim" type="xs:boolean"/>
|
|
<xs:element name="warning">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:int">
|
|
<xs:minInclusive value="0"/>
|
|
<xs:maxInclusive value="3"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
<xs:attribute name="method">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="add"/>
|
|
<xs:enumeration value="replace"/>
|
|
<xs:enumeration value="multiply"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
</xs:complexType>
|
|
<xs:key name="curveKeyRef">
|
|
<xs:selector xpath="model/outputs/curve"/>
|
|
<xs:field xpath="@id"/>
|
|
</xs:key>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
<xs:attribute name="id" type="Output"/>
|
|
</xs:complexType>
|
|
<xs:unique name="uniqueOutputForEachModel">
|
|
<xs:selector xpath="model/outputs/output"/>
|
|
<xs:field xpath="@id"/>
|
|
</xs:unique>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
<xs:attribute name="extendedLimits" type="xs:boolean"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
<xs:element name="inputs" minOccurs="0">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="input">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="switch">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="expo">
|
|
<xs:complexType>
|
|
<xs:attribute name="left" type="Weight100"/>
|
|
<xs:attribute name="right" type="Weight100"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="max">
|
|
<xs:complexType>
|
|
<xs:attribute name="left" type="Weight100"/>
|
|
<xs:attribute name="right" type="Weight100"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
<xs:attribute name="value" type="Switch"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="trim" type="TrimValue"/>
|
|
</xs:sequence>
|
|
<xs:attribute name="id" type="Stick"/>
|
|
</xs:complexType>
|
|
<xs:unique name="uniqueInputForEachModel">
|
|
<xs:selector xpath="model/inputs/input"/>
|
|
<xs:field xpath="@id"/>
|
|
</xs:unique>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:schema>
|