]> git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc.core/src/org/argeo/slc/core/execution/xml/slc-flow-1.2.xsd
Support user home in addition to group home
[gpl/argeo-slc.git] / org.argeo.slc.core / src / org / argeo / slc / core / execution / xml / slc-flow-1.2.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 schemaLocation="http://www.springframework.org/schema/beans/spring-beans-2.5.xsd" />
9
10 <xsd:annotation>
11 <xsd:documentation><![CDATA[
12 SLC Flow Schema, version 1.2
13 Authors: Mathieu Baudier
14
15 This simplifies the definition of SLC flows and their integration with
16 regular Spring beans.
17 ]]></xsd:documentation>
18 </xsd:annotation>
19
20 <xsd:element name="flow">
21 <xsd:annotation>
22 <xsd:documentation><![CDATA[
23 Adds an SLC execution flow, using the default implementation.
24 ]]></xsd:documentation>
25 </xsd:annotation>
26 <xsd:complexType>
27 <xsd:complexContent>
28 <xsd:extension base="beans:identifiedType">
29 <xsd:sequence>
30 <xsd:element ref="beans:description" minOccurs="0" />
31 <xsd:sequence>
32 <xsd:element name="arg" minOccurs="0" maxOccurs="unbounded"
33 type="flow:argType">
34 <xsd:annotation>
35 <xsd:documentation><![CDATA[
36 Parameter for an execution flow which will override at instantiation the
37 value of the parameter already defined as default value or in a parent bean.
38 ]]></xsd:documentation>
39 </xsd:annotation>
40 </xsd:element>
41 </xsd:sequence>
42 <xsd:sequence>
43 <xsd:choice minOccurs="0" maxOccurs="unbounded">
44 <xsd:element ref="beans:bean" />
45 <xsd:element ref="beans:ref" />
46 <xsd:element ref="flow:flow" />
47 <xsd:element ref="flow:spec" />
48 </xsd:choice>
49 <!-- <xsd:any namespace="##other" processContents="strict" minOccurs="0"
50 maxOccurs="unbounded" /> -->
51 </xsd:sequence>
52 </xsd:sequence>
53 <xsd:attribute name="name" type="xsd:string">
54 <xsd:annotation>
55 <xsd:documentation><![CDATA[
56 Name of the flow (alternative to ID).
57 ]]></xsd:documentation>
58 </xsd:annotation>
59 </xsd:attribute>
60 <xsd:attribute name="class" type="xsd:string">
61 <xsd:annotation>
62 <xsd:documentation><![CDATA[
63 Another implementation of execution flow.
64 ]]></xsd:documentation>
65 </xsd:annotation>
66 </xsd:attribute>
67 <xsd:attribute name="path" type="xsd:string">
68 <!-- DEPRECATED: not used anymore -->
69 <xsd:annotation>
70 <xsd:documentation><![CDATA[
71 The hierarchical path under which to register this flow.
72 ]]></xsd:documentation>
73 </xsd:annotation>
74 </xsd:attribute>
75 <xsd:attribute name="spec" type="xsd:string">
76 <xsd:annotation>
77 <xsd:documentation><![CDATA[
78 A reference to the related specification bean.
79 ]]></xsd:documentation>
80 </xsd:annotation>
81 </xsd:attribute>
82 <xsd:attribute name="parent" type="xsd:string">
83 <xsd:annotation>
84 <xsd:documentation><![CDATA[
85 The parent bean definition (in Spring sense).
86 ]]></xsd:documentation>
87 </xsd:annotation>
88 </xsd:attribute>
89 <xsd:attribute name="abstract" type="xsd:boolean"
90 default="false">
91 <xsd:annotation>
92 <xsd:documentation><![CDATA[
93 Whether this flow is abstract (in Spring sense).
94 ]]></xsd:documentation>
95 </xsd:annotation>
96 </xsd:attribute>
97 </xsd:extension>
98 </xsd:complexContent>
99 </xsd:complexType>
100 </xsd:element>
101
102 <xsd:element name="spec">
103 <xsd:annotation>
104 <xsd:documentation><![CDATA[
105 SLC flow specifications, defining the parameters and variables
106 which can be used in related flows, along with their default values and
107 various constraints.
108 ]]></xsd:documentation>
109 </xsd:annotation>
110 <xsd:complexType>
111 <xsd:complexContent>
112 <xsd:extension base="beans:identifiedType">
113 <xsd:sequence>
114 <xsd:element ref="beans:description" minOccurs="0" />
115 <xsd:choice minOccurs="0" maxOccurs="unbounded">
116 <xsd:element name="primitive" type="flow:primitiveSpecAttributeType"
117 minOccurs="0" maxOccurs="unbounded">
118 <xsd:annotation>
119 <xsd:documentation><![CDATA[
120 A primitive specification attribute, that is, a plain standard value
121 and not a reference to an object.
122 ]]></xsd:documentation>
123 </xsd:annotation>
124 </xsd:element>
125 <xsd:element name="ref" type="flow:refSpecAttributeType"
126 minOccurs="0" maxOccurs="unbounded">
127 <xsd:annotation>
128 <xsd:documentation><![CDATA[
129 A reference specification attribute, that is, a reference to another object.
130 ]]></xsd:documentation>
131 </xsd:annotation>
132 </xsd:element>
133 </xsd:choice>
134 </xsd:sequence>
135 </xsd:extension>
136 </xsd:complexContent>
137 </xsd:complexType>
138 </xsd:element>
139
140 <xsd:complexType name="specAttributeType">
141 <xsd:choice>
142 <xsd:element name="value" minOccurs="0" maxOccurs="1">
143 <xsd:annotation>
144 <xsd:documentation><![CDATA[
145 The default value of the attribute as an inner bean.
146 ]]></xsd:documentation>
147 </xsd:annotation>
148 <xsd:complexType>
149 <xsd:choice minOccurs="1" maxOccurs="1">
150 <xsd:element ref="beans:bean" />
151 <xsd:element ref="beans:ref" />
152 <xsd:element ref="beans:list" />
153 <xsd:element ref="beans:set" />
154 <xsd:element ref="beans:map" />
155 <xsd:element ref="beans:props" />
156 </xsd:choice>
157 </xsd:complexType>
158 </xsd:element>
159 </xsd:choice>
160 <xsd:attribute name="name" use="required" type="xsd:string">
161 <xsd:annotation>
162 <xsd:documentation><![CDATA[
163 The name of the attribute, under which in can then be referenced.
164 ]]></xsd:documentation>
165 </xsd:annotation>
166 </xsd:attribute>
167 <xsd:attribute name="value" use="optional" type="xsd:string">
168 <xsd:annotation>
169 <xsd:documentation><![CDATA[
170 The default value of the attribute.
171 ]]></xsd:documentation>
172 </xsd:annotation>
173 </xsd:attribute>
174 <xsd:attribute name="ref" use="optional" type="xsd:string">
175 <xsd:annotation>
176 <xsd:documentation><![CDATA[
177 The default value of the attribute as a reference to another bean.
178 ]]></xsd:documentation>
179 </xsd:annotation>
180 </xsd:attribute>
181 <xsd:attribute name="isImmutable" use="optional" type="xsd:boolean"
182 default="false">
183 <xsd:annotation>
184 <xsd:documentation><![CDATA[
185 Whether the attribute is a parameter, that is, it has to be set at
186 instantiation but can be modified afterwards for objects of scope execution.
187 ]]></xsd:documentation>
188 </xsd:annotation>
189 </xsd:attribute>
190 <xsd:attribute name="isParameter" use="optional" type="xsd:boolean"
191 default="false">
192 <!-- DEPRECATED: old name of isImmutable -->
193 <xsd:annotation>
194 <xsd:documentation><![CDATA[
195 Whether the attribute is a parameter, that is, it has to be set at
196 instantiation but can be modified afterwards for objects of scope execution.
197 ]]></xsd:documentation>
198 </xsd:annotation>
199 </xsd:attribute>
200 <xsd:attribute name="isConstant" use="optional" type="xsd:boolean"
201 default="false">
202 <xsd:annotation>
203 <xsd:documentation><![CDATA[
204 Whether the attribute is frozen, that is, it cannot be modified at runtime.
205 A frozen attribute has to be a parameter.
206 ]]></xsd:documentation>
207 </xsd:annotation>
208 </xsd:attribute>
209 <xsd:attribute name="isFrozen" use="optional" type="xsd:boolean"
210 default="false">
211 <!-- DEPRECATED: old name of isConstant -->
212 <xsd:annotation>
213 <xsd:documentation><![CDATA[
214 Whether the attribute is frozen, that is, it cannot be modified at runtime.
215 A frozen attribute has to be a parameter.
216 ]]></xsd:documentation>
217 </xsd:annotation>
218 </xsd:attribute>
219 <xsd:attribute name="isHidden" use="optional" type="xsd:boolean"
220 default="false">
221 <xsd:annotation>
222 <xsd:documentation><![CDATA[
223 Whether the attribute is hidden, that is, it should not be displayed in UIs.
224 ]]></xsd:documentation>
225 </xsd:annotation>
226 </xsd:attribute>
227 </xsd:complexType>
228
229 <xsd:complexType name="primitiveSpecAttributeType">
230 <xsd:complexContent>
231 <xsd:extension base="flow:specAttributeType">
232 <xsd:attribute name="type" default="string">
233 <xsd:annotation>
234 <xsd:documentation><![CDATA[
235 The type of the primitive specification attribute.
236 ]]></xsd:documentation>
237 </xsd:annotation>
238 <xsd:simpleType>
239 <xsd:restriction base="xsd:string">
240 <xsd:enumeration value="string" />
241 <xsd:enumeration value="password" />
242 <xsd:enumeration value="integer" />
243 <xsd:enumeration value="long" />
244 <xsd:enumeration value="float" />
245 <xsd:enumeration value="double" />
246 <xsd:enumeration value="boolean" />
247 </xsd:restriction>
248 </xsd:simpleType>
249 </xsd:attribute>
250 </xsd:extension>
251 </xsd:complexContent>
252 </xsd:complexType>
253
254 <xsd:complexType name="refSpecAttributeType">
255 <xsd:complexContent>
256 <xsd:extension base="flow:specAttributeType">
257 <xsd:choice>
258 <xsd:element name="choices" minOccurs="0" maxOccurs="1">
259 <xsd:annotation>
260 <xsd:documentation><![CDATA[
261 Possible values to chose from, if ommitted, all the beans in the
262 application context which implement the provided targetClass will
263 be considered.
264 ]]></xsd:documentation>
265 </xsd:annotation>
266 <xsd:complexType>
267 <xsd:choice>
268 <xsd:element name="choice" minOccurs="0" maxOccurs="unbounded"
269 type="flow:refChoiceType">
270 <xsd:annotation>
271 <xsd:documentation><![CDATA[
272 A choice for a reference specification attribute.
273 ]]></xsd:documentation>
274 </xsd:annotation>
275 </xsd:element>
276 </xsd:choice>
277 </xsd:complexType>
278 </xsd:element>
279 </xsd:choice>
280 <xsd:attribute name="targetClass" use="required" type="xsd:string">
281 <xsd:annotation>
282 <xsd:documentation><![CDATA[
283 The class that has to be implemented by the underlying object.
284 ]]></xsd:documentation>
285 </xsd:annotation>
286 </xsd:attribute>
287 </xsd:extension>
288 </xsd:complexContent>
289 </xsd:complexType>
290
291 <xsd:complexType name="refChoiceType">
292 <xsd:attribute name="name" use="required" type="xsd:string">
293 <xsd:annotation>
294 <xsd:documentation><![CDATA[
295 The name of the related bean.
296 ]]></xsd:documentation>
297 </xsd:annotation>
298 </xsd:attribute>
299 <xsd:attribute name="description" use="optional" type="xsd:string">
300 <xsd:annotation>
301 <xsd:documentation><![CDATA[
302 A human readable description of this choice.
303 ]]></xsd:documentation>
304 </xsd:annotation>
305 </xsd:attribute>
306 </xsd:complexType>
307
308 <xsd:complexType name="argType">
309 <xsd:choice minOccurs="0" maxOccurs="1">
310 <xsd:element ref="beans:bean" />
311 <xsd:element ref="beans:ref" />
312 <xsd:element ref="flow:param" />
313 <xsd:element ref="beans:list" />
314 <xsd:element ref="beans:set" />
315 <xsd:element ref="beans:map" />
316 <xsd:element ref="beans:props" />
317 </xsd:choice>
318 <xsd:attribute name="name" use="required" type="xsd:string">
319 <xsd:annotation>
320 <xsd:documentation><![CDATA[
321 The name of the related parameter.
322 ]]></xsd:documentation>
323 </xsd:annotation>
324 </xsd:attribute>
325 <xsd:attribute name="value" type="xsd:string">
326 <xsd:annotation>
327 <xsd:documentation><![CDATA[
328 The plain value of the related parameter.
329 ]]></xsd:documentation>
330 </xsd:annotation>
331 </xsd:attribute>
332 <xsd:attribute name="ref" type="xsd:string">
333 <xsd:annotation>
334 <xsd:documentation><![CDATA[
335 The value of the related parameter as a reference to a bean.
336 ]]></xsd:documentation>
337 </xsd:annotation>
338 </xsd:attribute>
339 </xsd:complexType>
340
341 <xsd:attribute name="as-flow" type="xsd:string">
342 <xsd:annotation>
343 <xsd:documentation><![CDATA[
344 If decorating an executable bean, it will generate an implicit SLC
345 execution flow with the provided value as name.
346 ]]></xsd:documentation>
347 </xsd:annotation>
348 </xsd:attribute>
349 <!-- <xsd:attribute name="var" type="xsd:boolean"> <xsd:annotation> <xsd:documentation><![CDATA[
350 If true, the decorated bean is set to scope execution and proxied. ]]></xsd:documentation>
351 </xsd:annotation> </xsd:attribute> -->
352
353 <xsd:element name="variable">
354 <xsd:complexType>
355 <xsd:annotation>
356 <xsd:documentation><![CDATA[
357 Marks a bean definition as being variable, i.e. a scoped proxy of scope execution
358 ]]></xsd:documentation>
359 </xsd:annotation>
360 <xsd:attribute name="proxy-target-class" type="xsd:boolean"
361 default="true">
362 <xsd:annotation>
363 <xsd:documentation><![CDATA[
364 Are class-based (CGLIB) proxies to be created?
365 This is the default;
366 in order to switch to standard Java
367 interface-based proxies, turn this flag to
368 "false".
369 ]]></xsd:documentation>
370 </xsd:annotation>
371 </xsd:attribute>
372 </xsd:complexType>
373 </xsd:element>
374
375 <xsd:element name="param">
376 <xsd:annotation>
377 <xsd:documentation><![CDATA[
378 If within a property tag of a bean, it will set the value of this property
379 with a reference to a parameter.
380 ]]></xsd:documentation>
381 </xsd:annotation>
382 <xsd:complexType>
383 <xsd:attribute name="name" type="xsd:string" use="required">
384 <xsd:annotation>
385 <xsd:documentation><![CDATA[
386 The name of the related parameter.
387 ]]></xsd:documentation>
388 </xsd:annotation>
389 </xsd:attribute>
390 <xsd:attribute name="instantiationManager" type="xsd:string"
391 use="optional" default="instantiationManager">
392 <xsd:annotation>
393 <xsd:documentation><![CDATA[
394 A reference to the instantiation manager to use instead of the default one
395 (expert usage).
396 ]]></xsd:documentation>
397 </xsd:annotation>
398 </xsd:attribute>
399 </xsd:complexType>
400 </xsd:element>
401
402 </xsd:schema>