coliver     2003/07/13 18:00:16

  Modified:    src/documentation/xdocs/userdocs/flow jxforms.xml
                        jxtemplate.xml velocity.xml woody.xml
  Log:
  More docs (still incomplete though)
  
  Revision  Changes    Path
  1.3       +197 -51   
cocoon-2.1/src/documentation/xdocs/userdocs/flow/jxforms.xml
  
  Index: jxforms.xml
  ===================================================================
  RCS file: 
/home/cvs/cocoon-2.1/src/documentation/xdocs/userdocs/flow/jxforms.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- jxforms.xml       13 Jul 2003 19:53:14 -0000      1.2
  +++ jxforms.xml       14 Jul 2003 01:00:15 -0000      1.3
  @@ -14,8 +14,19 @@
      <link href="http://www.w3.org/DOM/";>XML/DOM</link>, 
      <link href="http://www.jdom.org/";>JDOM</link>,
      <link 
href="http://jakarta.apache.org/commons/beanutils/api/org/apache/commons/beanutils/DynaBean.html";>DynaBeans</link>,
 and JavaScript objects.
  +    </p>
                
  -   </p>
  +  <s2 title="Table of Contents">
  +   <p><link href="#Overview">Overview</link></p>
  +   <p><link href="#Sitemap">Sitemap</link></p>
  +   <p><link href="#Controls">Form Controls</link></p>
  +   <p><link href="#JSAPI">JavaScript API</link></p>
  +   <p><link href="#Validation">Validation</link></p>
  +   <p><link href="#HTML">Conversion to HTML</link></p>
  +  </s2>
  +  </s1>
  +  <s1 title="Overview"><anchor id="Overview"/>
  +
   <p>W3C XForms defines a device-neutral, platform-independent set of
   form controls suitable for general-purpose use. JXForms supports a subset of 
these controls. The controls are
   bound to a <em>model</em> provided by your Flowscript via <link 
href="http://www.w3.org/TR/xpath";>XPath</link> expressions, for example in this 
simple case using the <code>ref</code> attribute
  @@ -44,11 +55,11 @@
     &lt;label&gt;Expiration Date&lt;/label&gt;
   
   &lt;/input&gt;
  -&lt;submit submission="submit"&gt;
  +&lt;submit id="submit" continuation="forward"&gt;
     &lt;label&gt;Submit&lt;/label&gt;
   &lt;/submit&gt;</source>
     <p>
  -  In your Flowscript you would supply an appropriate model, for example, 
like this:</p>
  +  In your Flow script you would supply an appropriate model, for example, 
like this:</p>
      <p><source>
         var model = {
            method: "cash",
  @@ -56,8 +67,12 @@
            expiry: ""
         }
      </source></p>
  -  <p>
  -  Upon submission of the form the model will be updated accordingly, and you 
can take action in your script based on its values:
  +   <p>
  +   Since JXForms uses <link 
href="http://jakarta.apache.org/commons/jxpath";>JXPath</link>, your model may 
consist of any objects that <link 
href="http://jakarta.apache.org/commons/jxpath";>JXPath</link> supports.
  +   </p>
  +   <p>
  +   Use the <code>setModel()</code> function of the form to associate your 
model with the form. Then use the <code>sendView()</code> function of the form 
to display it.
  +  Upon submission of the form, the model will be automatically updated and 
you can take action in your script based on its values:
     </p>
      <p><source>
         var model = {
  @@ -76,101 +91,226 @@
             ....
         } 
      </source></p>
  -   <p>
  -   Since JXForms uses <link 
href="http://jakarta.apache.org/commons/jxpath";>JXPath</link>, your model may 
consist of any objects that <link 
href="http://jakarta.apache.org/commons/jxpath";>JXPath</link> supports.
  -   </p>
      <p> 
  -   JXForms also supports declarative validation of form elements using 
Schematron, and automated support for back/forward navigation in multi-page 
forms using continuations.
  +   JXForms also supports declarative <link 
