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

Private GIT Repository
added impl xsd + patterns in impls
[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="direction"/>
20         <xs:attribute ref="orientation"/>
21         <xs:attribute ref="position"/>
22     </xs:attributeGroup>
23
24     <xs:attributeGroup name="block_itemsAttrGroup">
25         <xs:attribute ref="functional_count" />
26         <xs:attribute ref="group_count" />
27     </xs:attributeGroup>
28
29     <xs:attributeGroup name="bi_functionalAttrGroup">
30         <xs:attribute ref="id" />
31         <xs:attribute ref="ref_xml" />
32         <xs:attribute ref="ref_md5" />
33         <xs:attribute ref="name" />
34         <xs:attribute ref="position" />
35         <xs:attribute ref="dimension" />
36     </xs:attributeGroup>
37
38     <xs:attributeGroup name="bif_parameterAttrGroup">
39         <xs:attribute ref="name" />
40         <xs:attribute ref="value" />
41         <xs:attribute ref="context" />
42         <xs:attribute ref="type" />
43
44     </xs:attributeGroup>
45
46     <xs:attributeGroup name="bif_ifaceAttrGroup">
47         <xs:attribute ref="id" />
48         <xs:attribute ref="name" />
49         <xs:attribute ref="ref_name" />
50         <xs:attribute ref="orientation" />
51         <xs:attribute ref="position" />
52     </xs:attributeGroup>
53
54     <xs:attributeGroup name="bi_groupAttrGroup">
55         <xs:attribute ref="id" />
56         <xs:attribute ref="inside_group" />
57         <xs:attribute ref="position" />
58         <xs:attribute ref="dimension" />
59     </xs:attributeGroup>
60
61     <xs:attributeGroup name="big_ifaceAttrGroup">
62         <xs:attribute ref="id" />
63         <xs:attribute ref="ref_name" />
64         <xs:attribute ref="orientation" />
65         <xs:attribute ref="position" />
66     </xs:attributeGroup>
67
68     <xs:attributeGroup name="connectionAttrGroup">
69         <xs:attribute ref="from" />
70         <xs:attribute ref="to" />
71     </xs:attributeGroup>
72
73
74     <!-- déclaration des attributs -->
75
76     <xs:attribute name="count">
77         <xs:simpleType>
78             <xs:restriction base="xs:nonNegativeInteger">
79                 <xs:minInclusive value="0"/>
80             </xs:restriction>
81         </xs:simpleType>
82     </xs:attribute>
83
84     <xs:attribute name="id">
85         <xs:simpleType>
86             <xs:restriction base="xs:nonNegativeInteger">
87                 <xs:minInclusive value="0"/>
88             </xs:restriction>
89         </xs:simpleType>
90     </xs:attribute>
91
92     <xs:attribute name="upper_scene">
93         <xs:simpleType>
94             <xs:restriction base="xs:integer">
95                 <xs:minInclusive value="-1"/>
96             </xs:restriction>
97         </xs:simpleType>
98     </xs:attribute>
99
100     <xs:attribute name="upper_group">
101         <xs:simpleType>
102             <xs:restriction base="xs:integer">
103                 <xs:minInclusive value="-1"/>
104             </xs:restriction>
105         </xs:simpleType>
106     </xs:attribute>
107
108     <xs:attribute name="upper_item">
109         <xs:simpleType>
110             <xs:restriction base="xs:integer">
111                 <xs:minInclusive value="-1"/>
112             </xs:restriction>
113         </xs:simpleType>
114     </xs:attribute>
115
116     <xs:attribute name="inside_group">
117         <xs:simpleType>
118             <xs:restriction base="xs:nonNegativeInteger">
119                 <xs:minInclusive value="0"/>
120             </xs:restriction>
121         </xs:simpleType>
122     </xs:attribute>
123
124     <xs:attribute name="functional_count">
125         <xs:simpleType>
126             <xs:restriction base="xs:nonNegativeInteger">
127                 <xs:minInclusive value="0"/>
128             </xs:restriction>
129         </xs:simpleType>
130     </xs:attribute>
131
132     <xs:attribute name="group_count">
133         <xs:simpleType>
134             <xs:restriction base="xs:nonNegativeInteger">
135                 <xs:minInclusive value="0"/>
136             </xs:restriction>
137         </xs:simpleType>
138     </xs:attribute>
139
140     <xs:attribute name="value">
141         <xs:simpleType>
142             <xs:restriction base="xs:nonNegativeInteger">
143                 <xs:minInclusive value="0"/>
144             </xs:restriction>
145         </xs:simpleType>
146     </xs:attribute>
147
148     <xs:attribute name="from">
149         <xs:simpleType>
150             <xs:restriction base="xs:nonNegativeInteger">
151                 <xs:minInclusive value="0"/>
152             </xs:restriction>
153         </xs:simpleType>
154     </xs:attribute>
155
156     <xs:attribute name="to">
157         <xs:simpleType>
158             <xs:restriction base="xs:nonNegativeInteger">
159                 <xs:minInclusive value="0"/>
160             </xs:restriction>
161         </xs:simpleType>
162     </xs:attribute>
163
164     <xs:attribute name="position" type="xs:string"/>
165     <xs:attribute name="dimension" type="xs:string"/>
166     <xs:attribute name="direction" type="xs:string"/>
167     <xs:attribute name="orientation" type="xs:string"/>
168     <xs:attribute name="name" type="xs:string"/>
169     <xs:attribute name="ref_name" type="xs:string"/>
170     <xs:attribute name="ref_xml" type="xs:string"/>
171     <xs:attribute name="ref_md5" type="xs:string"/>
172     <xs:attribute name="context" type="xs:string"/>
173     <xs:attribute name="type" type="xs:string"/>
174
175
176     <!-- déclaration des groupes d'éléments -->
177
178     <xs:group name="rootElmtGroup">
179         <xs:sequence>
180             <xs:element ref="scenes"/>
181             <xs:element ref="connections"/>     
182         </xs:sequence>
183     </xs:group>
184
185     <xs:group name="sceneElmtGroup">
186         <xs:sequence>
187             <xs:element ref="group_item"/>
188             <xs:element ref="block_items"/>
189         </xs:sequence>
190     </xs:group>
191
192     <xs:group name="block_itemsElmtGroup">
193       <xs:sequence>
194         <xs:element ref="bi_group" minOccurs="0" maxOccurs="unbounded"/>
195         <xs:element ref="bi_functional" minOccurs="0" maxOccurs="unbounded"/>
196         </xs:sequence>
197     </xs:group>
198
199     <xs:group name="bi_functionalElmtGroup">
200         <xs:sequence>
201             <xs:element ref="bif_parameters"/>
202             <xs:element ref="bif_ifaces"/>
203         </xs:sequence>
204     </xs:group>
205
206
207     <!-- déclaration des éléments -->
208
209     <xs:element name="scenes">
210         <xs:complexType>
211             <xs:sequence>
212                 <xs:element ref="scene" maxOccurs="unbounded" />
213             </xs:sequence>
214             <xs:attribute ref="count"/>
215         </xs:complexType>
216     </xs:element>
217
218     <xs:element name="scene">
219         <xs:complexType>
220             <xs:group ref="sceneElmtGroup"/>
221             <xs:attribute ref="id"/>
222             <xs:attribute ref="upper_scene"/>
223         </xs:complexType>
224     </xs:element>
225
226     <xs:element name="group_item">
227         <xs:complexType>
228             <xs:sequence>
229                 <xs:element ref="group_ifaces" maxOccurs="unbounded" />
230             </xs:sequence>      
231             <xs:attributeGroup ref="group_itemAttrGroup"/>
232         </xs:complexType>
233     </xs:element>
234
235     <xs:element name="group_ifaces">
236         <xs:complexType>
237             <xs:sequence>
238                 <xs:element ref="group_iface" minOccurs="0" maxOccurs="unbounded"/>
239             </xs:sequence>
240             <xs:attribute ref="count"/>
241         </xs:complexType>
242     </xs:element>
243
244     <xs:element name="group_iface">
245         <xs:complexType>
246             <xs:attributeGroup ref="group_ifaceAttrGroup"/>
247         </xs:complexType>
248     </xs:element>
249
250     <xs:element name="block_items">
251         <xs:complexType>
252             <xs:group ref="block_itemsElmtGroup"/>
253             <xs:attributeGroup ref="block_itemsAttrGroup"/>
254         </xs:complexType>
255     </xs:element>
256
257     <xs:element name="bi_functional">
258         <xs:complexType>
259             <xs:group ref="bi_functionalElmtGroup"/>
260             <xs:attributeGroup ref="bi_functionalAttrGroup"/>
261         </xs:complexType>
262     </xs:element>
263
264     <xs:element name="bif_parameters">
265         <xs:complexType>
266             <xs:sequence>
267                 <xs:element ref="bif_parameter" minOccurs="0" maxOccurs="unbounded" />
268             </xs:sequence>
269         </xs:complexType>
270     </xs:element>
271         
272     <xs:element name="bif_parameter">
273         <xs:complexType>
274             <xs:attributeGroup ref="bif_parameterAttrGroup"/>
275         </xs:complexType>
276     </xs:element>
277
278     <xs:element name="bif_ifaces">
279         <xs:complexType>
280             <xs:sequence>
281                 <xs:element ref="bif_iface" minOccurs="0" maxOccurs="unbounded" />
282             </xs:sequence>
283             <xs:attribute ref="count"/>
284         </xs:complexType>
285     </xs:element>
286
287     <xs:element name="bif_iface">
288         <xs:complexType>
289             <xs:attributeGroup ref="bif_ifaceAttrGroup"/>
290         </xs:complexType>
291     </xs:element>
292
293     <xs:element name="bi_group">
294         <xs:complexType>
295             <xs:sequence>
296                 <xs:element ref="big_ifaces"/>
297             </xs:sequence>
298             <xs:attributeGroup ref="bi_groupAttrGroup"/>
299         </xs:complexType>
300     </xs:element>
301
302     <xs:element name="big_ifaces">
303         <xs:complexType>
304             <xs:sequence>
305                 <xs:element ref="big_iface" minOccurs="0" maxOccurs="unbounded" />
306             </xs:sequence>
307             <xs:attribute ref="count" />
308         </xs:complexType>
309     </xs:element>
310
311     <xs:element name="big_iface">
312         <xs:complexType>
313             <xs:attributeGroup ref="big_ifaceAttrGroup" />
314         </xs:complexType>
315     </xs:element>
316
317     <xs:element name="connections">
318         <xs:complexType>
319             <xs:sequence>
320                 <xs:element ref="connection" minOccurs="0" maxOccurs="unbounded"/>
321             </xs:sequence>
322             <xs:attribute ref="count" />
323         </xs:complexType>
324     </xs:element>
325
326     <xs:element name="connection">
327         <xs:complexType>
328             <xs:attributeGroup ref="connectionAttrGroup"/>
329         </xs:complexType>
330     </xs:element>
331
332     <!-- racine du document -->
333
334     <xs:element name="blast_project">
335         <xs:complexType>
336             <xs:group ref="rootElmtGroup"/>
337         </xs:complexType>
338     </xs:element>
339
340 </xs:schema>