]> git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc.core/src/org/argeo/slc/core/execution/xml/slc-flow-0.12.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-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 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 0.12
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:choice>
48 <!--
49 <xsd:any namespace="##other" processContents="strict"
50 minOccurs="0" maxOccurs="unbounded" />
51 -->
52 </xsd:sequence>
53 </xsd:sequence>
54 <xsd:attribute name="name" type="xsd:string">
55 <xsd:annotation>
56 <xsd:documentation><![CDATA[
57 Name of the flow (alternative to ID).
58 ]]></xsd:documentation>
59 </xsd:annotation>
60 </xsd:attribute>
61 <xsd:attribute name="class" type="xsd:string">
62 <xsd:annotation>
63 <xsd:documentation><![CDATA[
64 Another implementation of execution flow.
65 ]]></xsd:documentation>
66 </xsd:annotation>
67 </xsd:attribute>
68 <xsd:attribute name="path" type="xsd:string">
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="isParameter" 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="isFrozen" use="optional" type="xsd:boolean"
191 default="false">
192 <xsd:annotation>
193 <xsd:documentation><![CDATA[
194 Whether the attribute is frozen, that is, it cannot be modified at runtime.
195 A frozen attribute has to be a parameter.
196 ]]></xsd:documentation>
197 </xsd:annotation>
198 </xsd:attribute>
199 <xsd:attribute name="isHidden" use="optional" type="xsd:boolean"
200 default="false">
201 <xsd:annotation>
202 <xsd:documentation><![CDATA[
203 Whether the attribute is hidden, that is, it should not be displayed in UIs.
204 ]]></xsd:documentation>
205 </xsd:annotation>
206 </xsd:attribute>
207 </xsd:complexType>
208
209 <xsd:complexType name="primitiveSpecAttributeType">
210 <xsd:complexContent>
211 <xsd:extension base="flow:specAttributeType">
212 <xsd:attribute name="type" default="string">
213 <xsd:annotation>
214 <xsd:documentation><![CDATA[
215 The type of the primitive specification attribute.
216 ]]></xsd:documentation>
217 </xsd:annotation>
218 <xsd:simpleType>
219 <xsd:restriction base="xsd:string">
220 <xsd:enumeration value="string" />
221 <xsd:enumeration value="integer" />
222 <xsd:enumeration value="long" />
223 <xsd:enumeration value="float" />
224 <xsd:enumeration value="double" />
225 <xsd:enumeration value="boolean" />
226 </xsd:restriction>
227 </xsd:simpleType>
228 </xsd:attribute>
229 </xsd:extension>
230 </xsd:complexContent>
231 </xsd:complexType>
232
233 <xsd:complexType name="refSpecAttributeType">
234 <xsd:complexContent>
235 <xsd:extension base="flow:specAttributeType">
236 <xsd:choice>
237 <xsd:element name="choices" minOccurs="0" maxOccurs="1">
238 <xsd:annotation>
239 <xsd:documentation><![CDATA[
240 Possible values to chose from, if ommitted, all the beans in the
241 application context which implement the provided targetClass will
242 be considered.
243 ]]></xsd:documentation>
244 </xsd:annotation>
245 <xsd:complexType>
246 <xsd:choice>
247 <xsd:element name="choice" minOccurs="0" maxOccurs="unbounded"
248 type="flow:refChoiceType">
249 <xsd:annotation>
250 <xsd:documentation><![CDATA[
251 A choice for a reference specification attribute.
252 ]]></xsd:documentation>
253 </xsd:annotation>
254 </xsd:element>
255 </xsd:choice>
256 </xsd:complexType>
257 </xsd:element>
258 </xsd:choice>
259 <xsd:attribute name="targetClass" use="required" type="xsd:string">
260 <xsd:annotation>
261 <xsd:documentation><![CDATA[
262 The class that has to be implemented by the underlying object.
263 ]]></xsd:documentation>
264 </xsd:annotation>
265 </xsd:attribute>
266 </xsd:extension>
267 </xsd:complexContent>
268 </xsd:complexType>
269
270 <xsd:complexType name="refChoiceType">
271 <xsd:attribute name="name" use="required" type="xsd:string">
272 <xsd:annotation>
273 <xsd:documentation><![CDATA[
274 The name of the related bean.
275 ]]></xsd:documentation>
276 </xsd:annotation>
277 </xsd:attribute>
278 <xsd:attribute name="description" use="optional" type="xsd:string">
279 <xsd:annotation>
280 <xsd:documentation><![CDATA[
281 A human readable description of this choice.
282 ]]></xsd:documentation>
283 </xsd:annotation>
284 </xsd:attribute>
285 </xsd:complexType>
286
287 <xsd:complexType name="argType">
288 <xsd:choice minOccurs="0" maxOccurs="1">
289 <xsd:element ref="beans:bean" />
290 <xsd:element ref="beans:ref" />
291 <xsd:element ref="flow:param" />
292 <xsd:element ref="beans:list" />
293 <xsd:element ref="beans:set" />
294 <xsd:element ref="beans:map" />
295 <xsd:element ref="beans:props" />
296 </xsd:choice>
297 <xsd:attribute name="name" use="required" type="xsd:string">
298 <xsd:annotation>
299 <xsd:documentation><![CDATA[
300 The name of the related parameter.
301 ]]></xsd:documentation>
302 </xsd:annotation>
303 </xsd:attribute>
304 <xsd:attribute name="value" type="xsd:string">
305 <xsd:annotation>
306 <xsd:documentation><![CDATA[
307 The plain value of the related parameter.
308 ]]></xsd:documentation>
309 </xsd:annotation>
310 </xsd:attribute>
311 <xsd:attribute name="ref" type="xsd:string">
312 <xsd:annotation>
313 <xsd:documentation><![CDATA[
314 The value of the related parameter as a reference to a bean.
315 ]]></xsd:documentation>
316 </xsd:annotation>
317 </xsd:attribute>
318 </xsd:complexType>
319
320 <xsd:attribute name="as-flow" type="xsd:string">
321 <xsd:annotation>
322 <xsd:documentation><![CDATA[
323 If decorating an executable bean, it will generate an implicit SLC
324 execution flow with the provided value as name.
325 ]]></xsd:documentation>
326 </xsd:annotation>
327 </xsd:attribute>
328 <!--
329 <xsd:attribute name="var" type="xsd:boolean"> <xsd:annotation>
330 <xsd:documentation><![CDATA[ If true, the decorated bean is set to
331 scope execution and proxied. ]]></xsd:documentation> </xsd:annotation>
332 </xsd:attribute>
333 -->
334
335 <xsd:element name="variable">
336 <xsd:complexType>
337 <xsd:annotation>
338 <xsd:documentation><![CDATA[
339 Marks a bean definition as being variable, i.e. a scoped proxy of scope execution
340 ]]></xsd:documentation>
341 </xsd:annotation>
342 <xsd:attribute name="proxy-target-class" type="xsd:boolean"
343 default="true">
344 <xsd:annotation>
345 <xsd:documentation><![CDATA[
346 Are class-based (CGLIB) proxies to be created?
347 This is the default;
348 in order to switch to standard Java
349 interface-based proxies, turn this flag to
350 "false".
351 ]]></xsd:documentation>
352 </xsd:annotation>
353 </xsd:attribute>
354 </xsd:complexType>
355 </xsd:element>
356
357 <xsd:element name="param">
358 <xsd:annotation>
359 <xsd:documentation><![CDATA[
360 If within a property tag of a bean, it will set the value of this property
361 with a reference to a parameter.
362 ]]></xsd:documentation>
363 </xsd:annotation>
364 <xsd:complexType>
365 <xsd:attribute name="name" type="xsd:string" use="required">
366 <xsd:annotation>
367 <xsd:documentation><![CDATA[
368 The name of the related parameter.
369 ]]></xsd:documentation>
370 </xsd:annotation>
371 </xsd:attribute>
372 <xsd:attribute name="instantiationManager" type="xsd:string"
373 use="optional" default="instantiationManager">
374 <xsd:annotation>
375 <xsd:documentation><![CDATA[
376 A reference to the instantiation manager to use instead of the default one
377 (expert usage).
378 ]]></xsd:documentation>
379 </xsd:annotation>
380 </xsd:attribute>
381 </xsd:complexType>
382 </xsd:element>
383
384 </xsd:schema>