href="#validation">validation</link> of form elements using Schematron, and 
automated <link href="#backNext">support</link> for back/forward navigation in 
multi-page forms using continuations.
      </p>
     </s1>
   
  - <s1 title="Form Controls">
  + <s1 title="Sitemap"><anchor id="Sitemap"/>
  +<p>To use JXForms, you will need to add several elements to your Cocoon 
<link href="../concepts/sitemap.html">Sitemap</link>, namely the JXForms 
generator, and several XSLT stylesheets. To use the JXForms generator, add a 
generator entry to your Sitemap with the <code>src</code> attribute set to 
<code>org.apache.cocoon.generation.JXFormsGenerator</code>, for example like 
this:</p>
  +<source>
  +&lt;map:generators&gt;
  +  &lt;map:generator label="content,data" 
  +      logger="sitemap.generator.jxforms" name="jxforms" 
  +         src="org.apache.cocoon.generation.JXFormsGenerator"/&gt;
  +&lt;/map:generators&gt;
  + </source>
  + <p>To invoke your form use the Sitemap's <code>&lt;map:call&gt;</code> 
operation to invoke the <code>jxForm</code> Flowscript function, for example 
like this:</p>
  +<source><![CDATA[
  +   <map:match pattern="feedBackWizard">
  +     <map:call function="jxForm">
  +        <map:parameter name="function" value="{1}"/>
  +        <map:parameter name="id" value="form-feedback"/>
  +        <map:parameter name="validator-schema-namespace" 
value="http://www.ascc.net/xml/schematron"/>
  +        <map:parameter name="validator-schema" 
value="schematron/wizard-xmlform-sch-report.xml"/>
  +     </map:call>
  +   </map:match>
  +]]></source>
  +
  +  <p>
  +  </p>
  + </s1>  
  + <s1 title="Form Controls"><anchor id="Controls"/>
    <p>The JXForms tags are defined in the following namespace:</p>
    <source>http://apache.org/cocoon/jxforms/1.0</source>
    <p>JXForms supports the following controls:</p>
    <s2 title="form">
  - <p/>
  + <p>The JXForms <code>&lt;form&gt;</code> element represents the overall 
form. It also corresponds to a validation <em>phase</em> in your <link 
href="#Validation">validation</link> rules. It has no direct counterpart in W3C 
XForms.</p>
  + <p>Example:</p>
  +      <source><![CDATA[
  +  <xf:form id="form-feedback" view="userIdentity">
  +    <xf:label>Personal Information</xf:label>
  +    <error>
  +      <xf:violations class="error"/>
  +    </error>
  +    <xf:input ref="/firstName">
  +      <xf:label>First Name</xf:label>
  +      <xf:violations class="error"/>
  +    </xf:input>
  +  </xf:form>
  +      ]]></source> 
  + <p></p>
  + <p>It supports the following attributes:</p>
  + <ul>
  +   <li><code>id</code></li>
  +   <li><code>view</code></li>
  + </ul>
  + <p>
  + The <code>id</code> attribute must match the <code>id</code> Sitemap 
parameter passed to the <code>jxForm</code> function in 
<code>&lt;map:call&gt;</code>. The <code>view</code> attribute must match the 
<code>id</code> of a <code>&lt;phase&gt;</code> element in your Schematron 
validation rules.
  + </p>
  + </s2>
  + <s2 title="error">
  + <p>JXForms <code>&lt;error&gt;</code> has no counterpart in W3C XForms. If 
present under the <code>form</code> element it serves as a placeholder for 
validation error messages associated with the entire form.
  + </p>
  + </s2>
  + <s2 title="violations">
  + <p>JXForms <code>&lt;violations&gt;</code> element has no counterpart in 
W3C XForms.</p>
  + <p>Example:</p>
  +      <source><![CDATA[
  +      ]]></source> 
  + <p></p>
  + </s2>
  + <s2 title="violation">
  + <p>JXForms <code>&lt;violation&gt;</code> element has no counterpart in W3C 
XForms.</p>
  + <p>Example:</p>
  +      <source><![CDATA[
  +      ]]></source> 
  + <p></p>
    </s2>
    <s2 title="input">
  + <p>JXForms <code>&lt;input&gt;</code> is based on the W3C XForms <link 
