]> git.argeo.org Git - gpl/argeo-slc.git/blob - slc-flow-0.12.xsd
439528e0ff3a8505009a3031e5ebb938296e39b7
[gpl/argeo-slc.git] / slc-flow-0.12.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
3 xmlns:flow="http://www.argeo.org/schema/slc-flow" xmlns:beans="http://www.springframework.org/schema/beans"
4 targetNamespace="http://www.argeo.org/schema/slc-flow"
5 elementFormDefault="qualified" attributeFormDefault="unqualified">
6
7 <xsd:import namespace="http://www.springframework.org/schema/beans" />
8
9 <xsd:annotation>
10 <xsd:documentation><![CDATA[
11 SLC Flow Schema, version 0.12
12 Authors: Mathieu Baudier
13
14 This simplifies the definition of SLC flows and their integration with
15 regular Spring beans.
16 ]]></xsd:documentation>
17 </xsd:annotation>
18
19 <xsd:element name="flow">
20 <xsd:annotation>
21 <xsd:documentation><![CDATA[
22 Adds an SLC execution flow, using the default implementation.
23 ]]></xsd:documentation>
24 </xsd:annotation>
25 <xsd:complexType>
26 <xsd:complexContent>
27 <xsd:extension base="beans:identifiedType">
28 <xsd:sequence>
29 <xsd:sequence>
30 <xsd:element name="arg" minOccurs="0" maxOccurs="unbounded"
31 type="flow:argType">
32 <xsd:annotation>
33 <xsd:documentation><![CDATA[
34 Parameter for an execution flow which will override at instantiation the
35 value of the parameter already defined as default value or in a parent bean.
36 ]]></xsd:documentation>
37 </xsd:annotation>
38 </xsd:element>
39 </xsd:sequence>
40 <xsd:sequence>
41 <xsd:choice minOccurs="0" maxOccurs="unbounded">
42 <xsd:element ref="beans:bean" />
43 <xsd:element ref="beans:ref" />
44 </xsd:choice>
45 <!--
46 <xsd:any namespace="##other" processContents="strict"
47 minOccurs="0" maxOccurs="unbounded" />
48 -->
49 </xsd:sequence>
50 </xsd:sequence>
51 <xsd:attribute name="path" type="xsd:string">
52 <xsd:annotation>
53 <xsd:documentation><![CDATA[
54 The hierarchical path under which to register this flow.
55 ]]></xsd:documentation>
56 </xsd:annotation>
57 </xsd:attribute>
58 <xsd:attribute name="spec" type="xsd:string">
59 <xsd:annotation>
60 <xsd:documentation><![CDATA[
61 A reference to the related specification bean.
62 ]]></xsd:documentation>
63 </xsd:annotation>
64 </xsd:attribute>
65 <xsd:attribute name="parent" type="xsd:string">
66 <xsd:annotation>
67 <xsd:documentation><![CDATA[
68 The parent bean definition (in Spring sense).
69 ]]></xsd:documentation>
70 </xsd:annotation>
71 </xsd:attribute>
72 <xsd:attribute name="abstract" type="xsd:boolean"
73 default="false">
74 <xsd:annotation>
75 <xsd:documentation><![CDATA[
76 Whether this flow is abstract (in Spring sense).
77 ]]></xsd:documentation>
78 </xsd:annotation>
79 </xsd:attribute>
80 </xsd:extension>
81 </xsd:complexContent>
82 </xsd:complexType>
83 </xsd:element>
84
85 <xsd:element name="spec">
86 <xsd:annotation>
87 <xsd:documentation><![CDATA[
88 SLC flow specifications, defining the parameters and variables
89 which can be used in related flows, along with their default values and
90 various constraints.
91 ]]></xsd:documentation>
92 </xsd:annotation>
93 <xsd:complexType>
94 <xsd:complexContent>
95 <xsd:extension base="beans:identifiedType">
96 <xsd:sequence>
97 <xsd:choice minOccurs="0" maxOccurs="unbounded">
98 <xsd:element name="primitive" type="flow:primitiveSpecAttributeType"
99 minOccurs="0" maxOccurs="unbounded">
100 <xsd:annotation>
101 <xsd:documentation><![CDATA[
102 A primitive specification attribute, that is, a plain standard value
103 and not a reference to an object.
104 ]]></xsd:documentation>
105 </xsd:annotation>
106 </xsd:element>
107 <xsd:element name="ref" type="flow:refSpecAttributeType"
108 minOccurs="0" maxOccurs="unbounded">
109 <xsd:annotation>
110 <xsd:documentation><![CDATA[
111 A reference specification attribute, that is, a reference to another object.
112 ]]></xsd:documentation>
113 </xsd:annotation>
114 </xsd:element>
115 </xsd:choice>
116 </xsd:sequence>
117 </xsd:extension>
118 </xsd:complexContent>
119 </xsd:complexType>
120 </xsd:element>
121
122 <xsd:complexType name="specAttributeType">
123 <xsd:choice>
124 <xsd:element name="value" minOccurs="0" maxOccurs="1">
125 <xsd:annotation>
126 <xsd:documentation><![CDATA[
127 The default value of the attribute as an inner bean.
128 ]]></xsd:documentation>
129 </xsd:annotation>
130 <xsd:complexType>
131 <xsd:choice minOccurs="1" maxOccurs="1">
132 <xsd:element ref="beans:bean" />
133 <xsd:element ref="beans:ref" />
134 </xsd:choice>
135 </xsd:complexType>
136 </xsd:element>
137 </xsd:choice>
138 <xsd:attribute name="name" use="required" type="xsd:string">
139 <xsd:annotation>
140 <xsd:documentation><![CDATA[
141 The name of the attribute, under which in can then be referenced.
142 ]]></xsd:documentation>
143 </xsd:annotation>
144 </xsd:attribute>
145 <xsd:attribute name="value" use="optional" type="xsd:string">
146 <xsd:annotation>
147 <xsd:documentation><![CDATA[
148 The default value of the attribute.
149 ]]></xsd:documentation>
150 </xsd:annotation>
151 </xsd:attribute>
152 <xsd:attribute name="ref" use="optional" type="xsd:string">
153 <xsd:annotation>
154 <xsd:documentation><![CDATA[
155 The default value of the attribute as a reference to another bean.
156 ]]></xsd:documentation>
157 </xsd:annotation>
158 </xsd:attribute>
159 <xsd:attribute name="isParameter" use="optional" type="xsd:boolean"
160 default="false">
161 <xsd:annotation>
162 <xsd:documentation><![CDATA[
163 Whether the attribute is a parameter, that is, it has to be set at
164 instantiation but can be modified afterwards for objects of scope execution.
165 ]]></xsd:documentation>
166 </xsd:annotation>
167 </xsd:attribute>
168 <xsd:attribute name="isFrozen" use="optional" type="xsd:boolean"
169 default="false">
170 <xsd:annotation>
171 <xsd:documentation><![CDATA[
172 Whether the attribute is frozen, that is, it cannot be modified at runtime.
173 A frozen attribute has to be a parameter.
174 ]]></xsd:documentation>
175 </xsd:annotation>
176 </xsd:attribute>
177 <xsd:attribute name="isHidden" use="optional" type="xsd:boolean"
178 default="false">
179 <xsd:annotation>
180 <xsd:documentation><![CDATA[
181 Whether the attribute is hidden, that is, it should not be displayed in UIs.
182 ]]></xsd:documentation>
183 </xsd:annotation>
184 </xsd:attribute>
185 </xsd:complexType>
186
187 <xsd:complexType name="primitiveSpecAttributeType">
188 <xsd:complexContent>
189 <xsd:extension base="flow:specAttributeType">
190 <xsd:attribute name="type" default="string">
191 <xsd:annotation>
192 <xsd:documentation><![CDATA[
193 The type of the primitive specification attribute.
194 ]]></xsd:documentation>
195 </xsd:annotation>
196 <xsd:simpleType>
197 <xsd:restriction base="xsd:string">
198 <xsd:enumeration value="string" />
199 <xsd:enumeration value="integer" />
200 <xsd:enumeration value="long" />
201 <xsd:enumeration value="float" />
202 <xsd:enumeration value="double" />
203 <xsd:enumeration value="boolean" />
204 </xsd:restriction>
205 </xsd:simpleType>
206 </xsd:attribute>
207 </xsd:extension>
208 </xsd:complexContent>
209 </xsd:complexType>
210
211 <xsd:complexType name="refSpecAttributeType">
212 <xsd:complexContent>
213 <xsd:extension base="flow:specAttributeType">
214 <xsd:choice>
215 <xsd:element name="choices" minOccurs="0" maxOccurs="1">
216 <xsd:annotation>
217 <xsd:documentation><![CDATA[
218 Possible values to chose from, if ommitted, all the beans in the
219 application context which implement the provided targetClass will
220 be considered.
221 ]]></xsd:documentation>
222 </xsd:annotation>
223 <xsd:complexType>
224 <xsd:choice>
225 <xsd:element name="choice" minOccurs="0" maxOccurs="unbounded"
226 type="flow:refChoiceType">
227 <xsd:annotation>
228 <xsd:documentation><![CDATA[
229 A choice for a reference specification attribute.
230 ]]></xsd:documentation>
231 </xsd:annotation>
232 </xsd:element>
233 </xsd:choice>
234 </xsd:complexType>
235 </xsd:element>
236 </xsd:choice>
237 <xsd:attribute name="targetClass" use="required" type="xsd:string">
238 <xsd:annotation>
239 <xsd:documentation><![CDATA[
240 The class that has to be implemented by the underlying object.
241 ]]></xsd:documentation>
242 </xsd:annotation>
243 </xsd:attribute>
244 </xsd:extension>
245 </xsd:complexContent>
246 </xsd:complexType>
247
248 <xsd:complexType name="refChoiceType">
249 <xsd:attribute name="name" use="required" type="xsd:string">
250 <xsd:annotation>
251 <xsd:documentation><![CDATA[
252 The name of the related bean.
253 ]]></xsd:documentation>
254 </xsd:annotation>
255 </xsd:attribute>
256 <xsd:attribute name="description" use="optional" type="xsd:string">
257 <xsd:annotation>
258 <xsd:documentation><![CDATA[
259 A human readable description of this choice.
260 ]]></xsd:documentation>
261 </xsd:annotation>
262 </xsd:attribute>
263 </xsd:complexType>
264
265 <xsd:complexType name="argType">
266 <xsd:choice minOccurs="0" maxOccurs="1">
267 <xsd:element ref="beans:bean" />
268 <xsd:element ref="beans:ref" />
269 </xsd:choice>
270 <xsd:attribute name="name" use="required" type="xsd:string">
271 <xsd:annotation>
272 <xsd:documentation><![CDATA[
273 The name of the related parameter.
274 ]]></xsd:documentation>
275 </xsd:annotation>
276 </xsd:attribute>
277 <xsd:attribute name="value" type="xsd:string">
278 <xsd:annotation>
279 <xsd:documentation><![CDATA[
280 The plain value of the related parameter.
281 ]]></xsd:documentation>
282 </xsd:annotation>
283 </xsd:attribute>
284 <xsd:attribute name="ref" type="xsd:string">
285 <xsd:annotation>
286 <xsd:documentation><![CDATA[
287 The value of the related parameter as a reference to a bean.
288 ]]></xsd:documentation>
289 </xsd:annotation>
290 </xsd:attribute>
291 </xsd:complexType>
292
293 <xsd:attribute name="as-flow" type="xsd:string">
294 <xsd:annotation>
295 <xsd:documentation><![CDATA[
296 If decorating an executable bean, it will generate an implicit SLC
297 execution flow with the provided value as name.
298 ]]></xsd:documentation>
299 </xsd:annotation>
300 </xsd:attribute>
301
302 <xsd:element name="param">
303 <xsd:annotation>
304 <xsd:documentation><![CDATA[
305 If within a property tag of a bean, it will set the value of this property
306 with a reference to a parameter.
307 ]]></xsd:documentation>
308 </xsd:annotation>
309 <xsd:complexType>
310 <xsd:attribute name="name" type="xsd:string" use="required">
311 <xsd:annotation>
312 <xsd:documentation><![CDATA[
313 The name of the related parameter.
314 ]]></xsd:documentation>
315 </xsd:annotation>
316 </xsd:attribute>
317 <xsd:attribute name="instantiationManager" type="xsd:string"
318 use="optional" default="instantiationManager">
319 <xsd:annotation>
320 <xsd:documentation><![CDATA[
321 A reference to the instantiation manager to use instead of the default one
322 (expert usage).
323 ]]></xsd:documentation>
324 </xsd:annotation>
325 </xsd:attribute>
326 </xsd:complexType>
327 </xsd:element>
328
329 </xsd:schema>