122 lines
4.3 KiB
XML
122 lines
4.3 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
|
|
|
<!-- available protocols types -->
|
|
<xs:simpleType name="ProtocolType">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="DI"/>
|
|
<xs:enumeration value="DO"/>
|
|
<xs:enumeration value="AI"/>
|
|
<xs:enumeration value="AO"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<!-- available value types -->
|
|
<xs:simpleType name="ValueType">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="int"/>
|
|
<xs:enumeration value="float"/>
|
|
<xs:enumeration value="boolean"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<!-- available conversion types -->
|
|
<xs:simpleType name="ConversionType">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="Factor"/>
|
|
<xs:enumeration value="Offset"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<!-- available Pins -->
|
|
<xs:simpleType name="Pin">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="GPIO_2"/>
|
|
<xs:enumeration value="GPIO_3"/>
|
|
<xs:enumeration value="GPIO_4"/>
|
|
<xs:enumeration value="GPIO_5"/>
|
|
<xs:enumeration value="GPIO_6"/>
|
|
<xs:enumeration value="GPIO_7"/>
|
|
<xs:enumeration value="GPIO_8"/>
|
|
<xs:enumeration value="GPIO_9"/>
|
|
<xs:enumeration value="GPIO_10"/>
|
|
<xs:enumeration value="GPIO_11"/>
|
|
<xs:enumeration value="GPIO_12"/>
|
|
<xs:enumeration value="GPIO_13"/>
|
|
<xs:enumeration value="GPIO_14"/>
|
|
<xs:enumeration value="GPIO_15"/>
|
|
<xs:enumeration value="GPIO_16"/>
|
|
<xs:enumeration value="GPIO_17"/>
|
|
<xs:enumeration value="GPIO_18"/>
|
|
<xs:enumeration value="GPIO_19"/>
|
|
<xs:enumeration value="GPIO_20"/>
|
|
<xs:enumeration value="GPIO_21"/>
|
|
<xs:enumeration value="GPIO_22"/>
|
|
<xs:enumeration value="GPIO_23"/>
|
|
<xs:enumeration value="GPIO_24"/>
|
|
<xs:enumeration value="GPIO_25"/>
|
|
<xs:enumeration value="GPIO_26"/>
|
|
<xs:enumeration value="GPIO_27"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<xs:element name="DeviceList">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element ref="Device" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
<xs:unique name="UniqueDevice">
|
|
<xs:selector xpath="Device"/>
|
|
<xs:field xpath="@name"/>
|
|
</xs:unique>
|
|
<xs:unique name="UniquePin">
|
|
<xs:selector xpath="Device"/>
|
|
<xs:field xpath="Protocol/Port/Pin"/>
|
|
</xs:unique>
|
|
</xs:element>
|
|
|
|
<xs:element name="Device">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element ref="Value" minOccurs="1" maxOccurs="1"/>
|
|
<xs:element ref="Protocol" minOccurs="1" maxOccurs="1"/>
|
|
</xs:sequence>
|
|
<xs:attribute name="name" type="xs:string" use="required"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
<xs:element name="Protocol">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element ref="Port" minOccurs="1" maxOccurs="1"/>
|
|
</xs:sequence>
|
|
<xs:attribute name="type" type="ProtocolType" use="required"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
<xs:element name="Value">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element ref="Conversion" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
<xs:attribute name="type" type="ValueType" use="required"/>
|
|
<xs:attribute name="unit" type="xs:string" use="optional"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
<xs:element name="Conversion">
|
|
<xs:complexType>
|
|
<xs:attribute name="type" type="ConversionType" use="required"/>
|
|
<xs:attribute name="value" type="xs:float" use="required"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
<xs:element name="Port">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="Pin" type="Pin" minOccurs="1" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:schema> |