href="http://www.w3.org/TR/xforms/slice8.html#ui-input";>input</link> element. 
It allows the user to do free-form data entry.</p>
  + <p>Example:</p>
  +      <source><![CDATA[
  +      ]]></source> 
  + <p></p>
  + <p>It supports the following attributes:</p>
  + <ul>
  +   <li><code>ref</code></li>
  +   <li><code>appearance</code></li>
  +   <li><code>class</code></li>
  + </ul>
    <p/>
    </s2>
    <s2 title="secret">
  + <p>JXForms <code>&lt;secret&gt;</code> is based on the W3C XForms <link 
href="http://www.w3.org/TR/xforms/slice8.html#ui-secret";>secret</link> element. 
It is is used for entering information that is considered sensitive, and thus 
not echoed to a visual or aural display as it is being entered, e.g., password 
entry. </p>
  + <p>Example:</p>
  +      <source><![CDATA[
  +      ]]></source> 
  + <p></p>
  +<p>It supports the following attributes:</p>
  +
  + <ul>
  +   <li><code>ref</code></li>
  +   <li><code>appearance</code></li>
  +   <li><code>class</code></li>
  + </ul>
    <p/>
    </s2>
    <s2 title="textarea">
  + <p>JXForms <code>&lt;textarea&gt;</code> is based on the W3C XForms <link 
href="http://www.w3.org/TR/xforms/slice8.html#ui-textarea";>textarea</link> 
element. </p>
  + <p>Example:</p>
  +      <source><![CDATA[
  +      ]]></source> 
  + <p></p>
  + <p>It supports the following attributes:</p>
  + <ul>
  +   <li><code>ref</code></li>
  +   <li><code>appearance</code></li>
  + </ul>
    <p/>
    </s2>
    <s2 title="output">
  - <p/>
  + <p>JXForms <code>&lt;output&gt;</code> is based on the W3C XForms <link 
href="http://www.w3.org/TR/xforms/slice8.html#ui-output";>output</link> element. 
It is used to display values from the model, but provides no means to enter or 
modify those values.</p>
  + <p>Example:</p>
  +      <source><![CDATA[
  +      ]]></source> 
  + <p></p>
  + <p>It supports the following attributes:</p>
  + <ul>
  +   <li><code>ref</code></li>
  +   <li><code>value</code></li>
  +   <li><code>appearance</code></li>
  +   <li><code>class</code></li>
  + </ul>
    </s2>
    <s2 title="select">
      <p>
       </p>
  - <p>JXForms <code>&lt;select&gt;</code> is modelled after the <link 
href="http://www.w3.org/TR/xforms/slice8.html#ui-selectMany";>W3C XForms 
&lt;select&gt;</link> element. It supports the following attributes:</p>
  + <p>JXForms <code>&lt;select&gt;</code> is based on the W3C XForms <link 
href="http://www.w3.org/TR/xforms/slice8.html#ui-selectMany";>select</link> 
element. </p>
  + <p>Example:</p>
  +      <source><![CDATA[
  +      ]]></source> 
  + <p></p>
  +
  +<p>It supports the following attributes:</p>
    <ul>
      <li><code>ref</code></li>
  -   <li><code>id</code></li>
      <li><code>appearance</code></li>
  +   <li><code>class</code></li>
    </ul>
    </s2>
    <s2 title="select1">
  + <p>JXForms <code>&lt;select&gt;</code> is based on the W3C XForms <link 
href="http://www.w3.org/TR/xforms/slice8.html#ui-selectOne";>select1</link> 
element. It supports the following attributes:</p>
  + <ul>
  +   <li><code>ref</code></li>
  +   <li><code>appearance</code></li>
  +   <li><code>class</code></li>
  + </ul>
    <p/>
    </s2>
    <s2 title="submit">
  - <p>JXForms <code>&lt;submit&gt;</code> differs from that of W3C XForms. It 
supports the following attributes:</p>
  + <p>JXForms <code>&lt;submit&gt;</code> differs from <link 
