Copyright update for 2011
[bcusdk.git] / xml / gui / configdesc.xsd
blob6fe98db5b09d0c47d4021f8974b2295870fe1912
1 <?xml version="1.0" encoding="utf-8"?>
2 <!--
3 Configuration Information XML Schema
4 Copyright (C) 2005-2011 Martin Koegler mkoegler@auto.tuwien.ac.at
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 Modified version of this specification must change the namespace.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22 -->
23 <!-- version 0.0.0 -->
24 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.auto.tuwien.ac.at/~mkoegler/eib/xml/configdesc.xsd" targetNamespace="http://www.auto.tuwien.ac.at/~mkoegler/eib/xml/configdesc.xsd" elementFormDefault="qualified">
25 <xs:simpleType name="Version">
26 <xs:restriction base="xs:string">
27 <xs:pattern value="[0-9]+\.[0-9]+\.[0-9]+"/>
28 </xs:restriction>
29 </xs:simpleType>
30 <xs:simpleType name="PID">
31 <xs:restriction base="xs:ID">
32 <!--*xs:string/xs:ID?-->
33 </xs:restriction>
34 </xs:simpleType>
35 <xs:simpleType name="listelement">
36 <xs:restriction base="xs:string">
37 <!--*-->
38 </xs:restriction>
39 </xs:simpleType>
40 <xs:simpleType name="eibaddr">
41 <xs:restriction base="xs:string">
42 <xs:pattern value="(([0-9]|1[0-5])\.([0-9]|1[0-5])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|[0-9a-fA-F]{1,4})"/>
43 </xs:restriction>
44 </xs:simpleType>
45 <xs:simpleType name="groupaddr">
46 <xs:restriction base="xs:string">
47 <xs:pattern value="(([0-9]|[12][0-9]|3[0-1])/([0-7])/([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|([0-9]|[12][0-9]|3[0-1])/([0-9]|[1-9][0-9]|[1-9][0-9][0-9]|1[0-9][0-9][0-9]|20[0-3][0-9]|204[0-7])|[0-9a-fA-F]{1,4})"/>
48 </xs:restriction>
49 </xs:simpleType>
50 <xs:simpleType name="pollingaddr">
51 <xs:restriction base="xs:hexBinary">
52 <xs:minLength value="1"/>
53 <xs:maxLength value="4"/>
54 </xs:restriction>
55 </xs:simpleType>
56 <xs:simpleType name="pollingslot">
57 <xs:restriction base="xs:nonNegativeInteger">
58 <xs:maxInclusive value="15"/>
59 </xs:restriction>
60 </xs:simpleType>
61 <xs:simpleType name="pollingcount">
62 <xs:restriction base="xs:nonNegativeInteger">
63 <xs:maxInclusive value="15"/>
64 </xs:restriction>
65 </xs:simpleType>
66 <xs:simpleType name="keylevel">
67 <xs:restriction base="xs:nonNegativeInteger">
68 <xs:maxInclusive value="15"/>
69 </xs:restriction>
70 </xs:simpleType>
71 <xs:simpleType name="keytype">
72 <xs:restriction base="xs:hexBinary">
73 <xs:minLength value="1"/>
74 <xs:maxLength value="8"/>
75 </xs:restriction>
76 </xs:simpleType>
77 <xs:simpleType name="priority">
78 <xs:restriction base="xs:string">
79 <xs:enumeration value="low"/>
80 <xs:enumeration value="normal"/>
81 <xs:enumeration value="urgent"/>
82 <xs:enumeration value="system"/>
83 </xs:restriction>
84 </xs:simpleType>
85 <xs:element name="DeviceConfig">
86 <xs:complexType>
87 <xs:sequence>
88 <xs:element name="ProgramID" type="xs:string"/>
89 <xs:element name="PhysicalAddress" type="eibaddr"/>
90 <xs:element name="InstallKey" type="keytype" minOccurs="0"/>
91 <xs:element name="Key" minOccurs="0" maxOccurs="unbounded">
92 <xs:complexType>
93 <xs:simpleContent>
94 <xs:extension base="keytype">
95 <xs:attribute name="id" type="keylevel"/>
96 </xs:extension>
97 </xs:simpleContent>
98 </xs:complexType>
99 </xs:element>
100 <xs:choice maxOccurs="unbounded" minOccurs="0">
101 <xs:element name="GroupObject">
102 <xs:complexType>
103 <xs:sequence>
104 <xs:element name="Priority" type="priority" minOccurs="0"/>
105 <xs:element name="SendAddress" type="groupaddr" minOccurs="0"/>
106 <xs:element name="ReadRequestAddress" type="groupaddr" minOccurs="0"/>
107 <xs:element name="ReceiveAddress" minOccurs="0">
108 <xs:complexType>
109 <xs:sequence>
110 <xs:element name="GroupAddr" type="groupaddr" maxOccurs="unbounded"/>
111 </xs:sequence>
112 </xs:complexType>
113 </xs:element>
114 <xs:element name="ReadAddress" minOccurs="0">
115 <xs:complexType>
116 <xs:sequence>
117 <xs:element name="GroupAddr" type="groupaddr" maxOccurs="unbounded"/>
118 </xs:sequence>
119 </xs:complexType>
120 </xs:element>
121 <xs:element name="UpdateAddress" minOccurs="0">
122 <xs:complexType>
123 <xs:sequence>
124 <xs:element name="GroupAddr" type="groupaddr" maxOccurs="unbounded"/>
125 </xs:sequence>
126 </xs:complexType>
127 </xs:element>
128 </xs:sequence>
129 <xs:attribute name="id" type="PID"/>
130 </xs:complexType>
131 </xs:element>
132 <xs:element name="Property">
133 <xs:complexType>
134 <xs:sequence>
135 <xs:element name="Disable" type="xs:boolean" minOccurs="0"/>
136 <xs:element name="ReadOnly" type="xs:boolean" minOccurs="0"/>
137 <xs:element name="ReadAccess" type="keylevel" minOccurs="0"/>
138 <xs:element name="WriteAccess" type="keylevel" minOccurs="0"/>
139 </xs:sequence>
140 <xs:attribute name="id" type="PID"/>
141 </xs:complexType>
142 </xs:element>
143 <xs:element name="PollingMaster">
144 <xs:complexType>
145 <xs:sequence minOccurs="0">
146 <xs:element name="PollingAddress" type="pollingaddr"/>
147 <xs:element name="PollingCount" type="pollingcount"/>
148 </xs:sequence>
149 <xs:attribute name="id" type="PID"/>
150 </xs:complexType>
151 </xs:element>
152 <xs:element name="PollingSlave">
153 <xs:complexType>
154 <xs:sequence minOccurs="0">
155 <xs:element name="PollingAddress" type="pollingaddr"/>
156 <xs:element name="PollingSlot" type="pollingslot"/>
157 </xs:sequence>
158 <xs:attribute name="id" type="PID"/>
159 </xs:complexType>
160 </xs:element>
161 </xs:choice>
162 <xs:element name="Parameter" minOccurs="0">
163 <xs:complexType>
164 <xs:choice maxOccurs="unbounded">
165 <xs:element name="ListParameter">
166 <xs:complexType>
167 <xs:sequence>
168 <xs:element name="Value" type="listelement"/>
169 </xs:sequence>
170 <xs:attribute name="id" type="PID"/>
171 </xs:complexType>
172 </xs:element>
173 <xs:element name="IntParameter">
174 <xs:complexType>
175 <xs:sequence>
176 <xs:element name="Value" type="xs:integer"/>
177 </xs:sequence>
178 <xs:attribute name="id" type="PID"/>
179 </xs:complexType>
180 </xs:element>
181 <xs:element name="FloatParameter">
182 <xs:complexType>
183 <xs:sequence>
184 <xs:element name="Value" type="xs:decimal"/>
185 </xs:sequence>
186 <xs:attribute name="id" type="PID"/>
187 </xs:complexType>
188 </xs:element>
189 <xs:element name="StringParameter">
190 <xs:complexType>
191 <xs:sequence>
192 <xs:element name="Value" type="xs:string"/>
193 </xs:sequence>
194 <xs:attribute name="id" type="PID"/>
195 </xs:complexType>
196 </xs:element>
197 </xs:choice>
198 </xs:complexType>
199 </xs:element>
200 </xs:sequence>
201 <xs:attribute name="version" type="Version"/>
202 </xs:complexType>
203 <xs:key name="uniqpar">
204 <xs:selector xpath="Parameter/ListParameter|Parameter/IntParameter|Parameter/FloatParameter|Parameter/StringParameter|Property|GroupObject|PollingSlave|PollingMaster"/>
205 <xs:field xpath="@id"/>
206 </xs:key>
207 <xs:key name="unikey">
208 <xs:selector xpath="Key"/>
209 <xs:field xpath="@id"/>
210 </xs:key>
211 <xs:keyref name="refkey" refer="unikey">
212 <xs:selector xpath="Property/ReadAccess|Property/WriteAccess"/>
213 <xs:field xpath="."/>
214 </xs:keyref>
215 </xs:element>
216 </xs:schema>