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

Private GIT Repository
started to include patterns in implementation
[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 ref="type" 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 ref="type"/>
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     <xs:attribute name="type" type="xs:string"/>
30     <xs:attribute name="wishbone" type="xs:string"/>
31     <xs:attribute name="context" type="xs:string" />
32     <xs:attribute name="multiplicity" type="xs:string" />
33     <xs:attribute name="width" type="xs:string"/>
34     <xs:attribute name="purpose" type="xs:string"/>
35     <xs:attribute name="value" type="xs:string"/>
36     <xs:attribute name="iface" type="xs:string"/>
37     <xs:attribute name="path" type="xs:string" />
38
39
40     <!-- déclaration des groupes d'éléments -->
41
42     <xs:group name="blockElmtGroup">
43         <xs:sequence>
44             <xs:element ref="informations"/>
45             <xs:element ref="parameters"/>
46             <xs:element ref="interfaces"/>
47             <xs:element ref="implementations" minOccurs="0"/>
48         </xs:sequence>
49     </xs:group>
50
51     <xs:group name="informationsElmtGroup">
52         <xs:sequence>
53             <xs:element ref="name"/>
54             <xs:element ref="category"/>
55             <xs:element ref="description"/>
56         </xs:sequence>
57     </xs:group>
58
59     <xs:group name="descriptionElmtGroup">
60         <xs:sequence>
61             <xs:element ref="brief"/>
62             <xs:element ref="detailed"/>
63         </xs:sequence>
64     </xs:group>
65
66     <xs:group name="interfacesElmtGroup">
67         <xs:sequence>
68             <xs:element ref="inputs" minOccurs="0"/>
69             <xs:element ref="outputs" minOccurs="1"/>
70             <xs:element ref="bidirs" minOccurs="0"/>
71         </xs:sequence>
72     </xs:group>
73
74
75     <!-- déclaration des éléments -->
76
77     <xs:element name="informations">
78         <xs:complexType>
79             <xs:group ref="informationsElmtGroup"/>
80         </xs:complexType>
81     </xs:element>
82
83     <xs:element name="name" type="xs:string" />
84
85     <xs:element name="category">
86         <xs:complexType>
87             <xs:attribute ref="ids" use="required"/>
88         </xs:complexType>
89     </xs:element>
90
91     <xs:element name="description">
92         <xs:complexType>
93             <xs:group ref="descriptionElmtGroup"/>
94         </xs:complexType>
95     </xs:element>
96
97     <xs:element name="brief" type="xs:string" />
98
99     <xs:element name="detailed" type="xs:string" />
100
101     <xs:element name="parameters">
102         <xs:complexType>
103             <xs:sequence>
104                 <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
105             </xs:sequence>
106         </xs:complexType>
107     </xs:element>
108
109     <xs:element name="parameter">
110         <xs:complexType>
111             <xs:attributeGroup ref="parameterAttrGroup"/>
112         </xs:complexType>
113     </xs:element>
114
115     <xs:element name="interfaces">
116         <xs:complexType>
117             <xs:group ref="interfacesElmtGroup"/>
118         </xs:complexType>
119     </xs:element>
120
121     <xs:element name="control">
122         <xs:complexType>
123             <xs:attribute ref="iface"/>
124         </xs:complexType>
125     </xs:element>
126
127     <xs:element name="inputs">
128         <xs:complexType>
129             <xs:sequence>
130               <xs:element ref="input" maxOccurs="unbounded" />
131               <xs:element ref="control" minOccurs="0" maxOccurs="unbounded" />
132             </xs:sequence>
133         </xs:complexType>
134     </xs:element>
135
136     <xs:element name="input">
137         <xs:complexType>
138             <xs:attributeGroup ref="inOutAttrGroup"/>
139         </xs:complexType>
140     </xs:element>
141
142     <xs:element name="outputs">
143         <xs:complexType>
144             <xs:sequence>
145               <xs:element ref="output" maxOccurs="unbounded" />
146               <xs:element ref="control" minOccurs="0" maxOccurs="unbounded" />
147             </xs:sequence>
148         </xs:complexType>
149     </xs:element>
150
151     <xs:element name="output">
152         <xs:complexType>
153             <xs:attributeGroup ref="inOutAttrGroup"/>
154         </xs:complexType>
155     </xs:element>
156
157     <xs:element name="bidirs">
158         <xs:complexType>
159             <xs:sequence>
160                 <xs:element ref="bidir" maxOccurs="unbounded" />
161             </xs:sequence>
162         </xs:complexType>
163     </xs:element>
164
165     <xs:element name="bidir">
166         <xs:complexType>
167             <xs:attributeGroup ref="inOutAttrGroup"/>
168         </xs:complexType>
169     </xs:element>
170
171     <xs:element name="implementations">
172         <xs:complexType>
173             <xs:sequence>
174                 <xs:element ref="implementation" maxOccurs="unbounded" />
175             </xs:sequence>
176         </xs:complexType>
177     </xs:element>
178
179     <xs:element name="implementation">
180         <xs:complexType>
181             <xs:attribute ref="path" use="required" />
182         </xs:complexType>
183     </xs:element>
184
185
186     <!-- Racine du document -->
187
188     <xs:element name="block">
189         <xs:complexType>
190             <xs:group ref="blockElmtGroup"/>
191         </xs:complexType>
192     </xs:element>
193
194 </xs:schema>