href="http://www.w3.org/TR/xforms/slice8.html#ui-submit";>that</link> of W3C 
XForms. </p>
  + <p>Example:</p>
  +      <source><![CDATA[
  +      ]]></source> 
  + <p></p>
  +
  +<p>It supports the following attributes:</p>
    <ul>
      <li><code>id</code></li>
      <li><code>continuation</code></li>
      <li><code>class</code></li>
    </ul>
  - <p>Example: Submit
  - </p>
  -<source>
  -&lt;submit submission="timecard"&gt;
  -  &lt;label&gt;Submit Timecard&lt;/label&gt;
  -&lt;/submit&gt;
  -</source>
    <p>
    </p>
   </s2>
    <s2 title="group">
  - <p/>
  + <p>JXForms <code>&lt;group&gt;</code> is based on the W3C XForms <link 
href="http://www.w3.org/TR/xforms/slice9.html#ui-group";>group</link> 
element.</p>
  + <p>Example:</p>
  +      <source><![CDATA[
  +      ]]></source> 
  + <p></p>
  +
  + <p>It supports the following attributes:</p>
  + <ul>
  +   <li><code>ref</code></li>
  +   <li><code>class</code></li>
  + </ul>
  + <p>
  +  The value of the <code>ref</code> attribute of a 
<code>&lt;group&gt;</code> is the context node for evaluting relative paths of 
the <code>ref</code> attributes of its sub-elements.
  + </p>
    </s2>
    <s2 title="repeat">
  + <p>JXForms <code>&lt;repeat&gt;</code> is based on the W3C XForms <link 
href="http://www.w3.org/TR/xforms/slice9.html#ui-repeat";>repeat</link> 
element.</p>
  + <p>Example:</p>
  +      <source><![CDATA[
  +      ]]></source> 
  + <p></p>
  +<p> It supports the following attributes:</p>
  + <ul>
  +   <li><code>nodeset</code></li>
  + </ul>
    <p/>
    </s2>
    <s2 title="itemset">
  + <p>JXForms <code>&lt;itemset&gt;</code> is based on the W3C XForms <link 
href="http://www.w3.org/TR/xforms/slice9.html#ui-common-elements-itemset";>itemset</link>
 element. It is used for the dynamic creation of selections within the 
<code>select</code> and <code>select1</code> elements.</p>
  + <p>Example:</p>
  +      <source><![CDATA[
  +      ]]></source> 
  + <p></p>
  +<p> It supports the following attributes:</p>
  + <ul>
  +   <li><code>nodeset</code></li>
  + </ul>
    <p/>
    </s2>
    </s1>  
  - <s1 title="Sitemap">
  -<p>To use the JXForms, you will need to add several elements to your <link 
href="../concepts/sitemap.html">Sitemap</link>, namely the JXForms generator, 
and several XSLT stylesheets. To use the JXForms generator add a generator 
entry to your Sitemap with the <code>src</code> attribute set to 
<code>org.apache.cocoon.generation.JXFormsGenerator</code>, for example like 
this:</p>
  -<source>
  -&lt;map:generators&gt;
  -  &lt;map:generator label="content,data" 
  -      logger="sitemap.generator.jxforms" name="jxforms" 
  -         src="org.apache.cocoon.generation.JXFormsGenerator"/&gt;
  -&lt;/map:generators&gt;
  - </source>
  - <p>To invoke your form you use the Sitemap's <code>&lt;map:call&gt;</code> 
operation to invoke the <code>jxForm</code> Flowscript function, for example 
like this:</p>
  -<source><![CDATA[
  -   <map:match pattern="feedBackWizard">
  -     <map:call function="jxForm">
  -        <map:parameter name="function" value="{1}"/>
  -        <map:parameter name="id" value="form-feedback"/>
  -        <map:parameter name="validator-schema-namespace" 
value="http://www.ascc.net/xml/schematron"/>
  -        <map:parameter name="validator-schema" 
value="schematron/wizard-xmlform-sch-report.xml"/>
  -     </map:call>
  -   </map:match>
  -]]></source>
  -
  -</s1>  
  - <s1 title="Flowscript">
  + <s1 title="JavaScript API"><anchor id="JSAPI"/>
     <p>
  -  JXForms provides a JavaScript <code>JXForm</code> object that provides 
