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">
7 <xsd:import namespace="http://www.springframework.org/schema/beans"
8 schemaLocation="http://www.springframework.org/schema/beans/spring-beans-2.5.xsd" />
11 <xsd:documentation><![CDATA[
12 SLC Flow Schema, version 1.2
13 Authors: Mathieu Baudier
15 This simplifies the definition of SLC flows and their integration with
17 ]]></xsd:documentation>
20 <xsd:element name="flow">
22 <xsd:documentation><![CDATA[
23 Adds an SLC execution flow, using the default implementation.
24 ]]></xsd:documentation>
28 <xsd:extension base="beans:identifiedType">
30 <xsd:element ref="beans:description" minOccurs="0" />
32 <xsd:element name="arg" minOccurs="0" maxOccurs="unbounded"
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>
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" />
49 <!-- <xsd:any namespace="##other" processContents="strict" minOccurs="0"
50 maxOccurs="unbounded" /> -->
53 <xsd:attribute name="name" type="xsd:string">
55 <xsd:documentation><![CDATA[
56 Name of the flow (alternative to ID).
57 ]]></xsd:documentation>
60 <xsd:attribute name="class" type="xsd:string">
62 <xsd:documentation><![CDATA[
63 Another implementation of execution flow.
64 ]]></xsd:documentation>
67 <xsd:attribute name="path" type="xsd:string">
68 <!-- DEPRECATED: not used anymore -->
70 <xsd:documentation><![CDATA[
71 The hierarchical path under which to register this flow.
72 ]]></xsd:documentation>
75 <xsd:attribute name="spec" type="xsd:string">
77 <xsd:documentation><![CDATA[
78 A reference to the related specification bean.
79 ]]></xsd:documentation>
82 <xsd:attribute name="parent" type="xsd:string">
84 <xsd:documentation><![CDATA[
85 The parent bean definition (in Spring sense).
86 ]]></xsd:documentation>
89 <xsd:attribute name="abstract" type="xsd:boolean"
92 <xsd:documentation><![CDATA[
93 Whether this flow is abstract (in Spring sense).
94 ]]></xsd:documentation>
102 <xsd:element name="spec">
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
108 ]]></xsd:documentation>
112 <xsd:extension base="beans:identifiedType">
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">
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>
125 <xsd:element name="ref" type="flow:refSpecAttributeType"
126 minOccurs="0" maxOccurs="unbounded">
128 <xsd:documentation><![CDATA[
129 A reference specification attribute, that is, a reference to another object.
130 ]]></xsd:documentation>
136 </xsd:complexContent>
140 <xsd:complexType name="specAttributeType">
142 <xsd:element name="value" minOccurs="0" maxOccurs="1">
144 <xsd:documentation><![CDATA[
145 The default value of the attribute as an inner bean.
146 ]]></xsd:documentation>
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" />
160 <xsd:attribute name="name" use="required" type="xsd:string">
162 <xsd:documentation><![CDATA[
163 The name of the attribute, under which in can then be referenced.
164 ]]></xsd:documentation>
167 <xsd:attribute name="value" use="optional" type="xsd:string">
169 <xsd:documentation><![CDATA[
170 The default value of the attribute.
171 ]]></xsd:documentation>
174 <xsd:attribute name="ref" use="optional" type="xsd:string">
176 <xsd:documentation><![CDATA[
177 The default value of the attribute as a reference to another bean.
178 ]]></xsd:documentation>
181 <xsd:attribute name="isImmutable" use="optional" type="xsd:boolean"
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>
190 <xsd:attribute name="isParameter" use="optional" type="xsd:boolean"
192 <!-- DEPRECATED: old name of isImmutable -->
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>
200 <xsd:attribute name="isConstant" use="optional" type="xsd:boolean"
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>
209 <xsd:attribute name="isFrozen" use="optional" type="xsd:boolean"
211 <!-- DEPRECATED: old name of isConstant -->
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>
219 <xsd:attribute name="isHidden" use="optional" type="xsd:boolean"
222 <xsd:documentation><![CDATA[
223 Whether the attribute is hidden, that is, it should not be displayed in UIs.
224 ]]></xsd:documentation>
229 <xsd:complexType name="primitiveSpecAttributeType">
231 <xsd:extension base="flow:specAttributeType">
232 <xsd:attribute name="type" default="string">
234 <xsd:documentation><![CDATA[
235 The type of the primitive specification attribute.
236 ]]></xsd:documentation>
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" />
251 </xsd:complexContent>
254 <xsd:complexType name="refSpecAttributeType">
256 <xsd:extension base="flow:specAttributeType">
258 <xsd:element name="choices" minOccurs="0" maxOccurs="1">
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
264 ]]></xsd:documentation>
268 <xsd:element name="choice" minOccurs="0" maxOccurs="unbounded"
269 type="flow:refChoiceType">
271 <xsd:documentation><![CDATA[
272 A choice for a reference specification attribute.
273 ]]></xsd:documentation>
280 <xsd:attribute name="targetClass" use="required" type="xsd:string">
282 <xsd:documentation><![CDATA[
283 The class that has to be implemented by the underlying object.
284 ]]></xsd:documentation>
288 </xsd:complexContent>
291 <xsd:complexType name="refChoiceType">
292 <xsd:attribute name="name" use="required" type="xsd:string">
294 <xsd:documentation><![CDATA[
295 The name of the related bean.
296 ]]></xsd:documentation>
299 <xsd:attribute name="description" use="optional" type="xsd:string">
301 <xsd:documentation><![CDATA[
302 A human readable description of this choice.
303 ]]></xsd:documentation>
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" />
318 <xsd:attribute name="name" use="required" type="xsd:string">
320 <xsd:documentation><![CDATA[
321 The name of the related parameter.
322 ]]></xsd:documentation>
325 <xsd:attribute name="value" type="xsd:string">
327 <xsd:documentation><![CDATA[
328 The plain value of the related parameter.
329 ]]></xsd:documentation>
332 <xsd:attribute name="ref" type="xsd:string">
334 <xsd:documentation><![CDATA[
335 The value of the related parameter as a reference to a bean.
336 ]]></xsd:documentation>
341 <xsd:attribute name="as-flow" type="xsd:string">
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>
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> -->
353 <xsd:element name="variable">
356 <xsd:documentation><![CDATA[
357 Marks a bean definition as being variable, i.e. a scoped proxy of scope execution
358 ]]></xsd:documentation>
360 <xsd:attribute name="proxy-target-class" type="xsd:boolean"
363 <xsd:documentation><![CDATA[
364 Are class-based (CGLIB) proxies to be created?
366 in order to switch to standard Java
367 interface-based proxies, turn this flag to
369 ]]></xsd:documentation>
375 <xsd:element name="param">
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>
383 <xsd:attribute name="name" type="xsd:string" use="required">
385 <xsd:documentation><![CDATA[
386 The name of the related parameter.
387 ]]></xsd:documentation>
390 <xsd:attribute name="instantiationManager" type="xsd:string"
391 use="optional" default="instantiationManager">
393 <xsd:documentation><![CDATA[
394 A reference to the instantiation manager to use instead of the default one
396 ]]></xsd:documentation>