This is the documentation for the XML used in the sequence component. I found it in an old wiki.
Introduction
Sequences consist of two things. First there are sequences of pages inside each zone. These are tags. Then there is a sequence of zones, to be strung together. These are tags.
Defining <zone>
The first thing to do in a sequence file, is to describe your zones. You do this by creating a tag for each zone that needs to be sequenced, with the property name as the name of your zone(without the zone_ prefix). Then you describe how to create an url for the zone. This is done in two steps.
Defining <url>
First, create an <url> to describe a hierarchy for this zone, so if you have a zone_base and then a hierarchical child, zone_admin:
<zone name="admin">
<url>
<link name="base"/>
<link name="admin"/>
</url>Defining <param>
Next you must specify what zone parameters exist for this zone. using the previous example, if zone_admin has one zone parameter, year, then
<param name="year"/>
Defining <pagesequence>
Now it is time to describe a page sequence. Every page sequence inside a zone must have a unique(to that zone) name. A page sequence is a set of ordered pages, called <step>s with optional <freepage>s that are accessed out of order. Each step has a name property, which is the name of the page without the page prefix, and an optional label property which can be used when presenting the user with a navigation tool.
If zone_admin has a set of pages to add users, then the following might be reasonable:
<pagesequence name="addUser">
<step page="addUser"/>
<step page="editDetails">
<param name="userId"/>
</step>
<step page="viewUser">
<param name="userId"/>
<action name="print" page="printUser"/>
</step>
<freepage page="printUser"/>
</pagesequence>Defining <step>
In the above, there are three ordered steps, addUser, editDetails, and viewUser. Both viewUser and editDetails need the userId as a parameter. In addition, from viewUser, the user can print the user's information, which, in our case, will open a new window. Since there is no navigation on the printUser page, no actions are defined for the freepage.
Defining <freepage>
<freepage> should be used for pages that don't fit into the ordered list, for example, if a page is an optional step in the process.
If it helps, you may note that steps are special cases of freepages, where the actions next and back are defined already to follow the sequence of the steps you have described.
Defining <action>
<action>s have a property called "name". When a user clicks a navigation button(or link), your application should post a variable called "actionField". The action whose name matches the value of this variable will be activated.
<action>s may have a property called type. By default(if you do not define type), the type of an action is "page". The possible types, from most commonly used to least commonly used, are listed below.
| Type | Example XML | Definition |
|---|---|---|
| page | <action name="edit" type="page" page="editDetails"/> |
The user is redirected to pageEditDetails. This is probably the most common action type. |
| backPage | <action name="back" type="backPage"/> |
The user is redirected to the previous step in the page sequence. If there is no previous step in the page sequence, the user is redirected to the last step of the previous zone in the zone sequence. If there is no previous zone in the zone sequence, the user is redirected to the page that first jumped to this sequence. This action is automatically defined for <step>s in a page sequence. |
| nextPage | <action name="next" type="nextPage"/> |
The user is redirected to the next step in the page sequence. As in back, but the opposite direction |
| backZone | <action name="skipBack" type="backZone"/> |
The user is redirected to the previous step in the zone sequence. This is useful for skipping pages in a page sequence. |
| nextZone | <action name="skip" type="nextZone"/> |
The user is redirected to the next step in the zone sequence. This is useful for skipping pages in a page sequence. |
| namedStep | <action name="skipTo" type="namedStep" step="admin" [page="editDetails"]/> |
The user is redirected to the step named admin in the zone sequence. If the page property is present, then it skips to that page in the named step. |
| exitSequence | <action name="getOut" type="exitSequence"/> |
The user is redirected to the page that first jumped to the sequence. |
Defining <zonesequence>
Now it is time to create a zone sequence. Zone sequences have a name, parameters and steps. You may not have two zone sequences with the same name.
<zonesequence name="AddUser">
<param name="periodId"/>
<step zone="admin" pagesequence="addUser/>
</zonesequence>
The above zonesequence has only one zone in it. TODO: Future versions of the sequence component will define a zonesequence for each zone and pagesequence you define. Then you will only need to define zonesequences that span multiple zones.
Defining <param>
The parameters specified in a zonesequence will be required before getUrl() can be called. These parameters will be passed to the zones and pages in the sequence.
TODO: There are more powerful options with these parameters that still need documenting.
Defining <step>
A step has the properties name, zone and pagesequence. If name is not specified, the name of the step defaults to the name of the zone.