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

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