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

Private GIT Repository
pattern comput done
[blast.git] / reference.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
3
4     <!-- déclaration des groupes d'attributs -->
5
6     <xs:attributeGroup name="parameterAttrGroup">
7       <xs:attribute ref="name" use="required"/>
8         <xs:attribute name="type" type="typeparam" use="required"/>
9         <xs:attribute ref="wishbone" use="optional"/>
10         <xs:attribute ref="value" use="optional"/>
11         <xs:attribute ref="iface" use="optional"/>
12         <xs:attribute ref="width" use="optional"/>      
13         <xs:attribute ref="context" use="required"/>
14     </xs:attributeGroup>
15
16     <xs:attributeGroup name="inOutAttrGroup">
17         <xs:attribute ref="name" use="required"/>
18         <xs:attribute ref="width" use="required"/>
19         <xs:attribute name="type" type="typeiface"/>
20         <xs:attribute ref="purpose"/>
21         <xs:attribute ref="multiplicity"/>
22     </xs:attributeGroup>
23
24
25     <!-- déclaration des attributs -->
26
27     <xs:attribute name="ids" type="xs:string"/>
28     <xs:attribute name="name" type="xs:string"/>
29
30     <xs:simpleType name="typeparam">
31       <xs:restriction base="xs:string">
32         <xs:enumeration value="string"/>
33         <xs:enumeration value="expression"/>
34         <xs:enumeration value="boolean"/>
35         <xs:enumeration value="integer"/>
36         <xs:enumeration value="natural"/>
37         <xs:enumeration value="positive"/>
38         <xs:enumeration value="real"/>
39         <xs:enumeration value="time"/>
40       </xs:restriction>
41     </xs:simpleType>
42
43     <xs:simpleType name="typeiface">
44       <xs:restriction base="xs:string">
45         <xs:enumeration value="expression"/>
46         <xs:enumeration value="boolean"/>
47         <xs:enumeration value="natural"/>
48       </xs:restriction>
49     </xs:simpleType>
50       
51     <xs:attribute name="wishbone" type="xs:string"/>
52     <xs:attribute name="context" type="xs:string" />
53     <xs:attribute name="multiplicity" type="xs:string" />
54     <xs:attribute name="width" type="xs:string"/>
55     <xs:attribute name="purpose" type="xs:string"/>
56     <xs:attribute name="value" type="xs:string"/>
57     <xs:attribute name="iface" type="xs:string"/>
58     <xs:attribute name="path" type="xs:string" />
59
60
61     <!-- déclaration des groupes d'éléments -->
62
63     <xs:group name="blockElmtGroup">
64         <xs:sequence>
65             <xs:element ref="informations"/>
66             <xs:element ref="parameters"/>
67             <xs:element ref="interfaces"/>
68             <xs:element ref="implementations" minOccurs="0"/>
69         </xs:sequence>
70     </xs:group>
71
72     <xs:group name="informationsElmtGroup">
73         <xs:sequence>
74             <xs:element ref="name"/>
75             <xs:element ref="category"/>
76             <xs:element ref="description"/>
77         </xs:sequence>
78     </xs:group>
79
80     <xs:group name="descriptionElmtGroup">
81         <xs:sequence>
82             <xs:element ref="brief"/>
83             <xs:element ref="detailed"/>
84         </xs:sequence>
85     </xs:group>
86
87     <xs:group name="interfacesElmtGroup">
88         <xs:sequence>
89             <xs:element ref="inputs" minOccurs="0"/>
90             <xs:element ref="outputs" minOccurs="1"/>
91             <xs:element ref="bidirs" minOccurs="0"/>
92         </xs:sequence>
93     </xs:group>
94
95
96     <!-- déclaration des éléments -->
97
98     <xs:element name="informations">
99         <xs:complexType>
100             <xs:group ref="informationsElmtGroup"/>
101         </xs:complexType>
102     </xs:element>
103
104     <xs:element name="name" type="xs:string" />
105
106     <xs:element name="category">
107         <xs:complexType>
108             <xs:attribute ref="ids" use="required"/>
109         </xs:complexType>
110     </xs:element>
111
112     <xs:element name="description">
113         <xs:complexType>
114             <xs:group ref="descriptionElmtGroup"/>
115         </xs:complexType>
116     </xs:element>
117
118     <xs:element name="brief" type="xs:string" />
119
120     <xs:element name="detailed" type="xs:string" />
121
122     <xs:element name="parameters">
123         <xs:complexType>
124             <xs:sequence>
125                 <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
126             </xs:sequence>
127         </xs:complexType>
128     </xs:element>
129
130     <xs:element name="parameter">
131         <xs:complexType>
132             <xs:attributeGroup ref="parameterAttrGroup"/>
133         </xs:complexType>
134     </xs:element>
135
136     <xs:element name="interfaces">
137         <xs:complexType>
138             <xs:group ref="interfacesElmtGroup"/>
139         </xs:complexType>
140     </xs:element>
141
142     <xs:element name="control">
143         <xs:complexType>
144             <xs:attribute ref="iface"/>
145         </xs:complexType>
146     </xs:element>
147
148     <xs:element name="inputs">
149         <xs:complexType>
150             <xs:sequence>
151               <xs:element ref="input" maxOccurs="unbounded" />
152               <xs:element ref="control" minOccurs="0" maxOccurs="unbounded" />
153             </xs:sequence>
154         </xs:complexType>
155     </xs:element>
156
157     <xs:element name="input">
158         <xs:complexType>
159             <xs:attributeGroup ref="inOutAttrGroup"/>
160         </xs:complexType>
161     </xs:element>
162
163     <xs:element name="outputs">
164         <xs:complexType>
165             <xs:sequence>
166               <xs:element ref="output" maxOccurs="unbounded" />
167               <xs:element ref="control" minOccurs="0" maxOccurs="unbounded" />
168             </xs:sequence>
169         </xs:complexType>
170     </xs:element>
171
172     <xs:element name="output">
173         <xs:complexType>
174             <xs:attributeGroup ref="inOutAttrGroup"/>
175         </xs:complexType>
176     </xs:element>
177
178     <xs:element name="bidirs">
179         <xs:complexType>
180             <xs:sequence>
181                 <xs:element ref="bidir" maxOccurs="unbounded" />
182             </xs:sequence>
183         </xs:complexType>
184     </xs:element>
185
186     <xs:element name="bidir">
187         <xs:complexType>
188             <xs:attributeGroup ref="inOutAttrGroup"/>
189         </xs:complexType>
190     </xs:element>
191
192     <xs:element name="implementations">
193         <xs:complexType>
194             <xs:sequence>
195                 <xs:element ref="implementation" maxOccurs="unbounded" />
196             </xs:sequence>
197         </xs:complexType>
198     </xs:element>
199
200     <xs:element name="implementation">
201         <xs:complexType>
202             <xs:attribute ref="path" use="required" />
203         </xs:complexType>
204     </xs:element>
205
206
207     <!-- Racine du document -->
208
209     <xs:element name="block">
210         <xs:complexType>
211             <xs:group ref="blockElmtGroup"/>
212         </xs:complexType>
213     </xs:element>
214
215 </xs:schema>