0
|
1 |
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
|
2 |
<!--
|
|
3 |
This file is part of CanFestival, a library implementing CanOpen Stack.
|
|
4 |
|
|
5 |
Copyright (C): Francis DUPIN
|
|
6 |
|
|
7 |
See COPYING file for copyrights details.
|
|
8 |
|
|
9 |
This library is free software; you can redistribute it and/or
|
|
10 |
modify it under the terms of the GNU Lesser General Public
|
|
11 |
License as published by the Free Software Foundation; either
|
|
12 |
version 2.1 of the License, or (at your option) any later version.
|
|
13 |
|
|
14 |
This library is distributed in the hope that it will be useful,
|
|
15 |
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
17 |
Lesser General Public License for more details.
|
|
18 |
|
|
19 |
You should have received a copy of the GNU Lesser General Public
|
|
20 |
License along with this library; if not, write to the Free Software
|
|
21 |
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
22 |
-->
|
|
23 |
|
|
24 |
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
|
25 |
|
|
26 |
<!-- Rangement par ordre alphabétique -->
|
|
27 |
|
|
28 |
<!-- Définition des types -->
|
|
29 |
|
|
30 |
<xs:simpleType name="taccess"> <!-- "ro" ou "rw" -->
|
|
31 |
<xs:restriction base="xs:NMTOKEN">
|
|
32 |
<xs:pattern value="(ro|rw)" />
|
|
33 |
</xs:restriction>
|
|
34 |
</xs:simpleType>
|
|
35 |
|
|
36 |
|
|
37 |
<xs:simpleType name="tevent_timer">
|
|
38 |
<xs:restriction base="xs:unsignedInt">
|
|
39 |
<xs:maxInclusive value="65535"/>
|
|
40 |
</xs:restriction>
|
|
41 |
</xs:simpleType>
|
|
42 |
|
|
43 |
<xs:simpleType name="thex64"> <!-- Un nombre hexadecimal sur 64 bits -->
|
|
44 |
<xs:restriction base="xs:NMTOKEN">
|
|
45 |
<xs:pattern value="0(x|X)([0-F]|[a-f]){1,16}" />
|
|
46 |
</xs:restriction>
|
|
47 |
</xs:simpleType>
|
|
48 |
|
|
49 |
<xs:simpleType name="thex32"> <!-- Un nombre hexadecimal sur 32 bits -->
|
|
50 |
<xs:restriction base="xs:NMTOKEN">
|
|
51 |
<xs:pattern value="0(x|X)([0-F]|[a-f]){1,8}" />
|
|
52 |
</xs:restriction>
|
|
53 |
</xs:simpleType>
|
|
54 |
|
|
55 |
<xs:simpleType name="thex16"> <!-- Un nombre hexadecimal sur 16 bits -->
|
|
56 |
<xs:restriction base="xs:NMTOKEN">
|
|
57 |
<xs:pattern value="0(x|X)([0-F]|[a-f]){1,4}" />
|
|
58 |
</xs:restriction>
|
|
59 |
</xs:simpleType>
|
|
60 |
|
|
61 |
<xs:simpleType name="thex11"> <!-- Un nombre entre 0x0 et 0x7FF (11 bits) -->
|
|
62 |
<xs:restriction base="xs:NMTOKEN">
|
|
63 |
<xs:pattern value="0(x|X)[0-7]?([0-F]|[a-f]){1,2}" />
|
|
64 |
</xs:restriction>
|
|
65 |
</xs:simpleType>
|
|
66 |
|
|
67 |
<xs:simpleType name="thex8"> <!-- Un nombre hexadecimal sur 8 bits -->
|
|
68 |
<xs:restriction base="xs:NMTOKEN">
|
|
69 |
<xs:pattern value="0(x|X)([0-F]|[a-f]){1,4}" />
|
|
70 |
</xs:restriction>
|
|
71 |
</xs:simpleType>
|
|
72 |
|
|
73 |
<xs:simpleType name="thex7"> <!-- Un nombre entre 0x0 et 0x7F -->
|
|
74 |
<xs:restriction base="xs:NMTOKEN">
|
|
75 |
<xs:pattern value="0(x|X)[0-7]?([0-F]|[a-f])" />
|
|
76 |
</xs:restriction>
|
|
77 |
</xs:simpleType>
|
|
78 |
|
|
79 |
<xs:simpleType name="tindex_var"> <!-- Un nombre entre 0x2000 et 0x9FFF (16 bits) -->
|
|
80 |
<xs:restriction base="xs:NMTOKEN">
|
|
81 |
<xs:pattern value="0(x|X)[2-9]([0-F]|[a-f]){3}" />
|
|
82 |
</xs:restriction>
|
|
83 |
</xs:simpleType>
|
|
84 |
|
|
85 |
<xs:simpleType name="tinhibit_time">
|
|
86 |
<xs:restriction base="xs:unsignedInt">
|
|
87 |
<xs:maxInclusive value="65535"/>
|
|
88 |
</xs:restriction>
|
|
89 |
</xs:simpleType>
|
|
90 |
|
|
91 |
<xs:simpleType name="tmode_pdo"> <!-- "tx" ou "rx" -->
|
|
92 |
<xs:restriction base="xs:NMTOKEN">
|
|
93 |
<xs:pattern value="(tx|rx)" />
|
|
94 |
</xs:restriction>
|
|
95 |
</xs:simpleType>
|
|
96 |
|
|
97 |
<xs:simpleType name="tnbr_elts_mapped_table"> <!-- Un nombre entre 1 et 50 -->
|
|
98 |
<xs:restriction base="xs:unsignedShort">
|
|
99 |
<xs:minInclusive value="1"/>
|
|
100 |
<xs:maxInclusive value="50"/>
|
|
101 |
</xs:restriction>
|
|
102 |
</xs:simpleType>
|
|
103 |
|
|
104 |
<xs:simpleType name="tnbr_heartbeat_consumers"> <!-- Un nombre entre 1 et 50 -->
|
|
105 |
<xs:restriction base="xs:unsignedShort">
|
|
106 |
<xs:minInclusive value="1"/>
|
|
107 |
<xs:maxInclusive value="50"/>
|
|
108 |
</xs:restriction>
|
|
109 |
</xs:simpleType>
|
|
110 |
|
|
111 |
<xs:simpleType name="tmax_objects_in_pdo"> <!-- Un nombre entre 1 et 8 -->
|
|
112 |
<xs:restriction base="xs:unsignedShort">
|
|
113 |
<xs:minInclusive value="1"/>
|
|
114 |
<xs:maxInclusive value="8"/>
|
|
115 |
</xs:restriction>
|
|
116 |
</xs:simpleType>
|
|
117 |
|
|
118 |
<xs:simpleType name="tnbr_pdo"> <!-- Un nombre entre 1 et 510 -->
|
|
119 |
<xs:restriction base="xs:unsignedShort">
|
|
120 |
<xs:minInclusive value="1"/>
|
|
121 |
<xs:maxInclusive value="510"/>
|
|
122 |
</xs:restriction>
|
|
123 |
</xs:simpleType>
|
|
124 |
|
|
125 |
<xs:simpleType name="tnbr_sdo_clients"> <!-- Un nombre entre 1 et 50 -->
|
|
126 |
<xs:restriction base="xs:unsignedShort">
|
|
127 |
<xs:minInclusive value="1"/>
|
|
128 |
<xs:maxInclusive value="50"/>
|
|
129 |
</xs:restriction>
|
|
130 |
</xs:simpleType>
|
|
131 |
|
|
132 |
<xs:simpleType name="tsize"> <!-- Un nombre entre 1 et 8 -->
|
|
133 |
<xs:restriction base="xs:unsignedShort">
|
|
134 |
<xs:minInclusive value="1"/>
|
|
135 |
<xs:maxInclusive value="8"/>
|
|
136 |
</xs:restriction>
|
|
137 |
</xs:simpleType>
|
|
138 |
|
|
139 |
<xs:simpleType name="tsize_in_bits"> <!-- 8, 16 ou 32 bits -->
|
|
140 |
<xs:restriction base="xs:NMTOKEN">
|
|
141 |
<xs:pattern value="(8)|(16)|(32)" />
|
|
142 |
</xs:restriction>
|
|
143 |
</xs:simpleType>
|
|
144 |
|
|
145 |
<xs:simpleType name="ttransmission_type"> <!-- Un nombre entre 0 et 255 -->
|
|
146 |
<xs:restriction base="xs:unsignedShort">
|
|
147 |
<xs:minInclusive value="0"/>
|
|
148 |
<xs:maxInclusive value="255"/>
|
|
149 |
</xs:restriction>
|
|
150 |
</xs:simpleType>
|
|
151 |
|
|
152 |
<xs:simpleType name="ttype_node"> <!-- "master" ou "slave" -->
|
|
153 |
<xs:restriction base="xs:NMTOKEN">
|
|
154 |
<xs:pattern value="(master|slave)" />
|
|
155 |
</xs:restriction>
|
|
156 |
</xs:simpleType>
|
|
157 |
|
|
158 |
<xs:simpleType name="ttype_var">
|
|
159 |
<xs:restriction base="xs:NMTOKEN">
|
|
160 |
<xs:pattern value="(UNS|REAL)" />
|
|
161 |
</xs:restriction>
|
|
162 |
</xs:simpleType>
|
|
163 |
|
|
164 |
<!-- Définition des éléments de type simple -->
|
|
165 |
<xs:element name="compatibility_entry" type="thex7"></xs:element>
|
|
166 |
<xs:element name="event_timer" type="tevent_timer"></xs:element>
|
|
167 |
<xs:element name="inhibit_time" type="tinhibit_time"></xs:element>
|
|
168 |
<xs:element name="node_id" type="thex11"></xs:element>
|
|
169 |
<xs:element name="size" type="tsize"></xs:element>
|
|
170 |
<xs:element name="transmission_type" type="thex8"></xs:element>
|
|
171 |
<xs:element name="value_int" type="thex64"></xs:element>
|
|
172 |
|
|
173 |
<!-- Définition des éléments de type complexe -->
|
|
174 |
|
|
175 |
<xs:element name="node">
|
|
176 |
<xs:complexType>
|
|
177 |
<xs:sequence minOccurs="1" maxOccurs="1">
|
|
178 |
<xs:element ref="heartbeat_consumers" minOccurs="1" maxOccurs="1" />
|
|
179 |
<xs:element ref="sdo_clients" minOccurs="1" maxOccurs="1" />
|
|
180 |
<!--<xs:element ref="pdo_param" minOccurs="1" maxOccurs="1" /> Obsolet -->
|
|
181 |
<!--<xs:element ref="pdo_receive" minOccurs="1" maxOccurs="1" /> Obsolet -->
|
|
182 |
<!--<xs:element ref="pdo_transmit" minOccurs="1" maxOccurs="1" /> Obsolet -->
|
|
183 |
<xs:element ref="pdo" minOccurs="0" maxOccurs="500" />
|
|
184 |
<xs:element ref="mapped_variable" minOccurs="0" maxOccurs="200" />
|
|
185 |
<xs:element ref="mapped_table" minOccurs="0" maxOccurs="200" />
|
|
186 |
<xs:element ref="mapped_string_variable" minOccurs="0" maxOccurs="200" />
|
|
187 |
<!--<xs:element ref="mapped_string_table" minOccurs="0" maxOccurs="200" />-->
|
|
188 |
</xs:sequence>
|
|
189 |
<xs:attribute name="name" type="xs:NMTOKEN" use="required" />
|
|
190 |
<xs:attribute name="type_node" type="ttype_node" use="required" />
|
|
191 |
<xs:attribute name="node_id" type="thex11" use="optional" />
|
|
192 |
<xs:attribute name="device_type_1000" type="thex32" use="optional" />
|
|
193 |
<xs:attribute name="manufacturer_device_name_1008" type="xs:string" use="optional" />
|
|
194 |
<xs:attribute name="manufacturer_hardware_version_1009" type="xs:string" use="optional" />
|
|
195 |
<xs:attribute name="manufacturer_software_version_100A" type="xs:string" use="optional" />
|
|
196 |
<xs:attribute name="vendor_id_1018" type="thex32" use="optional" />
|
|
197 |
<xs:attribute name="product_code_1018" type="thex32" use="optional" />
|
|
198 |
<xs:attribute name="revision_number_1018" type="thex32" use="optional" />
|
|
199 |
<xs:attribute name="serial_number_1018" type="thex32" use="optional" />
|
|
200 |
</xs:complexType>
|
|
201 |
</xs:element>
|
|
202 |
|
|
203 |
<xs:element name="heartbeat_consumers" >
|
|
204 |
<xs:complexType>
|
|
205 |
<xs:attribute name="nombre" type="tnbr_heartbeat_consumers" use="required"/>
|
|
206 |
</xs:complexType>
|
|
207 |
</xs:element>
|
|
208 |
|
|
209 |
<xs:element name="sdo_clients" >
|
|
210 |
<xs:complexType>
|
|
211 |
<xs:attribute name="nombre" type="tnbr_sdo_clients" use="required"/>
|
|
212 |
</xs:complexType>
|
|
213 |
</xs:element>
|
|
214 |
|
|
215 |
<xs:element name="pdo_param" > <!-- Obsolet -->
|
|
216 |
<xs:complexType>
|
|
217 |
<xs:attribute name="max_objects_in_pdo" type="tmax_objects_in_pdo" use="required"/>
|
|
218 |
</xs:complexType>
|
|
219 |
</xs:element>
|
|
220 |
|
|
221 |
<xs:element name="pdo_receive" > <!-- Obsolet -->
|
|
222 |
<xs:complexType>
|
|
223 |
<xs:attribute name="nombre" type="tnbr_pdo" use="required"/>
|
|
224 |
</xs:complexType>
|
|
225 |
</xs:element>
|
|
226 |
|
|
227 |
<xs:element name="pdo_transmit" > <!-- Obsolet -->
|
|
228 |
<xs:complexType>
|
|
229 |
<xs:attribute name="nombre" type="tnbr_pdo" use="required"/>
|
|
230 |
</xs:complexType>
|
|
231 |
</xs:element>
|
|
232 |
|
|
233 |
<xs:element name="pdo" >
|
|
234 |
<xs:complexType>
|
|
235 |
<xs:sequence minOccurs="1" maxOccurs="1">
|
|
236 |
<xs:element ref="mapped_object" minOccurs="0" maxOccurs="8" />
|
|
237 |
</xs:sequence>
|
|
238 |
<xs:attribute name="type_rx_tx" type="tmode_pdo" use="required"/>
|
|
239 |
<xs:attribute name="index_communication_parameter" type="thex16" use="optional"/>
|
|
240 |
<xs:attribute name="cob_id" type="thex11" use="optional"/>
|
|
241 |
<xs:attribute name="max_objects_in_pdo" type="tmax_objects_in_pdo" use="optional"/>
|
|
242 |
<xs:attribute name="transmission_type" type="ttransmission_type" use="optional"/>
|
|
243 |
</xs:complexType>
|
|
244 |
</xs:element>
|
|
245 |
|
|
246 |
<xs:element name="mapped_object" >
|
|
247 |
<xs:complexType>
|
|
248 |
<xs:attribute name="name" type="xs:NMTOKEN" use="optional"/>
|
|
249 |
<xs:attribute name="size_in_bits" type="tsize_in_bits" use="required"/>
|
|
250 |
<xs:attribute name="index" type="tindex_var" use="required"/>
|
|
251 |
<xs:attribute name="sub_index" type="thex8" use="required"/>
|
|
252 |
</xs:complexType>
|
|
253 |
</xs:element>
|
|
254 |
|
|
255 |
<xs:element name="mapped_variable" >
|
|
256 |
<xs:complexType>
|
|
257 |
<xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
|
|
258 |
<xs:attribute name="size_in_bits" type="tsize_in_bits" use="required"/>
|
|
259 |
<xs:attribute name="index" type="tindex_var" use="required"/>
|
|
260 |
<xs:attribute name="sub_index" type="thex8" use="required"/>
|
|
261 |
<xs:attribute name="type" type="ttype_var" use="optional"/>
|
|
262 |
<xs:attribute name="access" type="taccess" use="optional"/>
|
|
263 |
<xs:attribute name="min_value" type="xs:anySimpleType" use="optional"/>
|
|
264 |
<xs:attribute name="max_value" type="xs:anySimpleType" use="optional"/>
|
|
265 |
</xs:complexType>
|
|
266 |
</xs:element>
|
|
267 |
|
|
268 |
|
|
269 |
|
|
270 |
<xs:element name="mapped_table" >
|
|
271 |
<xs:complexType>
|
|
272 |
<xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
|
|
273 |
<xs:attribute name="number_elements" type="tnbr_elts_mapped_table" use="required"/>
|
|
274 |
<xs:attribute name="size_in_bits" type="tsize_in_bits" use="required"/>
|
|
275 |
<xs:attribute name="index" type="tindex_var" use="required"/>
|
|
276 |
<xs:attribute name="type" type="ttype_var" use="optional"/>
|
|
277 |
<xs:attribute name="access" type="taccess" use="optional"/>
|
|
278 |
<xs:attribute name="min_value" type="xs:decimal" use="optional"/>
|
|
279 |
<xs:attribute name="max_value" type="xs:decimal" use="optional"/>
|
|
280 |
</xs:complexType>
|
|
281 |
</xs:element>
|
|
282 |
|
|
283 |
<xs:element name="mapped_string_variable" >
|
|
284 |
<xs:complexType>
|
|
285 |
<xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
|
|
286 |
<xs:attribute name="size_in_byte" type="xs:unsignedInt" use="required"/>
|
|
287 |
<xs:attribute name="index" type="tindex_var" use="required"/>
|
|
288 |
<xs:attribute name="sub_index" type="thex8" use="required"/>
|
|
289 |
<xs:attribute name="access" type="taccess" use="optional"/>
|
|
290 |
</xs:complexType>
|
|
291 |
</xs:element>
|
|
292 |
|
|
293 |
|
|
294 |
<xs:element name="mapped_string_table" >
|
|
295 |
<xs:complexType>
|
|
296 |
<xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
|
|
297 |
<xs:attribute name="number_elements" type="tnbr_elts_mapped_table" use="required"/>
|
|
298 |
<xs:attribute name="size_in_byte" type="xs:unsignedInt" use="required"/>
|
|
299 |
<xs:attribute name="index" type="tindex_var" use="required"/>
|
|
300 |
<xs:attribute name="access" type="taccess" use="optional"/>
|
|
301 |
</xs:complexType>
|
|
302 |
</xs:element>
|
|
303 |
|
|
304 |
</xs:schema> |