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