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" />
10 <xsd:documentation><![CDATA[
11 SLC Flow Schema, version 0.12
12 Authors: Mathieu Baudier
14 This simplifies the definition of SLC flows and their integration with
16 ]]></xsd:documentation>
19 <xsd:element name="flow">
21 <xsd:documentation><![CDATA[
22 Adds an SLC execution flow, using the default implementation.
23 ]]></xsd:documentation>
27 <xsd:extension base="beans:identifiedType">
29 <xsd:element ref="beans:description" minOccurs="0"/>
31 <xsd:element name="arg" minOccurs="0" maxOccurs="unbounded"
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>
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" />
48 <xsd:any namespace="##other" processContents="strict"
49 minOccurs="0" maxOccurs="unbounded" />
53 <xsd:attribute name="path" type="xsd:string">
55 <xsd:documentation><![CDATA[
56 The hierarchical path under which to register this flow.
57 ]]></xsd:documentation>
60 <xsd:attribute name="spec" type="xsd:string">
62 <xsd:documentation><![CDATA[
63 A reference to the related specification bean.
64 ]]></xsd:documentation>
67 <xsd:attribute name="parent" type="xsd:string">
69 <xsd:documentation><![CDATA[
70 The parent bean definition (in Spring sense).
71 ]]></xsd:documentation>
74 <xsd:attribute name="abstract" type="xsd:boolean"
77 <xsd:documentation><![CDATA[
78 Whether this flow is abstract (in Spring sense).
79 ]]></xsd:documentation>
87 <xsd:element name="spec">
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
93 ]]></xsd:documentation>
97 <xsd:extension base="beans:identifiedType">
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">
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>
110 <xsd:element name="ref" type="flow:refSpecAttributeType"
111 minOccurs="0" maxOccurs="unbounded">
113 <xsd:documentation><![CDATA[
114 A reference specification attribute, that is, a reference to another object.
115 ]]></xsd:documentation>
121 </xsd:complexContent>
125 <xsd:complexType name="specAttributeType">
127 <xsd:element name="value" minOccurs="0" maxOccurs="1">
129 <xsd:documentation><![CDATA[
130 The default value of the attribute as an inner bean.
131 ]]></xsd:documentation>
134 <xsd:choice minOccurs="1" maxOccurs="1">
135 <xsd:element ref="beans:bean" />
136 <xsd:element ref="beans:ref" />
141 <xsd:attribute name="name" use="required" type="xsd:string">
143 <xsd:documentation><![CDATA[
144 The name of the attribute, under which in can then be referenced.
145 ]]></xsd:documentation>
148 <xsd:attribute name="value" use="optional" type="xsd:string">
150 <xsd:documentation><![CDATA[
151 The default value of the attribute.
152 ]]></xsd:documentation>
155 <xsd:attribute name="ref" use="optional" type="xsd:string">
157 <xsd:documentation><![CDATA[
158 The default value of the attribute as a reference to another bean.
159 ]]></xsd:documentation>
162 <xsd:attribute name="isParameter" use="optional" type="xsd:boolean"
165 <xsd:documentation><![CDATA[
166 Whether the attribute is a parameter, that is, it has to be set at
167 instantiation but can be modified afterwards for objects of scope execution.
168 ]]></xsd:documentation>
171 <xsd:attribute name="isFrozen" use="optional" type="xsd:boolean"
174 <xsd:documentation><![CDATA[
175 Whether the attribute is frozen, that is, it cannot be modified at runtime.
176 A frozen attribute has to be a parameter.
177 ]]></xsd:documentation>
180 <xsd:attribute name="isHidden" use="optional" type="xsd:boolean"
183 <xsd:documentation><![CDATA[
184 Whether the attribute is hidden, that is, it should not be displayed in UIs.
185 ]]></xsd:documentation>
190 <xsd:complexType name="primitiveSpecAttributeType">
192 <xsd:extension base="flow:specAttributeType">
193 <xsd:attribute name="type" default="string">
195 <xsd:documentation><![CDATA[
196 The type of the primitive specification attribute.
197 ]]></xsd:documentation>
200 <xsd:restriction base="xsd:string">
201 <xsd:enumeration value="string" />
202 <xsd:enumeration value="integer" />
203 <xsd:enumeration value="long" />
204 <xsd:enumeration value="float" />
205 <xsd:enumeration value="double" />
206 <xsd:enumeration value="boolean" />
211 </xsd:complexContent>
214 <xsd:complexType name="refSpecAttributeType">
216 <xsd:extension base="flow:specAttributeType">
218 <xsd:element name="choices" minOccurs="0" maxOccurs="1">
220 <xsd:documentation><![CDATA[
221 Possible values to chose from, if ommitted, all the beans in the
222 application context which implement the provided targetClass will
224 ]]></xsd:documentation>
228 <xsd:element name="choice" minOccurs="0" maxOccurs="unbounded"
229 type="flow:refChoiceType">
231 <xsd:documentation><![CDATA[
232 A choice for a reference specification attribute.
233 ]]></xsd:documentation>
240 <xsd:attribute name="targetClass" use="required" type="xsd:string">
242 <xsd:documentation><![CDATA[
243 The class that has to be implemented by the underlying object.
244 ]]></xsd:documentation>
248 </xsd:complexContent>
251 <xsd:complexType name="refChoiceType">
252 <xsd:attribute name="name" use="required" type="xsd:string">
254 <xsd:documentation><![CDATA[
255 The name of the related bean.
256 ]]></xsd:documentation>
259 <xsd:attribute name="description" use="optional" type="xsd:string">
261 <xsd:documentation><![CDATA[
262 A human readable description of this choice.
263 ]]></xsd:documentation>
268 <xsd:complexType name="argType">
269 <xsd:choice minOccurs="0" maxOccurs="1">
270 <xsd:element ref="beans:bean" />
271 <xsd:element ref="beans:ref" />
272 <xsd:element ref="flow:param" />
274 <xsd:attribute name="name" use="required" type="xsd:string">
276 <xsd:documentation><![CDATA[
277 The name of the related parameter.
278 ]]></xsd:documentation>
281 <xsd:attribute name="value" type="xsd:string">
283 <xsd:documentation><![CDATA[
284 The plain value of the related parameter.
285 ]]></xsd:documentation>
288 <xsd:attribute name="ref" type="xsd:string">
290 <xsd:documentation><![CDATA[
291 The value of the related parameter as a reference to a bean.
292 ]]></xsd:documentation>
297 <xsd:attribute name="as-flow" type="xsd:string">
299 <xsd:documentation><![CDATA[
300 If decorating an executable bean, it will generate an implicit SLC
301 execution flow with the provided value as name.
302 ]]></xsd:documentation>
306 <xsd:attribute name="var" type="xsd:boolean">
308 <xsd:documentation><![CDATA[
309 If true, the decorated bean is set to scope execution and proxied.
310 ]]></xsd:documentation>
314 <xsd:element name="param">
316 <xsd:documentation><![CDATA[
317 If within a property tag of a bean, it will set the value of this property
318 with a reference to a parameter.
319 ]]></xsd:documentation>
322 <xsd:attribute name="name" type="xsd:string" use="required">
324 <xsd:documentation><![CDATA[
325 The name of the related parameter.
326 ]]></xsd:documentation>
329 <xsd:attribute name="instantiationManager" type="xsd:string"
330 use="optional" default="instantiationManager">
332 <xsd:documentation><![CDATA[
333 A reference to the instantiation manager to use instead of the default one
335 ]]></xsd:documentation>
341 <!-- for description tags, beans or current namespace are valid -->
342 <xsd:element name="description" substitutionGroup="beans:description"/>