]> AND Private Git Repository - blast.git/blob - projectfile.xsd
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
finished testbench generation
[blast.git] / projectfile.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
3
4
5   <!-- déclaration des groupes d'attributs -->
6
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"/>
14   </xs:attributeGroup>
15
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"/>
23   </xs:attributeGroup>
24
25   <xs:attributeGroup name="source_itemsAttrGroup">
26     <xs:attribute ref="count" />
27   </xs:attributeGroup>
28
29   <xs:attributeGroup name="block_itemsAttrGroup">
30     <xs:attribute ref="functional_count" />
31     <xs:attribute ref="group_count" />
32   </xs:attributeGroup>
33
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" />
41   </xs:attributeGroup>
42   
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"/>    
51   </xs:attributeGroup>
52
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" />
58   </xs:attributeGroup>
59   
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" />
65   </xs:attributeGroup>
66
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" />
73   </xs:attributeGroup>
74   
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" />
81   </xs:attributeGroup>
82
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" />
88   </xs:attributeGroup>
89
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" />
95   </xs:attributeGroup>
96
97   <xs:attributeGroup name="connectionAttrGroup">
98     <xs:attribute ref="from" />
99     <xs:attribute ref="to" />
100     <xs:attribute ref="visible" use="optional" />
101   </xs:attributeGroup>
102
103   <xs:attributeGroup name="modifierAttrGroup">
104     <xs:attribute ref="id" />
105     <xs:attribute ref="type" />
106     <xs:attribute ref="params" />
107   </xs:attributeGroup>
108   
109
110   <!-- déclaration des attributs -->
111
112   <xs:attribute name="count">
113     <xs:simpleType>
114       <xs:restriction base="xs:nonNegativeInteger">
115         <xs:minInclusive value="0"/>
116       </xs:restriction>
117     </xs:simpleType>
118   </xs:attribute>
119
120   <xs:attribute name="id">
121     <xs:simpleType>
122       <xs:restriction base="xs:nonNegativeInteger">
123         <xs:minInclusive value="0"/>
124       </xs:restriction>
125     </xs:simpleType>
126   </xs:attribute>
127
128   <xs:attribute name="upper_scene">
129     <xs:simpleType>
130       <xs:restriction base="xs:integer">
131         <xs:minInclusive value="-1"/>
132       </xs:restriction>
133     </xs:simpleType>
134   </xs:attribute>
135
136   <xs:attribute name="upper_group">
137     <xs:simpleType>
138       <xs:restriction base="xs:integer">
139         <xs:minInclusive value="-1"/>
140       </xs:restriction>
141     </xs:simpleType>
142   </xs:attribute>
143
144   <xs:attribute name="upper_item">
145     <xs:simpleType>
146       <xs:restriction base="xs:integer">
147         <xs:minInclusive value="-1"/>
148       </xs:restriction>
149     </xs:simpleType>
150   </xs:attribute>
151
152   <xs:attribute name="visible">
153     <xs:simpleType>
154       <xs:restriction base="xs:string">
155         <xs:enumeration value="true"/>
156         <xs:enumeration value="false"/>
157       </xs:restriction>
158     </xs:simpleType>
159   </xs:attribute>
160   
161   <xs:attribute name="inside_group">
162     <xs:simpleType>
163       <xs:restriction base="xs:nonNegativeInteger">
164         <xs:minInclusive value="0"/>
165       </xs:restriction>
166     </xs:simpleType>
167   </xs:attribute>
168
169   <xs:attribute name="functional_count">
170     <xs:simpleType>
171       <xs:restriction base="xs:nonNegativeInteger">
172         <xs:minInclusive value="0"/>
173       </xs:restriction>
174     </xs:simpleType>
175   </xs:attribute>
176
177   <xs:attribute name="group_count">
178     <xs:simpleType>
179       <xs:restriction base="xs:nonNegativeInteger">
180         <xs:minInclusive value="0"/>
181       </xs:restriction>
182     </xs:simpleType>
183   </xs:attribute>
184
185   <xs:attribute name="value" type="xs:string"/>
186
187   <xs:attribute name="from">
188     <xs:simpleType>
189       <xs:restriction base="xs:nonNegativeInteger">
190         <xs:minInclusive value="0"/>
191       </xs:restriction>
192     </xs:simpleType>
193   </xs:attribute>
194
195   <xs:attribute name="to">
196     <xs:simpleType>
197       <xs:restriction base="xs:nonNegativeInteger">
198         <xs:minInclusive value="0"/>
199       </xs:restriction>
200     </xs:simpleType>
201   </xs:attribute>
202
203   <xs:attribute name="purpose">
204     <xs:simpleType>
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"/>
210       </xs:restriction>
211     </xs:simpleType>
212   </xs:attribute>
213   
214   <xs:attribute name="direction">
215     <xs:simpleType>
216       <xs:restriction base="xs:string">
217         <xs:enumeration value="input"/>
218         <xs:enumeration value="output"/>
219         <xs:enumeration value="inout"/>
220       </xs:restriction>
221     </xs:simpleType>
222   </xs:attribute>
223
224   <xs:attribute name="orientation">
225     <xs:simpleType>
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"/>
231       </xs:restriction>
232     </xs:simpleType>
233   </xs:attribute>
234   
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"/>
245
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">
253     <xs:simpleType>
254       <xs:restriction base="xs:string">
255         <xs:enumeration value="true"/>
256         <xs:enumeration value="false"/>
257       </xs:restriction>
258     </xs:simpleType>
259   </xs:attribute>
260
261
262   <!-- déclaration des groupes d'éléments -->
263
264   <xs:group name="rootElmtGroup">
265     <xs:sequence>
266       <xs:element ref="parameters"/>      
267       <xs:element ref="scenes"/>
268       <xs:element ref="connections"/>
269       <xs:element ref="modifiers"/>
270     </xs:sequence>
271   </xs:group>
272
273   <xs:group name="sceneElmtGroup">
274     <xs:sequence>
275       <xs:element ref="group_item"/>
276       <xs:element ref="source_items" minOccurs="0" maxOccurs="unbounded"/>        
277       <xs:element ref="block_items"/>
278     </xs:sequence>
279   </xs:group>
280
281   <xs:group name="source_itemsElmtGroup">
282     <xs:sequence>
283       <xs:element ref="source_item" minOccurs="0" maxOccurs="unbounded"/>
284     </xs:sequence>
285   </xs:group>
286   
287   <xs:group name="block_itemsElmtGroup">
288     <xs:sequence>
289       <xs:element ref="bi_functional" minOccurs="0" maxOccurs="unbounded"/>
290       <xs:element ref="bi_group" minOccurs="0" maxOccurs="unbounded"/>      
291     </xs:sequence>
292   </xs:group>
293
294   <xs:group name="source_itemElmtGroup">
295     <xs:sequence>
296       <xs:element ref="source_parameters"/>
297       <xs:element ref="source_ifaces"/>
298     </xs:sequence>
299   </xs:group>
300   
301   <xs:group name="bi_functionalElmtGroup">
302     <xs:sequence>
303       <xs:element ref="bif_parameters"/>
304       <xs:element ref="bif_ifaces"/>
305     </xs:sequence>
306   </xs:group>
307
308
309   <!-- déclaration des éléments -->
310   <xs:element name="parameters">
311     <xs:complexType>
312       <xs:sequence>
313         <xs:element ref="block_view" />
314         <xs:element ref="interface_view" />
315         <xs:element ref="connection_view" />
316       </xs:sequence>
317     </xs:complexType>
318   </xs:element>
319   
320   <xs:element name="block_view">
321     <xs:complexType>
322       <xs:attribute ref="width"/>
323       <xs:attribute ref="height"/>
324       <xs:attribute ref="font"/>
325       <xs:attribute ref="font_size"/>
326     </xs:complexType>
327   </xs:element>
328
329   <xs:element name="interface_view">
330     <xs:complexType>
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"/>
336     </xs:complexType>
337   </xs:element>
338
339   <xs:element name="connection_view">
340     <xs:complexType>
341       <xs:attribute ref="gap_length"/>      
342       <xs:attribute ref="auto_conn"/>
343     </xs:complexType>
344   </xs:element>
345
346   <xs:element name="scenes">
347     <xs:complexType>
348       <xs:sequence>
349         <xs:element ref="scene" maxOccurs="unbounded" />
350       </xs:sequence>
351       <xs:attribute ref="count"/>
352     </xs:complexType>
353   </xs:element>
354
355   <xs:element name="scene">
356     <xs:complexType>
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" />
361     </xs:complexType>
362   </xs:element>
363
364   <xs:element name="group_item">
365     <xs:complexType>
366       <xs:sequence>
367         <xs:element ref="group_ifaces" maxOccurs="unbounded" />
368       </xs:sequence>    
369       <xs:attributeGroup ref="group_itemAttrGroup"/>
370     </xs:complexType>
371   </xs:element>
372
373   <xs:element name="group_ifaces">
374     <xs:complexType>
375       <xs:sequence>
376         <xs:element ref="group_iface" minOccurs="0" maxOccurs="unbounded"/>
377       </xs:sequence>
378       <xs:attribute ref="count"/>
379     </xs:complexType>
380   </xs:element>
381
382   <xs:element name="group_iface">
383     <xs:complexType>
384       <xs:attributeGroup ref="group_ifaceAttrGroup"/>
385     </xs:complexType>
386   </xs:element>
387
388   <xs:element name="source_items">
389     <xs:complexType>
390       <xs:group ref="source_itemsElmtGroup"/>
391       <xs:attributeGroup ref="source_itemsAttrGroup"/>
392     </xs:complexType>
393   </xs:element>
394   
395   <xs:element name="block_items">
396     <xs:complexType>
397       <xs:group ref="block_itemsElmtGroup"/>
398       <xs:attributeGroup ref="block_itemsAttrGroup"/>
399     </xs:complexType>
400   </xs:element>
401
402   <xs:element name="source_item">
403     <xs:complexType>
404       <xs:group ref="source_itemElmtGroup"/>
405       <xs:attributeGroup ref="source_itemAttrGroup"/>
406     </xs:complexType>
407   </xs:element>
408   
409   <xs:element name="bi_functional">
410     <xs:complexType>
411       <xs:group ref="bi_functionalElmtGroup"/>
412       <xs:attributeGroup ref="bi_functionalAttrGroup"/>
413     </xs:complexType>
414   </xs:element>
415
416   <xs:element name="source_parameters">
417     <xs:complexType>
418       <xs:sequence>
419         <xs:element ref="source_parameter" minOccurs="0" maxOccurs="unbounded" />
420       </xs:sequence>
421     </xs:complexType>
422   </xs:element>
423   
424   <xs:element name="source_parameter">
425     <xs:complexType>
426       <xs:attributeGroup ref="source_parameterAttrGroup"/>
427     </xs:complexType>
428   </xs:element>
429   
430   <xs:element name="bif_parameters">
431     <xs:complexType>
432       <xs:sequence>
433         <xs:element ref="bif_parameter" minOccurs="0" maxOccurs="unbounded" />
434       </xs:sequence>
435     </xs:complexType>
436   </xs:element>
437   
438   <xs:element name="bif_parameter">
439     <xs:complexType>
440       <xs:attributeGroup ref="bif_parameterAttrGroup"/>
441     </xs:complexType>
442   </xs:element>
443
444   <xs:element name="source_ifaces">
445     <xs:complexType>
446       <xs:sequence>
447         <xs:element ref="source_iface" minOccurs="0" maxOccurs="unbounded" />
448       </xs:sequence>
449       <xs:attribute ref="count"/>
450     </xs:complexType>
451   </xs:element>
452   
453   <xs:element name="source_iface">
454     <xs:complexType>
455       <xs:attributeGroup ref="source_ifaceAttrGroup"/>
456     </xs:complexType>
457   </xs:element>
458
459   <xs:element name="bif_ifaces">
460     <xs:complexType>
461       <xs:sequence>
462         <xs:element ref="bif_iface" minOccurs="0" maxOccurs="unbounded" />
463       </xs:sequence>
464       <xs:attribute ref="count"/>
465     </xs:complexType>
466   </xs:element>
467
468   <xs:element name="bif_iface">
469     <xs:complexType>
470       <xs:attributeGroup ref="bif_ifaceAttrGroup"/>
471     </xs:complexType>
472   </xs:element>
473
474   <xs:element name="bi_group">
475     <xs:complexType>
476       <xs:sequence>
477         <xs:element ref="big_ifaces"/>
478       </xs:sequence>
479       <xs:attributeGroup ref="bi_groupAttrGroup"/>
480     </xs:complexType>
481   </xs:element>
482
483   <xs:element name="big_ifaces">
484     <xs:complexType>
485       <xs:sequence>
486         <xs:element ref="big_iface" minOccurs="0" maxOccurs="unbounded" />
487       </xs:sequence>
488       <xs:attribute ref="count" />
489     </xs:complexType>
490   </xs:element>
491
492   <xs:element name="big_iface">
493     <xs:complexType>
494       <xs:attributeGroup ref="big_ifaceAttrGroup" />
495     </xs:complexType>
496   </xs:element>
497
498   <xs:element name="connections">
499     <xs:complexType>
500       <xs:sequence>
501         <xs:element ref="connection" minOccurs="0" maxOccurs="unbounded"/>
502       </xs:sequence>
503       <xs:attribute ref="count" />
504     </xs:complexType>
505   </xs:element>
506
507   <xs:element name="connection">
508     <xs:complexType>
509       <xs:attributeGroup ref="connectionAttrGroup"/>
510     </xs:complexType>
511   </xs:element>
512
513   <xs:element name="modifiers">
514     <xs:complexType>
515       <xs:sequence>
516         <xs:element ref="modifier" minOccurs="0" maxOccurs="unbounded"/>
517       </xs:sequence>
518     </xs:complexType>
519   </xs:element>
520
521   <xs:element name="modifier">
522     <xs:complexType>
523       <xs:attributeGroup ref="modifierAttrGroup"/>
524     </xs:complexType>
525   </xs:element>
526   
527   <!-- racine du document -->
528
529   <xs:element name="blast_project">
530     <xs:complexType>
531       <xs:group ref="rootElmtGroup"/>
532       <xs:attribute ref="project_path" />
533     </xs:complexType>
534   </xs:element>
535
536 </xs:schema>