<?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>
