1 <?xml version="1.0" encoding="UTF-8"?>
2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
5 <!-- déclaration des groupes d'attributs -->
7 <xs:attributeGroup name="group_itemAttrGroup">
8 <xs:attribute ref="id"/>
9 <xs:attribute ref="name"/>
10 <xs:attribute ref="upper_group"/>
11 <xs:attribute ref="upper_item"/>
12 <xs:attribute ref="position"/>
13 <xs:attribute ref="dimension"/>
16 <xs:attributeGroup name="group_ifaceAttrGroup">
17 <xs:attribute ref="id"/>
18 <xs:attribute ref="name"/>
19 <xs:attribute ref="purpose"/>
20 <xs:attribute ref="direction"/>
21 <xs:attribute ref="orientation"/>
22 <xs:attribute ref="position"/>
25 <xs:attributeGroup name="source_itemsAttrGroup">
26 <xs:attribute ref="count" />
29 <xs:attributeGroup name="block_itemsAttrGroup">
30 <xs:attribute ref="functional_count" />
31 <xs:attribute ref="group_count" />
34 <xs:attributeGroup name="source_itemAttrGroup">
35 <xs:attribute ref="id" />
36 <xs:attribute ref="ref_xml" />
37 <xs:attribute ref="ref_md5" />
38 <xs:attribute ref="name" />
39 <xs:attribute ref="position" />
40 <xs:attribute ref="dimension" />
43 <xs:attributeGroup name="bi_functionalAttrGroup">
44 <xs:attribute ref="id" />
45 <xs:attribute ref="ref_xml" />
46 <xs:attribute ref="ref_md5" />
47 <xs:attribute ref="name" />
48 <xs:attribute ref="position" />
49 <xs:attribute ref="dimension" />
50 <xs:attribute ref="visible" use="optional"/>
53 <xs:attributeGroup name="source_parameterAttrGroup">
54 <xs:attribute ref="name" />
55 <xs:attribute ref="value" />
56 <xs:attribute ref="context" />
57 <xs:attribute ref="type" />
60 <xs:attributeGroup name="bif_parameterAttrGroup">
61 <xs:attribute ref="name" />
62 <xs:attribute ref="value" />
63 <xs:attribute ref="context" />
64 <xs:attribute ref="type" />
67 <xs:attributeGroup name="source_ifaceAttrGroup">
68 <xs:attribute ref="id" />
69 <xs:attribute ref="name" />
70 <xs:attribute ref="ref_name" />
71 <xs:attribute ref="orientation" />
72 <xs:attribute ref="position" />
75 <xs:attributeGroup name="bif_ifaceAttrGroup">
76 <xs:attribute ref="id" />
77 <xs:attribute ref="name" />
78 <xs:attribute ref="ref_name" />
79 <xs:attribute ref="orientation" />
80 <xs:attribute ref="position" />
83 <xs:attributeGroup name="bi_groupAttrGroup">
84 <xs:attribute ref="id" />
85 <xs:attribute ref="inside_group" />
86 <xs:attribute ref="position" />
87 <xs:attribute ref="dimension" />
90 <xs:attributeGroup name="big_ifaceAttrGroup">
91 <xs:attribute ref="id" />
92 <xs:attribute ref="ref_name" />
93 <xs:attribute ref="orientation" />
94 <xs:attribute ref="position" />
97 <xs:attributeGroup name="connectionAttrGroup">
98 <xs:attribute ref="from" />
99 <xs:attribute ref="to" />
100 <xs:attribute ref="visible" use="optional" />
103 <xs:attributeGroup name="modifierAttrGroup">
104 <xs:attribute ref="id" />
105 <xs:attribute ref="type" />
106 <xs:attribute ref="params" />
110 <!-- déclaration des attributs -->
112 <xs:attribute name="count">
114 <xs:restriction base="xs:nonNegativeInteger">
115 <xs:minInclusive value="0"/>
120 <xs:attribute name="id">
122 <xs:restriction base="xs:nonNegativeInteger">
123 <xs:minInclusive value="0"/>
128 <xs:attribute name="upper_scene">
130 <xs:restriction base="xs:integer">
131 <xs:minInclusive value="-1"/>
136 <xs:attribute name="upper_group">
138 <xs:restriction base="xs:integer">
139 <xs:minInclusive value="-1"/>
144 <xs:attribute name="upper_item">
146 <xs:restriction base="xs:integer">
147 <xs:minInclusive value="-1"/>
152 <xs:attribute name="visible">
154 <xs:restriction base="xs:string">
155 <xs:enumeration value="true"/>
156 <xs:enumeration value="false"/>
161 <xs:attribute name="inside_group">
163 <xs:restriction base="xs:nonNegativeInteger">
164 <xs:minInclusive value="0"/>
169 <xs:attribute name="functional_count">
171 <xs:restriction base="xs:nonNegativeInteger">
172 <xs:minInclusive value="0"/>
177 <xs:attribute name="group_count">
179 <xs:restriction base="xs:nonNegativeInteger">
180 <xs:minInclusive value="0"/>
185 <xs:attribute name="value" type="xs:string"/>
187 <xs:attribute name="from">
189 <xs:restriction base="xs:nonNegativeInteger">
190 <xs:minInclusive value="0"/>
195 <xs:attribute name="to">
197 <xs:restriction base="xs:nonNegativeInteger">
198 <xs:minInclusive value="0"/>
203 <xs:attribute name="purpose">
205 <xs:restriction base="xs:string">
206 <xs:enumeration value="data"/>
207 <xs:enumeration value="clock"/>
208 <xs:enumeration value="reset"/>
209 <xs:enumeration value="wishbone"/>
214 <xs:attribute name="direction">
216 <xs:restriction base="xs:string">
217 <xs:enumeration value="input"/>
218 <xs:enumeration value="output"/>
219 <xs:enumeration value="inout"/>
224 <xs:attribute name="orientation">
226 <xs:restriction base="xs:string">
227 <xs:enumeration value="west"/>
228 <xs:enumeration value="east"/>
229 <xs:enumeration value="north"/>
230 <xs:enumeration value="south"/>
235 <xs:attribute name="position" type="xs:string"/>
236 <xs:attribute name="dimension" type="xs:string"/>
237 <xs:attribute name="name" type="xs:string"/>
238 <xs:attribute name="ref_name" type="xs:string"/>
239 <xs:attribute name="ref_xml" type="xs:string"/>
240 <xs:attribute name="ref_md5" type="xs:string"/>
241 <xs:attribute name="context" type="xs:string"/>
242 <xs:attribute name="type" type="xs:string"/>
243 <xs:attribute name="params" type="xs:string"/>
244 <xs:attribute name="project_path" type="xs:string"/>
246 <xs:attribute name="font" type="xs:string"/>
247 <xs:attribute name="font_size" type="xs:nonNegativeInteger"/>
248 <xs:attribute name="width" type="xs:nonNegativeInteger"/>
249 <xs:attribute name="height" type="xs:nonNegativeInteger"/>
250 <xs:attribute name="line_length" type="xs:nonNegativeInteger"/>
251 <xs:attribute name="gap_length" type="xs:nonNegativeInteger"/>
252 <xs:attribute name="auto_conn">
254 <xs:restriction base="xs:string">
255 <xs:enumeration value="true"/>
256 <xs:enumeration value="false"/>
262 <!-- déclaration des groupes d'éléments -->
264 <xs:group name="rootElmtGroup">
266 <xs:element ref="parameters"/>
267 <xs:element ref="scenes"/>
268 <xs:element ref="connections"/>
269 <xs:element ref="modifiers"/>
273 <xs:group name="sceneElmtGroup">
275 <xs:element ref="group_item"/>
276 <xs:element ref="source_items" minOccurs="0" maxOccurs="unbounded"/>
277 <xs:element ref="block_items"/>
281 <xs:group name="source_itemsElmtGroup">
283 <xs:element ref="source_item" minOccurs="0" maxOccurs="unbounded"/>
287 <xs:group name="block_itemsElmtGroup">
289 <xs:element ref="bi_functional" minOccurs="0" maxOccurs="unbounded"/>
290 <xs:element ref="bi_group" minOccurs="0" maxOccurs="unbounded"/>
294 <xs:group name="source_itemElmtGroup">
296 <xs:element ref="source_parameters"/>
297 <xs:element ref="source_ifaces"/>
301 <xs:group name="bi_functionalElmtGroup">
303 <xs:element ref="bif_parameters"/>
304 <xs:element ref="bif_ifaces"/>
309 <!-- déclaration des éléments -->
310 <xs:element name="parameters">
313 <xs:element ref="block_view" />
314 <xs:element ref="interface_view" />
315 <xs:element ref="connection_view" />
320 <xs:element name="block_view">
322 <xs:attribute ref="width"/>
323 <xs:attribute ref="height"/>
324 <xs:attribute ref="font"/>
325 <xs:attribute ref="font_size"/>
329 <xs:element name="interface_view">
331 <xs:attribute ref="line_length"/>
332 <xs:attribute ref="width"/>
333 <xs:attribute ref="height"/>
334 <xs:attribute ref="font"/>
335 <xs:attribute ref="font_size"/>
339 <xs:element name="connection_view">
341 <xs:attribute ref="gap_length"/>
342 <xs:attribute ref="auto_conn"/>
346 <xs:element name="scenes">
349 <xs:element ref="scene" maxOccurs="unbounded" />
351 <xs:attribute ref="count"/>
355 <xs:element name="scene">
357 <xs:group ref="sceneElmtGroup"/>
358 <xs:attribute ref="id"/>
359 <xs:attribute ref="upper_scene"/>
360 <xs:attribute name="clklist" type="xs:string" use="optional" />
364 <xs:element name="group_item">
367 <xs:element ref="group_ifaces" maxOccurs="unbounded" />
369 <xs:attributeGroup ref="group_itemAttrGroup"/>
373 <xs:element name="group_ifaces">
376 <xs:element ref="group_iface" minOccurs="0" maxOccurs="unbounded"/>
378 <xs:attribute ref="count"/>
382 <xs:element name="group_iface">
384 <xs:attributeGroup ref="group_ifaceAttrGroup"/>
388 <xs:element name="source_items">
390 <xs:group ref="source_itemsElmtGroup"/>
391 <xs:attributeGroup ref="source_itemsAttrGroup"/>
395 <xs:element name="block_items">
397 <xs:group ref="block_itemsElmtGroup"/>
398 <xs:attributeGroup ref="block_itemsAttrGroup"/>
402 <xs:element name="source_item">
404 <xs:group ref="source_itemElmtGroup"/>
405 <xs:attributeGroup ref="source_itemAttrGroup"/>
409 <xs:element name="bi_functional">
411 <xs:group ref="bi_functionalElmtGroup"/>
412 <xs:attributeGroup ref="bi_functionalAttrGroup"/>
416 <xs:element name="source_parameters">
419 <xs:element ref="source_parameter" minOccurs="0" maxOccurs="unbounded" />
424 <xs:element name="source_parameter">
426 <xs:attributeGroup ref="source_parameterAttrGroup"/>
430 <xs:element name="bif_parameters">
433 <xs:element ref="bif_parameter" minOccurs="0" maxOccurs="unbounded" />
438 <xs:element name="bif_parameter">
440 <xs:attributeGroup ref="bif_parameterAttrGroup"/>
444 <xs:element name="source_ifaces">
447 <xs:element ref="source_iface" minOccurs="0" maxOccurs="unbounded" />
449 <xs:attribute ref="count"/>
453 <xs:element name="source_iface">
455 <xs:attributeGroup ref="source_ifaceAttrGroup"/>
459 <xs:element name="bif_ifaces">
462 <xs:element ref="bif_iface" minOccurs="0" maxOccurs="unbounded" />
464 <xs:attribute ref="count"/>
468 <xs:element name="bif_iface">
470 <xs:attributeGroup ref="bif_ifaceAttrGroup"/>
474 <xs:element name="bi_group">
477 <xs:element ref="big_ifaces"/>
479 <xs:attributeGroup ref="bi_groupAttrGroup"/>
483 <xs:element name="big_ifaces">
486 <xs:element ref="big_iface" minOccurs="0" maxOccurs="unbounded" />
488 <xs:attribute ref="count" />
492 <xs:element name="big_iface">
494 <xs:attributeGroup ref="big_ifaceAttrGroup" />
498 <xs:element name="connections">
501 <xs:element ref="connection" minOccurs="0" maxOccurs="unbounded"/>
503 <xs:attribute ref="count" />
507 <xs:element name="connection">
509 <xs:attributeGroup ref="connectionAttrGroup"/>
513 <xs:element name="modifiers">
516 <xs:element ref="modifier" minOccurs="0" maxOccurs="unbounded"/>
521 <xs:element name="modifier">
523 <xs:attributeGroup ref="modifierAttrGroup"/>
527 <!-- racine du document -->
529 <xs:element name="blast_project">
531 <xs:group ref="rootElmtGroup"/>
532 <xs:attribute ref="project_path" />