methods for you to manage your form's <em>model</em> and to invoke its 
associated <em>view</em> and any validation you've specified.
  +  JXForms provides a JavaScript <code>JXForm</code> object that provides 
methods for you to manage your form's <em>model</em> and to invoke its 
associated <em>view</em> and any validation rules you've specified.
     </p>
     <p>
  -  To use JXForms in a Flowscript you must load <code>JXForm.js</code> into 
your script and define a function that takes at one argument (the argument 
passed to your function will be a JavaScript representation of your form), for 
example like this:</p>
  +  To use JXForms in a Flowscript you must load 
<code>resource://org/apache/cocoon/components/flow/javascript/JXForm.js</code> 
into your script and define a function that takes one argument (the argument 
passed to your function will be a JavaScript representation of your form), for 
example like this:</p>
     <source>
   
       
cocoon.load("resource://org/apache/cocoon/components/flow/javascript/JXForm.js");
  @@ -178,8 +318,9 @@
       function myFormHandler(form) {
          ...
       }
  -
     </source>
  +  <p>
  +  </p>
     <s2 title="JXForm Object">
     <p>
       The <code>JXForm</code> object passed to your function has the following 
properties and functions:</p>
  @@ -243,9 +384,14 @@
       </s3>
     </s2>
    </s1>  
  - <s1 title="Validation">
  + <s1 title="Validation"><anchor id="Validation"/>
  + <p>
  + JXForms provides declarative form validation using the <link 
href="http://www.ascc.net/xml/resource/schematron/Schematron2000.html";>Schematron</link>
 assertion language. Since Schematron is also based on XPath, you use the same 
expressions to reference your model in your validation rules as in your forms. 
In addition, because JXForms implements Schematron using <link 
href="http://jakarta.apache.org/commons/jxpath";>JXPath</link>, you can make 
assertions about Java and JavaScript objects in your validation rules as well 
as about XML documents.
  + </p>
    </s1>  
  - <s1 title="Stylesheets">
  + <s1 title="Conversion to HTML"><anchor id="HTML"/>
  + <p>For conversion of JXForms controls to XHTML, JXForms provides two XSLT 
stylesheets that must be applied to the output of JXFormsGenerator: 
<code>jxforms-default.xsl</code> and <code>jxforms2html.xsl</code>. The former 
performs formatting of validation error messages. The latter converts the 
result to XHTML.
  + </p>
    </s1>  
    </body>
   </document>
  
  
  
  1.16      +3 -3      
cocoon-2.1/src/documentation/xdocs/userdocs/flow/jxtemplate.xml
  
  Index: jxtemplate.xml
  ===================================================================
  RCS file: 
/home/cvs/cocoon-2.1/src/documentation/xdocs/userdocs/flow/jxtemplate.xml,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- jxtemplate.xml    13 Jul 2003 19:53:14 -0000      1.15
  +++ jxtemplate.xml    14 Jul 2003 01:00:15 -0000      1.16
  @@ -70,13 +70,13 @@
   <source>
      &lt;form action="${continuation.id}"&gt;
   </source>
  -<p>You can also reach previous continuations by using the 
<code>getContinuation()</code> function:</p>
  +<p>You can also reach previous continuations by using the 
<code>getParent()</code> function:</p>
   <source>
  -    &lt;form action="${continuation.getContinuation(1).id}" >
  +    &lt;form action="${continuation.getParent().id}" >
   </source>
   <p>or using an XPath expression:</p>
   <source>
  -    &lt;form action="#{getContinuation($continuation, 1)/id}" >
  +    &lt;form action="#{getParent($continuation)/id}" >
   </source>
   </s1>
   <s1 title ="Tags">
  
  
  
  1.16      +6 -6      
cocoon-2.1/src/documentation/xdocs/userdocs/flow/velocity.xml
  
  Index: velocity.xml
  ===================================================================
  RCS file: 
/home/cvs/cocoon-2.1/src/documentation/xdocs/userdocs/flow/velocity.xml,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- velocity.xml      13 Jul 2003 19:53:14 -0000      1.15
  +++ velocity.xml      14 Jul 2003 01:00:15 -0000      1.16
  @@ -22,19 +22,19 @@
      <source>
     &lt;form action="$continuation.id"&gt;
      </source>
  -   <p>You can also reach previous continuations by using the 
