116 lines
4.0 KiB
XML
116 lines
4.0 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="PWM"/>
|
|
</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 PWM frequencies -->
|
|
<xs:simpleType name="FrequencyType">
|
|
<xs:restriction base="xs:integer">
|
|
<xs:minInclusive value="1"/>
|
|
<xs:maxInclusive value="1000"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<!-- available buffer sizes -->
|
|
<xs:simpleType name="BufferSizeType">
|
|
<xs:restriction base="xs:integer">
|
|
<xs:minInclusive value="1"/>
|
|
<xs:maxInclusive value="10000"/>
|
|
</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="Port"
|
|
minOccurs="1"
|
|
maxOccurs="1"/>
|
|
</xs:sequence>
|
|
<xs:attribute name="name"
|
|
type="xs:string"
|
|
use="required"/>
|
|
<xs:attribute name="buffer_size"
|
|
type="BufferSizeType"
|
|
use="optional"/>
|
|
</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:attribute name="protocol" type="ProtocolType" use="required"/>
|
|
<xs:attribute name="frequency" type="FrequencyType" use="optional"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:schema> |