Files
spring-webflow/spring-webflow-reference/src/flow-definition-field-mappings.xml
Keith Donald ec96e9bb51 CDATA
2008-04-13 07:16:44 +00:00

1127 lines
23 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<appendix id="field-mappings">
<title>Flow Definition Language 1.0 to 2.0 Mappings</title>
<para>
The flow definition language has changed since the 1.0 release.
This is a listing of the language elements in the 1.0 release, and how they map to elements in the 2.0 release.
While most of the changes are semantic, there are a few structural changes.
Please see the upgrade guide for more details about changes between Web Flow 1.0 and 2.0.
</para>
<table id="field-mappings-table">
<title>Mappings</title>
<tgroup cols="5">
<colspec colname="1.0-element" colwidth="*"/>
<colspec colname="1.0-attribute" colwidth="3*"/>
<colspec colname="2.0-element" colwidth="*"/>
<colspec colname="2.0-attribute" colwidth="3*"/>
<colspec colname="comments" colwidth="7*"/>
<spanspec spanname="1.0-element" namest="1.0-element" nameend="1.0-attribute"/>
<spanspec spanname="2.0-element" namest="2.0-element" nameend="2.0-attribute"/>
<thead>
<row>
<entry spanname="1.0-element">
SWF 1.0
</entry>
<entry spanname="2.0-element">
SWF 2.0
</entry>
<entry colname="comments">
Comments
</entry>
</row>
</thead>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>action</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>*</emphasis>
</entry>
<entry colname="comments">
use &lt;evaluate /&gt;
</entry>
</row>
<row>
<entry colname="1.0-attribute">
bean
</entry>
<entry colname="2.0-attribute">
*
</entry>
</row>
<row>
<entry colname="1.0-attribute">
name
</entry>
<entry colname="2.0-attribute">
*
</entry>
</row>
<row>
<entry colname="1.0-attribute">
method
</entry>
<entry colname="2.0-attribute">
*
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>action-state</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>action-state</emphasis>
</entry>
</row>
<row>
<entry colname="1.0-attribute">
id
</entry>
<entry colname="2.0-attribute">
id
</entry>
</row>
<row>
<entry colname="1.0-attribute">
*
</entry>
<entry colname="2.0-attribute">
parent
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>argument</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>*</emphasis>
</entry>
<entry colname="comments">
use &lt;evaluate expression="func(arg1, arg2, ...)"/&gt;
</entry>
</row>
<row>
<entry colname="1.0-attribute">
expression
</entry>
</row>
<row>
<entry colname="1.0-attribute">
parameter-type
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>attribute</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>attribute</emphasis>
</entry>
</row>
<row>
<entry colname="1.0-attribute">
name
</entry>
<entry colname="2.0-attribute">
name
</entry>
</row>
<row>
<entry colname="1.0-attribute">
type
</entry>
<entry colname="2.0-attribute">
type
</entry>
</row>
<row>
<entry colname="1.0-attribute">
value
</entry>
<entry colname="2.0-attribute">
value
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>attribute-mapper</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>*</emphasis>
</entry>
<entry colname="comments">
input and output elements can be in flows or subflows directly
</entry>
</row>
<row>
<entry colname="1.0-attribute">
bean
</entry>
<entry colname="2.0-attribute">
*
</entry>
<entry colname="comments">
now subflow-attribute-mapper attribute on subflow-state
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>bean-action</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>*</emphasis>
</entry>
<entry colname="comments">
use &lt;evaluate /&gt;
</entry>
</row>
<row>
<entry colname="1.0-attribute">
bean
</entry>
<entry colname="2.0-attribute">
*
</entry>
</row>
<row>
<entry colname="1.0-attribute">
name
</entry>
<entry colname="2.0-attribute">
*
</entry>
</row>
<row>
<entry colname="1.0-attribute">
method
</entry>
<entry colname="2.0-attribute">
*
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>decision-state</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>decision-state</emphasis>
</entry>
</row>
<row>
<entry colname="1.0-attribute">
id
</entry>
<entry colname="2.0-attribute">
id
</entry>
</row>
<row>
<entry colname="1.0-attribute">
*
</entry>
<entry colname="2.0-attribute">
parent
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>end-actions</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>on-end</emphasis>
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>end-state</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>end-state</emphasis>
</entry>
</row>
<row>
<entry colname="1.0-attribute">
id
</entry>
<entry colname="2.0-attribute">
id
</entry>
</row>
<row>
<entry colname="1.0-attribute">
view
</entry>
<entry colname="2.0-attribute">
view
</entry>
</row>
<row>
<entry colname="1.0-attribute">
*
</entry>
<entry colname="2.0-attribute">
parent
</entry>
</row>
<row>
<entry colname="1.0-attribute">
*
</entry>
<entry colname="2.0-attribute">
commit
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>entry-actions</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>on-entry</emphasis>
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>evaluate-action</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>evaluate</emphasis>
</entry>
</row>
<row>
<entry colname="1.0-attribute">
expression
</entry>
<entry colname="2.0-attribute">
expression
</entry>
</row>
<row>
<entry colname="1.0-attribute">
name
</entry>
<entry colname="2.0-attribute">
*
</entry>
<entry colname="comments">
use &lt;evaluate ...&gt; &lt;attribute name=”name” value="..." /&gt; &lt;/evaluate&gt;
</entry>
</row>
<row>
<entry colname="1.0-attribute">
*
</entry>
<entry colname="2.0-attribute">
result
</entry>
</row>
<row>
<entry colname="1.0-attribute">
*
</entry>
<entry colname="2.0-attribute">
result-type
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>evaluation-result</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>*</emphasis>
</entry>
<entry colname="comments">
use &lt;evaluate result="..." /&gt;
</entry>
</row>
<row>
<entry colname="1.0-attribute">
name
</entry>
<entry colname="2.0-attribute">
*
</entry>
</row>
<row>
<entry colname="1.0-attribute">
scope
</entry>
<entry colname="2.0-attribute">
*
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>exception-handler</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>exception-handler</emphasis>
</entry>
</row>
<row>
<entry colname="1.0-attribute">
bean
</entry>
<entry colname="2.0-attribute">
bean
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>exit-actions</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>on-exit</emphasis>
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>flow</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>flow</emphasis>
</entry>
</row>
<row>
<entry colname="1.0-attribute">
*
</entry>
<entry colname="2.0-attribute">
start-state
</entry>
</row>
<row>
<entry colname="1.0-attribute">
*
</entry>
<entry colname="2.0-attribute">
parent
</entry>
</row>
<row>
<entry colname="1.0-attribute">
*
</entry>
<entry colname="2.0-attribute">
abstract
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>global-transitions</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>global-transitions</emphasis>
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>if</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>if</emphasis>
</entry>
</row>
<row>
<entry colname="1.0-attribute">
test
</entry>
<entry colname="2.0-attribute">
test
</entry>
</row>
<row>
<entry colname="1.0-attribute">
then
</entry>
<entry colname="2.0-attribute">
then
</entry>
</row>
<row>
<entry colname="1.0-attribute">
else
</entry>
<entry colname="2.0-attribute">
else
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>import</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>bean-import</emphasis>
</entry>
</row>
<row>
<entry colname="1.0-attribute">
resource
</entry>
<entry colname="2.0-attribute">
resource
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>inline-flow</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>*</emphasis>
</entry>
<entry colname="comments">
convert to new top-level flow
</entry>
</row>
<row>
<entry colname="1.0-attribute">
id
</entry>
<entry colname="2.0-attribute">
*
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>input-attribute</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>input</emphasis>
</entry>
</row>
<row>
<entry colname="1.0-attribute">
name
</entry>
<entry colname="2.0-attribute">
name
</entry>
</row>
<row>
<entry colname="1.0-attribute">
scope
</entry>
<entry colname="2.0-attribute">
*
</entry>
<entry colname="comments">
prefix name with scope &lt;input name="flowScope.foo" /&gt;
</entry>
</row>
<row>
<entry colname="1.0-attribute">
required
</entry>
<entry colname="2.0-attribute">
required
</entry>
</row>
<row>
<entry colname="1.0-attribute">
*
</entry>
<entry colname="2.0-attribute">
type
</entry>
</row>
<row>
<entry colname="1.0-attribute">
*
</entry>
<entry colname="2.0-attribute">
value
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>input-mapper</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>*</emphasis>
</entry>
<entry colname="comments">
inputs can be in flows and subflows directly
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>mapping</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>input or output</emphasis>
</entry>
</row>
<row>
<entry colname="1.0-attribute">
source
</entry>
<entry colname="2.0-attribute">
name or value
</entry>
<entry colname="comments">
name when in flow element, value when in subflow-state element
</entry>
</row>
<row>
<entry colname="1.0-attribute">
target
</entry>
<entry colname="2.0-attribute">
name or value
</entry>
<entry colname="comments">
value when in flow element, name when in subflow-state element
</entry>
</row>
<row>
<entry colname="1.0-attribute">
target-collection
</entry>
<entry colname="2.0-attribute">
*
</entry>
<entry colname="comments">
no longer supported
</entry>
</row>
<row>
<entry colname="1.0-attribute">
from
</entry>
<entry colname="2.0-attribute">
*
</entry>
<entry colname="comments">
detected automatically
</entry>
</row>
<row>
<entry colname="1.0-attribute">
to
</entry>
<entry colname="2.0-attribute">
type
</entry>
</row>
<row>
<entry colname="1.0-attribute">
required
</entry>
<entry colname="2.0-attribute">
required
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>method-argument</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>*</emphasis>
</entry>
<entry colname="comments">
use &lt;evaluate expression="func(arg1, arg2, ...)"/&gt;
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>method-result</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>*</emphasis>
</entry>
<entry colname="comments">
use &lt;evaluate result="..." /&gt;
</entry>
</row>
<row>
<entry colname="1.0-attribute">
name
</entry>
<entry colname="2.0-attribute">
*
</entry>
</row>
<row>
<entry colname="1.0-attribute">
scope
</entry>
<entry colname="2.0-attribute">
*
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>output-attribute</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>output</emphasis>
</entry>
</row>
<row>
<entry colname="1.0-attribute">
name
</entry>
<entry colname="2.0-attribute">
name
</entry>
</row>
<row>
<entry colname="1.0-attribute">
scope
</entry>
<entry colname="2.0-attribute">
*
</entry>
<entry colname="comments">
prefix name with scope &lt;output name="flowScope.foo" /&gt;
</entry>
</row>
<row>
<entry colname="1.0-attribute">
required
</entry>
<entry colname="2.0-attribute">
required
</entry>
</row>
<row>
<entry colname="1.0-attribute">
*
</entry>
<entry colname="2.0-attribute">
type
</entry>
</row>
<row>
<entry colname="1.0-attribute">
*
</entry>
<entry colname="2.0-attribute">
value
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>output-mapper</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>*</emphasis>
</entry>
<entry colname="comments">
output can be in flows and subflows directly
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>render-actions</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>on-render</emphasis>
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>set</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>set</emphasis>
</entry>
</row>
<row>
<entry colname="1.0-attribute">
attribute
</entry>
<entry colname="2.0-attribute">
name
</entry>
</row>
<row>
<entry colname="1.0-attribute">
scope
</entry>
<entry colname="2.0-attribute">
*
</entry>
<entry colname="comments">
prefix name with scope &lt;set name="flowScope.foo" /&gt;
</entry>
</row>
<row>
<entry colname="1.0-attribute">
value
</entry>
<entry colname="2.0-attribute">
value
</entry>
</row>
<row>
<entry colname="1.0-attribute">
name
</entry>
<entry colname="2.0-attribute">
*
</entry>
<entry colname="comments">
use &lt;set ...&gt; &lt;attribute name=”name” value="..." /&gt; &lt;/set&gt;
</entry>
</row>
<row>
<entry colname="1.0-attribute">
*
</entry>
<entry colname="2.0-attribute">
type
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>start-actions</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>on-start</emphasis>
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>start-state</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>*</emphasis>
</entry>
<entry colname="comments">
now &lt;flow start-state="..."&gt;, or defaults to the first state in the flow
</entry>
</row>
<row>
<entry colname="1.0-attribute">
idref
</entry>
<entry colname="2.0-attribute">
*
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>subflow-state</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>subflow-state</emphasis>
</entry>
</row>
<row>
<entry colname="1.0-attribute">
id
</entry>
<entry colname="2.0-attribute">
id
</entry>
</row>
<row>
<entry colname="1.0-attribute">
flow
</entry>
<entry colname="2.0-attribute">
subflow
</entry>
</row>
<row>
<entry colname="1.0-attribute">
*
</entry>
<entry colname="2.0-attribute">
parent
</entry>
</row>
<row>
<entry colname="1.0-attribute">
*
</entry>
<entry colname="2.0-attribute">
subflow-attribute-mapper
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>transition</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>transition</emphasis>
</entry>
</row>
<row>
<entry colname="1.0-attribute">
on
</entry>
<entry colname="2.0-attribute">
on
</entry>
</row>
<row>
<entry colname="1.0-attribute">
on-exception
</entry>
<entry colname="2.0-attribute">
on-exception
</entry>
</row>
<row>
<entry colname="1.0-attribute">
to
</entry>
<entry colname="2.0-attribute">
to
</entry>
</row>
<row>
<entry colname="1.0-attribute">
*
</entry>
<entry colname="2.0-attribute">
bind
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>value</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>value</emphasis>
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>var</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>var</emphasis>
</entry>
</row>
<row>
<entry colname="1.0-attribute">
name
</entry>
<entry colname="2.0-attribute">
name
</entry>
</row>
<row>
<entry colname="1.0-attribute">
class
</entry>
<entry colname="2.0-attribute">
class
</entry>
</row>
<row>
<entry colname="1.0-attribute">
scope
</entry>
<entry colname="2.0-attribute">
*
</entry>
<entry colname="comments">
always flow scope
</entry>
</row>
<row>
<entry colname="1.0-attribute">
bean
</entry>
<entry colname="2.0-attribute">
*
</entry>
<entry colname="comments">
all Spring beans can be resolved with EL
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>view-state</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>view-state</emphasis>
</entry>
</row>
<row>
<entry colname="1.0-attribute">
id
</entry>
<entry colname="2.0-attribute">
id
</entry>
</row>
<row>
<entry colname="1.0-attribute">
view
</entry>
<entry colname="2.0-attribute">
view
</entry>
</row>
<row>
<entry colname="1.0-attribute">
*
</entry>
<entry colname="2.0-attribute">
parent
</entry>
</row>
<row>
<entry colname="1.0-attribute">
*
</entry>
<entry colname="2.0-attribute">
redirect
</entry>
</row>
<row>
<entry colname="1.0-attribute">
*
</entry>
<entry colname="2.0-attribute">
popup
</entry>
</row>
<row>
<entry colname="1.0-attribute">
*
</entry>
<entry colname="2.0-attribute">
model
</entry>
</row>
<row>
<entry colname="1.0-attribute">
*
</entry>
<entry colname="2.0-attribute">
history
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>*</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>persistence-context</emphasis>
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>*</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>render</emphasis>
</entry>
</row>
<row>
<entry colname="1.0-attribute">
*
</entry>
<entry colname="2.0-attribute">
fragments
</entry>
</row>
</tbody>
<tbody>
<row>
<entry spanname="1.0-element">
<emphasis>*</emphasis>
</entry>
<entry spanname="2.0-element">
<emphasis>secured</emphasis>
</entry>
</row>
<row>
<entry colname="1.0-attribute">
*
</entry>
<entry colname="2.0-attribute">
attributes
</entry>
</row>
<row>
<entry colname="1.0-attribute">
*
</entry>
<entry colname="2.0-attribute">
match
</entry>
</row>
</tbody>
</tgroup>
</table>
</appendix>