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

Private GIT Repository
start to include clkdomain converters
[blast.git] / blastconfig.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="categoryAttrGroup">
8         <xs:attribute ref="name" use="required"/>
9         <xs:attribute ref="id" use="required"/>
10         <xs:attribute ref="parent" use="required"/>
11     </xs:attributeGroup>
12
13     <xs:attributeGroup name="blocksAttrGroup">
14         <xs:attribute ref="width" use="required"/>
15         <xs:attribute ref="height" use="required"/>
16         <xs:attribute ref="font" use="required" />
17         <xs:attribute ref="font_size" use="required" />
18     </xs:attributeGroup>
19
20     <xs:attributeGroup name="interfacesAttrGroup">
21         <xs:attribute ref="linelength" use="required" />
22         <xs:attribute ref="width" use="required" />
23         <xs:attribute ref="height" use="required" />
24         <xs:attribute ref="font" use="required" />
25         <xs:attribute ref="font_size" use="required" /> 
26     </xs:attributeGroup>
27
28
29     <!-- déclaration des attributs -->
30
31     <xs:attribute name="nb">
32         <xs:simpleType>
33             <xs:restriction base="xs:nonNegativeInteger">
34                 <xs:minInclusive value="1"/>
35             </xs:restriction>
36         </xs:simpleType>
37     </xs:attribute>
38
39     <xs:attribute name="name" type="xs:string"/>
40
41     <xs:attribute name="id">
42         <xs:simpleType>
43             <xs:restriction base="xs:nonNegativeInteger">
44                 <xs:minInclusive value="0"/>
45             </xs:restriction>
46         </xs:simpleType>
47     </xs:attribute>
48
49     <xs:attribute name="parent">
50         <xs:simpleType>
51             <xs:restriction base="xs:integer">
52                 <xs:minInclusive value="-1"/>
53             </xs:restriction>
54         </xs:simpleType>
55     </xs:attribute>
56
57     <xs:attribute name="path" type="xs:string"/>
58
59     <xs:attribute name="lib_file" type="xs:string"/>
60
61     <xs:attribute name="width">
62         <xs:simpleType>
63             <xs:restriction base="xs:nonNegativeInteger">
64                 <xs:minInclusive value="1"/>
65                 <xs:maxInclusive value="1000"/>
66             </xs:restriction>
67         </xs:simpleType>
68     </xs:attribute>
69
70     <xs:attribute name="height">
71         <xs:simpleType>
72             <xs:restriction base="xs:nonNegativeInteger">
73                 <xs:minInclusive value="1"/>
74                 <xs:maxInclusive value="1000"/>
75             </xs:restriction>
76         </xs:simpleType>
77     </xs:attribute>
78
79     <xs:attribute name="font" type="xs:string"/>
80
81     <xs:attribute name="font_size">
82         <xs:simpleType>
83             <xs:restriction base="xs:nonNegativeInteger">
84                 <xs:minInclusive value="1"/>
85             </xs:restriction>
86         </xs:simpleType>
87     </xs:attribute>
88
89     <xs:attribute name="linelength">
90         <xs:simpleType>
91             <xs:restriction base="xs:nonNegativeInteger">
92                 <xs:minInclusive value="1"/>
93                 <xs:maxInclusive value="100"/>
94             </xs:restriction>
95         </xs:simpleType>
96     </xs:attribute>
97
98     <xs:attribute name="gaplength">
99         <xs:simpleType>
100             <xs:restriction base="xs:nonNegativeInteger">
101                 <xs:minInclusive value="1"/>
102                 <xs:maxInclusive value="100"/>
103             </xs:restriction>
104         </xs:simpleType>
105     </xs:attribute>
106
107
108     <!-- déclaration des groupes d'éléments -->
109
110     <xs:group name="configElmtGroup">
111         <xs:sequence>
112             <xs:element ref="categories"/>
113             <xs:element ref="references"/>
114             <xs:element ref="implementations"/>
115             <xs:element ref="sources"/>     
116             <xs:element ref="defaults" />
117         </xs:sequence>
118     </xs:group>
119
120     <xs:group name="defaultsElmtGroup">
121         <xs:sequence>
122             <xs:element ref="blocks"/>
123             <xs:element ref="interfaces"/>
124             <xs:element ref="connections" />
125         </xs:sequence>
126     </xs:group>
127
128
129     <!-- déclaration des éléments -->
130
131     <xs:element name="category">
132         <xs:complexType>
133             <xs:attributeGroup ref="categoryAttrGroup" />
134         </xs:complexType>
135     </xs:element>
136
137     <xs:element name="reference_lib">
138         <xs:complexType>
139             <xs:attribute ref="path" use="required"/>
140         </xs:complexType>
141     </xs:element>
142
143     <xs:element name="impl_lib">
144       <xs:complexType>
145         <xs:attribute ref="path" use="required"/>
146       </xs:complexType>
147     </xs:element>
148
149     <xs:element name="source_lib">
150       <xs:complexType>
151         <xs:attribute ref="path" use="required"/>
152       </xs:complexType>
153     </xs:element>
154
155     <xs:element name="blocks">
156         <xs:complexType>
157             <xs:attributeGroup ref="blocksAttrGroup" />
158         </xs:complexType>
159     </xs:element>
160
161     <xs:element name="interfaces">
162         <xs:complexType>
163             <xs:attributeGroup ref="interfacesAttrGroup" />
164         </xs:complexType>
165     </xs:element>
166
167     <xs:element name="connections">
168         <xs:complexType>
169             <xs:attribute ref="gaplength" use="required"/>
170         </xs:complexType>
171     </xs:element>
172
173     <xs:element name="categories">
174         <xs:complexType>
175             <xs:sequence>
176                 <xs:element ref="category" maxOccurs="unbounded" />
177             </xs:sequence>
178         </xs:complexType>
179     </xs:element>
180
181     <xs:element name="references">
182         <xs:complexType >
183             <xs:sequence>
184                 <xs:element ref="reference_lib" maxOccurs="unbounded" />
185             </xs:sequence>
186             <xs:attribute ref="nb" use="required"/>
187             <xs:attribute ref="lib_file" use="required"/>
188         </xs:complexType>
189     </xs:element>
190
191     <xs:element name="implementations">
192         <xs:complexType >
193             <xs:sequence>
194                 <xs:element ref="impl_lib" maxOccurs="unbounded" />
195             </xs:sequence>
196             <xs:attribute ref="nb" use="required"/>
197             <xs:attribute ref="lib_file" use="required"/>
198         </xs:complexType>
199     </xs:element>
200
201     <xs:element name="sources">
202         <xs:complexType >
203             <xs:sequence>
204                 <xs:element ref="source_lib" maxOccurs="unbounded" />
205             </xs:sequence>
206             <xs:attribute ref="nb" use="required"/>
207         </xs:complexType>
208     </xs:element>
209     
210     <xs:element name="defaults">
211         <xs:complexType>
212             <xs:group ref="defaultsElmtGroup" />
213         </xs:complexType>       
214     </xs:element>
215
216
217     <!-- Racine du document -->
218
219     <xs:element name="config">
220         <xs:complexType>
221             <xs:group ref="configElmtGroup" />
222         </xs:complexType>       
223     </xs:element>
224
225 </xs:schema>