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 0.12
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" />
49 <xsd:any namespace="##other" processContents="strict"
50 minOccurs="0" maxOccurs="unbounded" />
54 <xsd:attribute name="name" type="xsd:string">
56 <xsd:documentation><![CDATA[
57 Name of the flow (alternative to ID).
58 ]]></xsd:documentation>
61 <xsd:attribute name="class" type="xsd:string">
63 <xsd:documentation><![CDATA[
64 Another implementation of execution flow.
65 ]]></xsd:documentation>
68 <xsd:attribute name="path" type="xsd:string">
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="isParameter" 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="isFrozen" use="optional" type="xsd:boolean"
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>
199 <xsd:attribute name="isHidden" use="optional" type="xsd:boolean"
202 <xsd:documentation><![CDATA[
203 Whether the attribute is hidden, that is, it should not be displayed in UIs.
204 ]]></xsd:documentation>
209 <xsd:complexType name="primitiveSpecAttributeType">
211 <xsd:extension base="flow:specAttributeType">
212 <xsd:attribute name="type" default="string">
214 <xsd:documentation><![CDATA[
215 The type of the primitive specification attribute.
216 ]]></xsd:documentation>
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" />
230 </xsd:complexContent>
233 <xsd:complexType name="refSpecAttributeType">
235 <xsd:extension base="flow:specAttributeType">
237 <xsd:element name="choices" minOccurs="0" maxOccurs="1">
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
243 ]]></xsd:documentation>
247 <xsd:element name="choice" minOccurs="0" maxOccurs="unbounded"
248 type="flow:refChoiceType">
250 <xsd:documentation><![CDATA[
251 A choice for a reference specification attribute.
252 ]]></xsd:documentation>
259 <xsd:attribute name="targetClass" use="required" type="xsd:string">
261 <xsd:documentation><![CDATA[
262 The class that has to be implemented by the underlying object.
263 ]]></xsd:documentation>
267 </xsd:complexContent>
270 <xsd:complexType name="refChoiceType">
271 <xsd:attribute name="name" use="required" type="xsd:string">
273 <xsd:documentation><![CDATA[
274 The name of the related bean.
275 ]]></xsd:documentation>
278 <xsd:attribute name="description" use="optional" type="xsd:string">
280 <xsd:documentation><![CDATA[
281 A human readable description of this choice.
282 ]]></xsd:documentation>
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" />
297 <xsd:attribute name="name" use="required" type="xsd:string">
299 <xsd:documentation><![CDATA[
300 The name of the related parameter.
301 ]]></xsd:documentation>
304 <xsd:attribute name="value" type="xsd:string">
306 <xsd:documentation><![CDATA[
307 The plain value of the related parameter.
308 ]]></xsd:documentation>
311 <xsd:attribute name="ref" type="xsd:string">
313 <xsd:documentation><![CDATA[
314 The value of the related parameter as a reference to a bean.
315 ]]></xsd:documentation>
320 <xsd:attribute name="as-flow" type="xsd:string">
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>
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>
335 <xsd:element name="variable">
338 <xsd:documentation><![CDATA[
339 Marks a bean definition as being variable, i.e. a scoped proxy of scope execution
340 ]]></xsd:documentation>
342 <xsd:attribute name="proxy-target-class" type="xsd:boolean"
345 <xsd:documentation><![CDATA[
346 Are class-based (CGLIB) proxies to be created?
348 in order to switch to standard Java
349 interface-based proxies, turn this flag to
351 ]]></xsd:documentation>
357 <xsd:element name="param">
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>
365 <xsd:attribute name="name" type="xsd:string" use="required">
367 <xsd:documentation><![CDATA[
368 The name of the related parameter.
369 ]]></xsd:documentation>
372 <xsd:attribute name="instantiationManager" type="xsd:string"
373 use="optional" default="instantiationManager">
375 <xsd:documentation><![CDATA[
376 A reference to the instantiation manager to use instead of the default one
378 ]]></xsd:documentation>