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

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