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

Private GIT Repository
de6ec42d1ef7bbee7fb0e4797518169e118eff8a
[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:attributeGroup>
51
52   <xs:attributeGroup name="source_parameterAttrGroup">
53     <xs:attribute ref="name" />
54     <xs:attribute ref="value" />
55     <xs:attribute ref="context" />
56     <xs:attribute ref="type" />
57   </xs:attributeGroup>
58   
59   <xs:attributeGroup name="bif_parameterAttrGroup">
60     <xs:attribute ref="name" />
61     <xs:attribute ref="value" />
62     <xs:attribute ref="context" />
63     <xs:attribute ref="type" />
64   </xs:attributeGroup>
65
66   <xs:attributeGroup name="source_ifaceAttrGroup">
67     <xs:attribute ref="id" />
68     <xs:attribute ref="name" />
69     <xs:attribute ref="ref_name" />
70     <xs:attribute ref="orientation" />
71     <xs:attribute ref="position" />
72   </xs:attributeGroup>
73   
74   <xs:attributeGroup name="bif_ifaceAttrGroup">
75     <xs:attribute ref="id" />
76     <xs:attribute ref="name" />
77     <xs:attribute ref="ref_name" />
78     <xs:attribute ref="orientation" />
79     <xs:attribute ref="position" />
80   </xs:attributeGroup>
81
82   <xs:attributeGroup name="bi_groupAttrGroup">
83     <xs:attribute ref="id" />
84     <xs:attribute ref="inside_group" />
85     <xs:attribute ref="position" />
86     <xs:attribute ref="dimension" />
87   </xs:attributeGroup>
88
89   <xs:attributeGroup name="big_ifaceAttrGroup">
90     <xs:attribute ref="id" />
91     <xs:attribute ref="ref_name" />
92     <xs:attribute ref="orientation" />
93     <xs:attribute ref="position" />
94   </xs:attributeGroup>
95
96   <xs:attributeGroup name="connectionAttrGroup">
97     <xs:attribute ref="from" />
98     <xs:attribute ref="to" />
99   </xs:attributeGroup>
100
101   <xs:attributeGroup name="modifierAttrGroup">
102     <xs:attribute ref="id" />
103     <xs:attribute ref="type" />
104     <xs:attribute ref="params" />
105   </xs:attributeGroup>
106   
107
108   <!-- déclaration des attributs -->
109
110   <xs:attribute name="count">
111     <xs:simpleType>
112       <xs:restriction base="xs:nonNegativeInteger">
113         <xs:minInclusive value="0"/>
114       </xs:restriction>
115     </xs:simpleType>
116   </xs:attribute>
117
118   <xs:attribute name="id">
119     <xs:simpleType>
120       <xs:restriction base="xs:nonNegativeInteger">
121         <xs:minInclusive value="0"/>
122       </xs:restriction>
123     </xs:simpleType>
124   </xs:attribute>
125
126   <xs:attribute name="upper_scene">
127     <xs:simpleType>
128       <xs:restriction base="xs:integer">
129         <xs:minInclusive value="-1"/>
130       </xs:restriction>
131     </xs:simpleType>
132   </xs:attribute>
133
134   <xs:attribute name="upper_group">
135     <xs:simpleType>
136       <xs:restriction base="xs:integer">
137         <xs:minInclusive value="-1"/>
138       </xs:restriction>
139     </xs:simpleType>
140   </xs:attribute>
141
142   <xs:attribute name="upper_item">
143     <xs:simpleType>
144       <xs:restriction base="xs:integer">
145         <xs:minInclusive value="-1"/>
146       </xs:restriction>
147     </xs:simpleType>
148   </xs:attribute>
149
150   <xs:attribute name="inside_group">
151     <xs:simpleType>
152       <xs:restriction base="xs:nonNegativeInteger">
153         <xs:minInclusive value="0"/>
154       </xs:restriction>
155     </xs:simpleType>
156   </xs:attribute>
157
158   <xs:attribute name="functional_count">
159     <xs:simpleType>
160       <xs:restriction base="xs:nonNegativeInteger">
161         <xs:minInclusive value="0"/>
162       </xs:restriction>
163     </xs:simpleType>
164   </xs:attribute>
165
166   <xs:attribute name="group_count">
167     <xs:simpleType>
168       <xs:restriction base="xs:nonNegativeInteger">
169         <xs:minInclusive value="0"/>
170       </xs:restriction>
171     </xs:simpleType>
172   </xs:attribute>
173
174   <xs:attribute name="value" type="xs:string"/>
175
176   <xs:attribute name="from">
177     <xs:simpleType>
178       <xs:restriction base="xs:nonNegativeInteger">
179         <xs:minInclusive value="0"/>
180       </xs:restriction>
181     </xs:simpleType>
182   </xs:attribute>
183
184   <xs:attribute name="to">
185     <xs:simpleType>
186       <xs:restriction base="xs:nonNegativeInteger">
187         <xs:minInclusive value="0"/>
188       </xs:restriction>
189     </xs:simpleType>
190   </xs:attribute>
191
192   <xs:attribute name="purpose">
193     <xs:simpleType>
194       <xs:restriction base="xs:string">
195         <xs:enumeration value="data"/>
196         <xs:enumeration value="clock"/>
197         <xs:enumeration value="reset"/>
198         <xs:enumeration value="wishbone"/>
199       </xs:restriction>
200     </xs:simpleType>
201   </xs:attribute>
202   
203   <xs:attribute name="direction">
204     <xs:simpleType>
205       <xs:restriction base="xs:string">
206         <xs:enumeration value="input"/>
207         <xs:enumeration value="output"/>
208         <xs:enumeration value="inout"/>
209       </xs:restriction>
210     </xs:simpleType>
211   </xs:attribute>
212
213   <xs:attribute name="orientation">
214     <xs:simpleType>
215       <xs:restriction base="xs:string">
216       <xs:enumeration value="west"/>
217       <xs:enumeration value="east"/>
218       <xs:enumeration value="north"/>
219       <xs:enumeration value="south"/>
220       </xs:restriction>
221     </xs:simpleType>
222   </xs:attribute>
223   
224   <xs:attribute name="position" type="xs:string"/>
225   <xs:attribute name="dimension" type="xs:string"/>
226   <xs:attribute name="name" type="xs:string"/>
227   <xs:attribute name="ref_name" type="xs:string"/>
228   <xs:attribute name="ref_xml" type="xs:string"/>
229   <xs:attribute name="ref_md5" type="xs:string"/>
230   <xs:attribute name="context" type="xs:string"/>
231   <xs:attribute name="type" type="xs:string"/>
232   <xs:attribute name="params" type="xs:string"/>  
233
234
235   <!-- déclaration des groupes d'éléments -->
236
237   <xs:group name="rootElmtGroup">
238     <xs:sequence>
239       <xs:element ref="scenes"/>
240       <xs:element ref="connections"/>
241       <xs:element ref="modifiers"/>
242     </xs:sequence>
243   </xs:group>
244
245   <xs:group name="sceneElmtGroup">
246     <xs:sequence>
247       <xs:element ref="group_item"/>
248       <xs:element ref="source_items" minOccurs="0" maxOccurs="unbounded"/>        
249       <xs:element ref="block_items"/>
250     </xs:sequence>
251   </xs:group>
252
253   <xs:group name="source_itemsElmtGroup">
254     <xs:sequence>
255       <xs:element ref="source_item" minOccurs="0" maxOccurs="unbounded"/>
256     </xs:sequence>
257   </xs:group>
258   
259   <xs:group name="block_itemsElmtGroup">
260     <xs:sequence>
261       <xs:element ref="bi_functional" minOccurs="0" maxOccurs="unbounded"/>
262       <xs:element ref="bi_group" minOccurs="0" maxOccurs="unbounded"/>      
263     </xs:sequence>
264   </xs:group>
265
266   <xs:group name="source_itemElmtGroup">
267     <xs:sequence>
268       <xs:element ref="source_parameters"/>
269       <xs:element ref="source_ifaces"/>
270     </xs:sequence>
271   </xs:group>
272   
273   <xs:group name="bi_functionalElmtGroup">
274     <xs:sequence>
275       <xs:element ref="bif_parameters"/>
276       <xs:element ref="bif_ifaces"/>
277     </xs:sequence>
278   </xs:group>
279
280
281   <!-- déclaration des éléments -->
282
283   <xs:element name="scenes">
284     <xs:complexType>
285       <xs:sequence>
286         <xs:element ref="scene" maxOccurs="unbounded" />
287       </xs:sequence>
288       <xs:attribute ref="count"/>
289     </xs:complexType>
290   </xs:element>
291
292   <xs:element name="scene">
293     <xs:complexType>
294       <xs:group ref="sceneElmtGroup"/>
295       <xs:attribute ref="id"/>
296       <xs:attribute ref="upper_scene"/>
297     </xs:complexType>
298   </xs:element>
299
300   <xs:element name="group_item">
301     <xs:complexType>
302       <xs:sequence>
303         <xs:element ref="group_ifaces" maxOccurs="unbounded" />
304       </xs:sequence>    
305       <xs:attributeGroup ref="group_itemAttrGroup"/>
306     </xs:complexType>
307   </xs:element>
308
309   <xs:element name="group_ifaces">
310     <xs:complexType>
311       <xs:sequence>
312         <xs:element ref="group_iface" minOccurs="0" maxOccurs="unbounded"/>
313       </xs:sequence>
314       <xs:attribute ref="count"/>
315     </xs:complexType>
316   </xs:element>
317
318   <xs:element name="group_iface">
319     <xs:complexType>
320       <xs:attributeGroup ref="group_ifaceAttrGroup"/>
321     </xs:complexType>
322   </xs:element>
323
324   <xs:element name="source_items">
325     <xs:complexType>
326       <xs:group ref="source_itemsElmtGroup"/>
327       <xs:attributeGroup ref="source_itemsAttrGroup"/>
328     </xs:complexType>
329   </xs:element>
330   
331   <xs:element name="block_items">
332     <xs:complexType>
333       <xs:group ref="block_itemsElmtGroup"/>
334       <xs:attributeGroup ref="block_itemsAttrGroup"/>
335     </xs:complexType>
336   </xs:element>
337
338   <xs:element name="source_item">
339     <xs:complexType>
340       <xs:group ref="source_itemElmtGroup"/>
341       <xs:attributeGroup ref="source_itemAttrGroup"/>
342     </xs:complexType>
343   </xs:element>
344   
345   <xs:element name="bi_functional">
346     <xs:complexType>
347       <xs:group ref="bi_functionalElmtGroup"/>
348       <xs:attributeGroup ref="bi_functionalAttrGroup"/>
349     </xs:complexType>
350   </xs:element>
351
352   <xs:element name="source_parameters">
353     <xs:complexType>
354       <xs:sequence>
355         <xs:element ref="source_parameter" minOccurs="0" maxOccurs="unbounded" />
356       </xs:sequence>
357     </xs:complexType>
358   </xs:element>
359   
360   <xs:element name="source_parameter">
361     <xs:complexType>
362       <xs:attributeGroup ref="source_parameterAttrGroup"/>
363     </xs:complexType>
364   </xs:element>
365   
366   <xs:element name="bif_parameters">
367     <xs:complexType>
368       <xs:sequence>
369         <xs:element ref="bif_parameter" minOccurs="0" maxOccurs="unbounded" />
370       </xs:sequence>
371     </xs:complexType>
372   </xs:element>
373   
374   <xs:element name="bif_parameter">
375     <xs:complexType>
376       <xs:attributeGroup ref="bif_parameterAttrGroup"/>
377     </xs:complexType>
378   </xs:element>
379
380   <xs:element name="source_ifaces">
381     <xs:complexType>
382       <xs:sequence>
383         <xs:element ref="source_iface" minOccurs="0" maxOccurs="unbounded" />
384       </xs:sequence>
385       <xs:attribute ref="count"/>
386     </xs:complexType>
387   </xs:element>
388   
389   <xs:element name="source_iface">
390     <xs:complexType>
391       <xs:attributeGroup ref="source_ifaceAttrGroup"/>
392     </xs:complexType>
393   </xs:element>
394
395   <xs:element name="bif_ifaces">
396     <xs:complexType>
397       <xs:sequence>
398         <xs:element ref="bif_iface" minOccurs="0" maxOccurs="unbounded" />
399       </xs:sequence>
400       <xs:attribute ref="count"/>
401     </xs:complexType>
402   </xs:element>
403
404   <xs:element name="bif_iface">
405     <xs:complexType>
406       <xs:attributeGroup ref="bif_ifaceAttrGroup"/>
407     </xs:complexType>
408   </xs:element>
409
410   <xs:element name="bi_group">
411     <xs:complexType>
412       <xs:sequence>
413         <xs:element ref="big_ifaces"/>
414       </xs:sequence>
415       <xs:attributeGroup ref="bi_groupAttrGroup"/>
416     </xs:complexType>
417   </xs:element>
418
419   <xs:element name="big_ifaces">
420     <xs:complexType>
421       <xs:sequence>
422         <xs:element ref="big_iface" minOccurs="0" maxOccurs="unbounded" />
423       </xs:sequence>
424       <xs:attribute ref="count" />
425     </xs:complexType>
426   </xs:element>
427
428   <xs:element name="big_iface">
429     <xs:complexType>
430       <xs:attributeGroup ref="big_ifaceAttrGroup" />
431     </xs:complexType>
432   </xs:element>
433
434   <xs:element name="connections">
435     <xs:complexType>
436       <xs:sequence>
437         <xs:element ref="connection" minOccurs="0" maxOccurs="unbounded"/>
438       </xs:sequence>
439       <xs:attribute ref="count" />
440     </xs:complexType>
441   </xs:element>
442
443   <xs:element name="connection">
444     <xs:complexType>
445       <xs:attributeGroup ref="connectionAttrGroup"/>
446     </xs:complexType>
447   </xs:element>
448
449   <xs:element name="modifiers">
450     <xs:complexType>
451       <xs:sequence>
452         <xs:element ref="modifier" minOccurs="0" maxOccurs="unbounded"/>
453       </xs:sequence>
454     </xs:complexType>
455   </xs:element>
456
457   <xs:element name="modifier">
458     <xs:complexType>
459       <xs:attributeGroup ref="modifierAttrGroup"/>
460     </xs:complexType>
461   </xs:element>
462   
463   <!-- racine du document -->
464
465   <xs:element name="blast_project">
466     <xs:complexType>
467       <xs:group ref="rootElmtGroup"/>
468     </xs:complexType>
469   </xs:element>
470
471 </xs:schema>