<code>getContinuation()</code> function:</p>
  +   <p>You can also reach previous continuations by using the 
<code>getParent()</code> function:</p>
      <source>
  -  &lt;form action="$continuation.getContinuation(1).id" &gt;
  +  &lt;form action="$continuation.getParent().id" &gt;
      </source>
      <p>In addition the following implicit objects are always available in the 
Velocity context:</p>
      <dl>
  -    <dt><link 
href="../../apidocs/java/org/apache/cocoon/environment/Request.html">org.apache.cocoon.environment.Request</link>
 <code>$request</code> </dt>
  +    <dt><link 
href="../../apidocs/java/org/apache/cocoon/environment/Request.html">Request</link>
 <code>$request</code> </dt>
       <dd>The current Cocoon request</dd>
  -    <dt><link 
href="../../apidocs/java/org/apache/cocoon/environment/Response.html">org.apache.cocoon.environment.Response</link>
 <code>$response</code> </dt>
  +    <dt><link 
href="../../apidocs/java/org/apache/cocoon/environment/Response.html">Response</link>
 <code>$response</code> </dt>
       <dd>The Cocoon response associated with the current request</dd>
  -    <dt><link 
href="../../apidocs/java/org/apache/cocoon/environment/Session.html">org.apache.cocoon.environment.Session</link>
 <code>$session</code> </dt>
  +    <dt><link 
href="../../apidocs/java/org/apache/cocoon/environment/Session.html">Session</link>
 <code>$session</code> </dt>
       <dd>The Cocoon session associated with the current request</dd>
  -    <dt><link 
href="../../apidocs/java/org/apache/cocoon/environment/Context.html">org.apache.cocoon.environment.Context</link>
 <code>$context</code> </dt>
  +    <dt><link 
href="../../apidocs/java/org/apache/cocoon/environment/Context.html">Context</link>
 <code>$context</code> </dt>
       <dd>The Cocoon context associated with the current request</dd>
       <dt><code>org.apache.avalon.framework.parameters.Parameters</code> 
<code>$parameters</code> </dt>
       <dd>Any parameters passed to the generator in the pipeline</dd>
  
  
  
  1.2       +5 -10     
cocoon-2.1/src/documentation/xdocs/userdocs/flow/woody.xml
  
  Index: woody.xml
  ===================================================================
  RCS file: 
/home/cvs/cocoon-2.1/src/documentation/xdocs/userdocs/flow/woody.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- woody.xml 13 Jul 2003 00:48:29 -0000      1.1
  +++ woody.xml 14 Jul 2003 01:00:15 -0000      1.2
  @@ -56,6 +56,8 @@
   
   }
   ]]></source>
  +    <p>
  +    </p>
       <s2 title ="The woody function"><anchor id="woody"/>
         <p>The entry point to a Woody form is the <code>woody()</code> 
function:
         <p>
  @@ -82,16 +84,9 @@
   parameter, the newly created form.
         </p>
     <p>
  -  To use Woody in a Flowscript you must load <code>woody.js</code> into your 
script and define a function that takes one argument (the argument passed to 
your function will be a JavaScript representation of your Woody form), for 
example like this:</p>
  -  <source>
  -
  -    
cocoon.load("resource://org/apache/cocoon/components/woody/flow/javascript/woody.js");
  -
  -    function myFormHandler(form) {
  -       ...
  -    }
  -  </source> 
  -  </s2>
  +  To use Woody in a Flowscript you must load <code>woody.js</code> into your 
script and define a function that takes one argument (<code>form1</code> in the 
example at the top of this page). The argument passed to your function will be 
a JavaScript representation of your Woody form.
  +  </p>
  + </s2>
    <s2 title="Form Object">
     <p>
     Woody provides a JavaScript <code>Form</code> object that provides methods 
for you to manage your form's <em>model</em> and to invoke its associated 
<em>view</em> and any validation you've specified.
  
  
  

Reply via email to