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

Private GIT Repository
start to include clkdomain converters
[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   <xs:attribute name="project_path" type="xs:string"/>  
234
235
236   <!-- déclaration des groupes d'éléments -->
237
238   <xs:group name="rootElmtGroup">
239     <xs:sequence>
240       <xs:element ref="scenes"/>
241       <xs:element ref="connections"/>
242       <xs:element ref="modifiers"/>
243     </xs:sequence>
244   </xs:group>
245
246   <xs:group name="sceneElmtGroup">
247     <xs:sequence>
248       <xs:element ref="group_item"/>
249       <xs:element ref="source_items" minOccurs="0" maxOccurs="unbounded"/>        
250       <xs:element ref="block_items"/>
251     </xs:sequence>
252   </xs:group>
253
254   <xs:group name="source_itemsElmtGroup">
255     <xs:sequence>
256       <xs:element ref="source_item" minOccurs="0" maxOccurs="unbounded"/>
257     </xs:sequence>
258   </xs:group>
259   
260   <xs:group name="block_itemsElmtGroup">
261     <xs:sequence>
262       <xs:element ref="bi_functional" minOccurs="0" maxOccurs="unbounded"/>
263       <xs:element ref="bi_group" minOccurs="0" maxOccurs="unbounded"/>      
264     </xs:sequence>
265   </xs:group>
266
267   <xs:group name="source_itemElmtGroup">
268     <xs:sequence>
269       <xs:element ref="source_parameters"/>
270       <xs:element ref="source_ifaces"/>
271     </xs:sequence>
272   </xs:group>
273   
274   <xs:group name="bi_functionalElmtGroup">
275     <xs:sequence>
276       <xs:element ref="bif_parameters"/>
277       <xs:element ref="bif_ifaces"/>
278     </xs:sequence>
279   </xs:group>
280
281
282   <!-- déclaration des éléments -->
283
284   <xs:element name="scenes">
285     <xs:complexType>
286       <xs:sequence>
287         <xs:element ref="scene" maxOccurs="unbounded" />
288       </xs:sequence>
289       <xs:attribute ref="count"/>
290     </xs:complexType>
291   </xs:element>
292
293   <xs:element name="scene">
294     <xs:complexType>
295       <xs:group ref="sceneElmtGroup"/>
296       <xs:attribute ref="id"/>
297       <xs:attribute ref="upper_scene"/>
298     </xs:complexType>
299   </xs:element>
300
301   <xs:element name="group_item">
302     <xs:complexType>
303       <xs:sequence>
304         <xs:element ref="group_ifaces" maxOccurs="unbounded" />
305       </xs:sequence>    
306       <xs:attributeGroup ref="group_itemAttrGroup"/>
307     </xs:complexType>
308   </xs:element>
309
310   <xs:element name="group_ifaces">
311     <xs:complexType>
312       <xs:sequence>
313         <xs:element ref="group_iface" minOccurs="0" maxOccurs="unbounded"/>
314       </xs:sequence>
315       <xs:attribute ref="count"/>
316     </xs:complexType>
317   </xs:element>
318
319   <xs:element name="group_iface">
320     <xs:complexType>
321       <xs:attributeGroup ref="group_ifaceAttrGroup"/>
322     </xs:complexType>
323   </xs:element>
324
325   <xs:element name="source_items">
326     <xs:complexType>
327       <xs:group ref="source_itemsElmtGroup"/>
328       <xs:attributeGroup ref="source_itemsAttrGroup"/>
329     </xs:complexType>
330   </xs:element>
331   
332   <xs:element name="block_items">
333     <xs:complexType>
334       <xs:group ref="block_itemsElmtGroup"/>
335       <xs:attributeGroup ref="block_itemsAttrGroup"/>
336     </xs:complexType>
337   </xs:element>
338
339   <xs:element name="source_item">
340     <xs:complexType>
341       <xs:group ref="source_itemElmtGroup"/>
342       <xs:attributeGroup ref="source_itemAttrGroup"/>
343     </xs:complexType>
344   </xs:element>
345   
346   <xs:element name="bi_functional">
347     <xs:complexType>
348       <xs:group ref="bi_functionalElmtGroup"/>
349       <xs:attributeGroup ref="bi_functionalAttrGroup"/>
350     </xs:complexType>
351   </xs:element>
352
353   <xs:element name="source_parameters">
354     <xs:complexType>
355       <xs:sequence>
356         <xs:element ref="source_parameter" minOccurs="0" maxOccurs="unbounded" />
357       </xs:sequence>
358     </xs:complexType>
359   </xs:element>
360   
361   <xs:element name="source_parameter">
362     <xs:complexType>
363       <xs:attributeGroup ref="source_parameterAttrGroup"/>
364     </xs:complexType>
365   </xs:element>
366   
367   <xs:element name="bif_parameters">
368     <xs:complexType>
369       <xs:sequence>
370         <xs:element ref="bif_parameter" minOccurs="0" maxOccurs="unbounded" />
371       </xs:sequence>
372     </xs:complexType>
373   </xs:element>
374   
375   <xs:element name="bif_parameter">
376     <xs:complexType>
377       <xs:attributeGroup ref="bif_parameterAttrGroup"/>
378     </xs:complexType>
379   </xs:element>
380
381   <xs:element name="source_ifaces">
382     <xs:complexType>
383       <xs:sequence>
384         <xs:element ref="source_iface" minOccurs="0" maxOccurs="unbounded" />
385       </xs:sequence>
386       <xs:attribute ref="count"/>
387     </xs:complexType>
388   </xs:element>
389   
390   <xs:element name="source_iface">
391     <xs:complexType>
392       <xs:attributeGroup ref="source_ifaceAttrGroup"/>
393     </xs:complexType>
394   </xs:element>
395
396   <xs:element name="bif_ifaces">
397     <xs:complexType>
398       <xs:sequence>
399         <xs:element ref="bif_iface" minOccurs="0" maxOccurs="unbounded" />
400       </xs:sequence>
401       <xs:attribute ref="count"/>
402     </xs:complexType>
403   </xs:element>
404
405   <xs:element name="bif_iface">
406     <xs:complexType>
407       <xs:attributeGroup ref="bif_ifaceAttrGroup"/>
408     </xs:complexType>
409   </xs:element>
410
411   <xs:element name="bi_group">
412     <xs:complexType>
413       <xs:sequence>
414         <xs:element ref="big_ifaces"/>
415       </xs:sequence>
416       <xs:attributeGroup ref="bi_groupAttrGroup"/>
417     </xs:complexType>
418   </xs:element>
419
420   <xs:element name="big_ifaces">
421     <xs:complexType>
422       <xs:sequence>
423         <xs:element ref="big_iface" minOccurs="0" maxOccurs="unbounded" />
424       </xs:sequence>
425       <xs:attribute ref="count" />
426     </xs:complexType>
427   </xs:element>
428
429   <xs:element name="big_iface">
430     <xs:complexType>
431       <xs:attributeGroup ref="big_ifaceAttrGroup" />
432     </xs:complexType>
433   </xs:element>
434
435   <xs:element name="connections">
436     <xs:complexType>
437       <xs:sequence>
438         <xs:element ref="connection" minOccurs="0" maxOccurs="unbounded"/>
439       </xs:sequence>
440       <xs:attribute ref="count" />
441     </xs:complexType>
442   </xs:element>
443
444   <xs:element name="connection">
445     <xs:complexType>
446       <xs:attributeGroup ref="connectionAttrGroup"/>
447     </xs:complexType>
448   </xs:element>
449
450   <xs:element name="modifiers">
451     <xs:complexType>
452       <xs:sequence>
453         <xs:element ref="modifier" minOccurs="0" maxOccurs="unbounded"/>
454       </xs:sequence>
455     </xs:complexType>
456   </xs:element>
457
458   <xs:element name="modifier">
459     <xs:complexType>
460       <xs:attributeGroup ref="modifierAttrGroup"/>
461     </xs:complexType>
462   </xs:element>
463   
464   <!-- racine du document -->
465
466   <xs:element name="blast_project">
467     <xs:complexType>
468       <xs:group ref="rootElmtGroup"/>
469       <xs:attribute ref="project_path" />
470     </xs:complexType>
471   </xs:element>
472
473 </xs:schema>