<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright 2004 The Apache Software Foundation
  
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at
  
       http://www.apache.org/licenses/LICENSE-2.0
  
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<!-- $Id$ -->
<!DOCTYPE component-specification PUBLIC
  "-//Apache Software Foundation//Tapestry Specification 3.0//EN"
  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">

<component-specification class="org.apache.tapestry.wml.Go">

    <description>
        The go element declares a go task, indicating navigation to a URI.
    </description>

    <parameter name="method" type="java.lang.String" direction="in">
        <description>
            The method used by the form when it is submitted, defaults to POST.
        </description>
    </parameter>

    <parameter name="listener" type="org.apache.tapestry.IActionListener" required="no" direction="in">
        <description>
            Object invoked when the form is submitted, after all form components have responded
            to the submission.
        </description>
    </parameter>

    <parameter name="stateful" type="boolean" direction="custom">
        <description>
            If true (the default), then an active HttpSession is required.
        </description>
    </parameter>

    <parameter name="direct" type="boolean" direction="in">
        <description>
            If true (the default), then the more efficient direct service is used.
            If false, then the action service is used.
        </description>
    </parameter>

    <reserved-parameter name="href"/>

</component-specification>
