You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by re...@apache.org on 2003/07/11 01:48:53 UTC

cvs commit: cocoon-2.1/src/blocks/petstore/samples sitemap.xmap

reinhard    2003/07/10 16:48:53

  Added:       src/blocks/petstore/java .cvsignore
               src/blocks/petstore/lib .cvsignore
               src/blocks/petstore/samples/images banner_birds.gif
                        banner_cats.gif banner_dogs.gif banner_fish.gif
                        banner_reptiles.gif bird1.gif bird1.jpg bird2.gif
                        bird2.jpg bird3.gif bird4.gif bird5.gif bird6.gif
                        birds_icon.gif bkg-sidebar.gif bkg-topbar.gif
                        button_add_to_cart.gif button_checkout.gif
                        button_continue.gif button_next.gif button_prev.gif
                        button_previous.gif button_proceed.gif
                        button_register_now.gif button_remove.gif
                        button_submit.gif button_update_cart.gif cart.gif
                        cartHL.gif cat1.gif cat1.jpg cat2.gif cat2.jpg
                        cat3.gif cat4.gif cats_icon.gif cocoon.gif dog1.gif
                        dog1.jpg dog2.gif dog2.jpg dog3.gif dog3.jpg
                        dog4.gif dog4.jpg dog5.gif dog5.jpg dog6.gif
                        dog6.jpg dogs.gif dogs_icon.gif fish.gif fish1.gif
                        fish1.jpg fish2.gif fish2.jpg fish3.gif fish3.jpg
                        fish4.gif fish4.jpg fish_icon.gif help.gif
                        helpHL.gif lizard1.gif lizard1.jpg lizard2.gif
                        lizard3.gif logo-topbar.gif my_account.gif
                        my_accountHL.gif poweredby.gif reptiles_icon.gif
                        search.gif separator.gif sign-in.gif sign-inHL.gif
                        sign-out.gif sign-outHL.gif sm_birds.gif
                        sm_cats.gif sm_dogs.gif sm_fish.gif sm_reptiles.gif
                        snake1.gif snake1.jpg splash.gif
               src/blocks/petstore/samples/view/templates Cart.vm
                        Category.vm Checkout.vm ConfirmOrder.vm
                        EditAccountForm.vm Error.vm IncludeAccountFields.vm
                        IncludeBottom.vm IncludeMyList.vm
                        IncludeQuickHeader.vm IncludeTop.vm index.vm
                        Item.vm NewAccountForm.vm NewOrderForm.vm
                        Product.vm SearchProducts.vm ShippingForm.vm
                        SignonForm.vm ViewOrder.vm
               src/blocks/petstore/samples/view/jexl Cart.xml Category.xml
                        Checkout.xml ConfirmOrder.xml IncludeBottom.xml
                        IncludeMyList.xml IncludeQuickHeader.xml
                        IncludeTop.xml index.xml Item.xml
                        NewAccountForm.xml NewOrderForm.xml Product.xml
                        SearchProducts.xml ShippingForm.xml SignonForm.xml
                        ViewOrder.xml
               src/blocks/petstore/samples/view/jxpath Cart.xml
                        Category.xml Checkout.xml ConfirmOrder.xml
                        IncludeBottom.xml IncludeMyList.xml
                        IncludeQuickHeader.xml IncludeTop.xml index.xml
                        Item.xml NewAccountForm.xml NewOrderForm.xml
                        Product.xml SearchProducts.xml ShippingForm.xml
                        SignonForm.xml ViewOrder.xml
               src/blocks/petstore/samples/view/xsp Cart.xsp Category.xsp
                        Checkout.xsp ConfirmOrder.xsp EditAccountForm.xsp
                        index.xsp Item.xsp NewAccountForm.xsp
                        NewOrderForm.xsp Product.xsp SearchProducts.xsp
                        ShippingForm.xsp SignonForm.xsp ViewOrder.xsp
               src/blocks/petstore/samples/view/jxforms
                        EditAccountInformation.xml
                        EditProfileInformation.xml EditUserInformation.xml
               src/blocks/petstore/samples/stylesheets form2html.xsl
                        site2html.xsl
               src/blocks/petstore/samples/flow petstore.js PetStoreImpl.js
               src/blocks/petstore/conf petstore.xsamples
               src/blocks/petstore/samples sitemap.xmap
  Log:
  - move Petstore from scratchpad into its own block
  
  Revision  Changes    Path
  1.1                  cocoon-2.1/src/blocks/petstore/java/.cvsignore
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/lib/.cvsignore
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/banner_birds.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/banner_cats.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/banner_dogs.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/banner_fish.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/banner_reptiles.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/bird1.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/bird1.jpg
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/bird2.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/bird2.jpg
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/bird3.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/bird4.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/bird5.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/bird6.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/birds_icon.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/bkg-sidebar.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/bkg-topbar.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/button_add_to_cart.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/button_checkout.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/button_continue.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/button_next.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/button_prev.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/button_previous.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/button_proceed.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/button_register_now.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/button_remove.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/button_submit.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/button_update_cart.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/cart.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/cartHL.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/cat1.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/cat1.jpg
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/cat2.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/cat2.jpg
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/cat3.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/cat4.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/cats_icon.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/cocoon.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/dog1.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/dog1.jpg
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/dog2.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/dog2.jpg
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/dog3.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/dog3.jpg
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/dog4.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/dog4.jpg
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/dog5.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/dog5.jpg
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/dog6.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/dog6.jpg
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/dogs.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/dogs_icon.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/fish.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/fish1.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/fish1.jpg
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/fish2.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/fish2.jpg
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/fish3.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/fish3.jpg
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/fish4.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/fish4.jpg
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/fish_icon.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/help.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/helpHL.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/lizard1.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/lizard1.jpg
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/lizard2.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/lizard3.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/logo-topbar.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/my_account.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/my_accountHL.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/poweredby.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/reptiles_icon.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/search.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/separator.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/sign-in.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/sign-inHL.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/sign-out.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/sign-outHL.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/sm_birds.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/sm_cats.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/sm_dogs.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/sm_fish.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/sm_reptiles.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/snake1.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/snake1.jpg
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/images/splash.gif
  
  	<<Binary file>>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/templates/Cart.vm
  
  Index: Cart.vm
  ===================================================================
  #parse("view/templates/IncludeTop.vm")
  <table border="0" width="100%" cellspacing="0" cellpadding="0">
  <tr><td valign="top" width="20%" align="left">
  <table align="left" bgcolor="#008800" border="0" cellspacing="2" cellpadding="2">
  <tr><td bgcolor="#FFFF88">
  <a href="index.do"><b><font color="BLACK" size="2">&lt;&lt; Main Menu</font></b></a>
  </td></tr>
  </table>
  </td><td valign="top" align="center">
  <h2 align="center">Shopping Cart</h2>
  <form action="updateCartQuantities.do" method="post" >
  <table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="5">
    <tr bgcolor="#cccccc">
    <td><b>Item ID</b></td>  <td><b>Product ID</b></td>  <td><b>Description</b></td>  <td><b>Quantity</b></td>  <td><b>List Price</b></td>  <td> </td>
    </tr>
  
  #if ($cartForm.cart.numberOfItems.intValue() == 0) 
  <tr bgcolor="#FFFF88"><td colspan="6"><b>Your cart is empty.</b></td></tr>
  #end
  
  #foreach ($cartItem in $cartForm.cart.cartItems)
    <tr bgcolor="#FFFF88">
    <td><b>
   $cartItem.item.itemId
   <a href="viewItem.do?cartItem=$cartItem.item.itemId">
  </a></b></td>
    <td>$cartItem.item.productId</td>
    <td>
       $!cartItem.item.attr1
       $!cartItem.item.attr2
       $!cartItem.item.attr3
       $!cartItem.item.attr4
       $!cartItem.item.attr5
       $cartItem.item.product.name
     </td>
    <td align="center">
    <input type="text" size="3" name="$cartItem.item.itemId" value="$cartItem.quantity.intValue()" />
    </td>
    <td align="right">$fmt.formatNumber($cartItem.item.listPrice, '$#,##0.00')</td>
    <td><a href="removeItemFromCart.do?workingItemId=$cartItem.item.itemId">
    <img border="0" src="images/button_remove.gif" /></a></td>
    </tr>
  #end
  <tr bgcolor="#FFFF88">
  <td colspan="5" align="right">
  
  <b>Sub Total: $fmt.formatNumber($cartForm.cart.subTotal, '$#,##0.00')</b><br />
  <input type="image" border="0" src="images/button_update_cart.gif" name="update" />
  
  </td><td> </td>
  </tr>
  </table>
  </form>
  
  #if ($cartForm.cart.numberOfItems.intValue() > 0)
  <br /><center><a href="checkout.do"><img border="0" src="images/button_checkout.gif" /></a></center>
  #end
  
  </td>
  
  
  <td valign="top" width="20%" align="right">
  #if ($accountForm)
   #if ($accountForm.account)
    #if ($accountForm.account.username)
      #if ($accountForm.account.listOption)
        #parse("view/templates/IncludeMyList.vm")
      #end
    #end
  #end
  #end
  </td>
  
  </tr>
  </table>
  
  #parse("view/templates/IncludeBottom.vm")
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/templates/Category.vm
  
  Index: Category.vm
  ===================================================================
  #parse("view/templates/IncludeTop.vm");
  
  <table align="left" bgcolor="#008800" border="0" cellspacing="2" cellpadding="2">
  <tr><td bgcolor="#FFFF88">
  <a href="index.do"><b><font color="BLACK" size="2">&lt;&lt; Main Menu</font></b></a>
  </td></tr>
  </table>
  
  <p>
  <center>
    <h2>$category.name</h2>
  </center>
  <table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="3">
    <tr bgcolor="#CCCCCC">  <td><b>Product ID</b></td>  <td><b>Name</b></td>    </tr>
  #foreach ($product in $productList)
    <tr bgcolor="#FFFF88">
    <td><b><a href="viewProduct.do?productId=$product.productId"><font color="BLACK">$product.productId</font></a></b></td>
    <td>$product.name</td>
    </tr>
  #end
    <tr><td>
  #if (!$firstPage)
      <a href="${continuation.id}.kont?page=previous"><font color="white"><B>&lt;&lt; Prev</B></font></a>
  #end
  #if (!$lastPage)
      <a href="${continuation.id}.kont?page=next"><font color="white"><B>Next &gt;&gt;</B></font></a>
  #end
    </td></tr>
  </table>
  </p>
  #parse("view/templates/IncludeBottom.vm")
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/templates/Checkout.vm
  
  Index: Checkout.vm
  ===================================================================
  #parse("view/templates/IncludeTop.vm")
  
  
  <table border="0" width="100%" cellspacing="0" cellpadding="0">
  <tr><td valign="top" width="20%" align="left">
  <table align="left" bgcolor="#008800" border="0" cellspacing="2" cellpadding="2">
  <tr><td bgcolor="#FFFF88">
  <a href="viewCart.do"><b><font color="BLACK" size="2">&lt;&lt; Shopping Cart</font></b></a>
  </td></tr>
  </table>
  </td>
  
  <td valign="top" align="center">
  <h2 align="center">Checkout Summary</h2>
  
  <table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="5">
    <tr bgcolor="#cccccc">  <td><b>Item ID</b></td>  <td><b>Product ID</b></td>  <td><b>Description</b></td>  <td><b>Quantity</b></td>  <td><b>List Price</b></td>  </tr>
  
  #foreach ($cartItem in $cartForm.cart.cartItems) 
    <tr bgcolor="#FFFF88">
    <td><b>
  
   <a href="viewItem.do?itemId=$cartItem.item.itemId">
   $cartItem.item.itemId</a></b></td>
    <td>$cartItem.item.productId</td>
    <td>
  	$!cartItem.item.attr1
  	$!cartItem.item.attr2
  	$!cartItem.item.attr3
  	$!cartItem.item.attr4
  	$!cartItem.item.attr5
  	$!cartItem.item.product.name
     </td>
    <td align="center">
    $cartItem.quantity.intValue()
    </td>
    <td align="right">$fmt.formatNumber($cartItem.item.listPrice, '$#,##0.00')</td>
    </tr>
  #end
  <tr bgcolor="#FFFF88">
  <td colspan="5" align="right">
  
  <b>Sub Total: $fmt.formatNumber($cartForm.cart.subTotal, '$#,##0.00')</b><br />
  
  </td>
  </tr>
  </table>
  <br />
  <center><a href="${continuation.id}.kont"><img border="0" src="images/button_continue.gif" /></a></center>
  </td>
  
  
  <td valign="top" width="20%" align="right">
  
  </td>
  
  </tr>
  </table>
  
  #parse("view/templates/IncludeBottom.vm")
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/templates/ConfirmOrder.vm
  
  Index: ConfirmOrder.vm
  ===================================================================
  #parse ("view/templates/IncludeTop.vm")
  
  
  <table align="left" bgcolor="#008800" border="0" cellspacing="2" cellpadding="2">
  <tr><td bgcolor="#FFFF88">
  <a href="index.do"><b><font color="BLACK" size="2">&lt;&lt; Main Menu</font></b></a>
  </td></tr>
  </table>
  
  <p>
  <center>
  <b>Please confirm the information below and then press continue...</b>
  </center>
  <p>
  <table width="60%" align="center" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFF88">
  <tr bgcolor="#FFFF88"><td align="center" colspan="2">
    <font size="4"><b>Order #$order.orderId</b></font>
    <br /><font size="3"><b>$fmt.formatDate($order.orderDate, 'yyyy/MM/dd hh:mm:ss')</b></font>
  </td></tr>
  <tr bgcolor="#FFFF88"><td colspan="2">
  <font color="GREEN" size="4"><b>Payment Details</b></font>
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  Card Type:</td><td>
  $order.cardType
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  Card Number:</td><td>$order.creditCard <font color="red" size="2">* Fake number!</font>
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  Expiry Date (MM/YYYY):</td><td>$order.expiryDate
  </td></tr>
  
  <tr bgcolor="#FFFF88"><td colspan="2">
  <font color="GREEN" size="4"><b>Billing Address</b></font>
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  First name:</td><td>$order.billToFirstName
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  Last name:</td><td>$order.billToLastName
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  Address 1:</td><td>$order.billAddress1
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  Address 2:</td><td>$order.billAddress2
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  City: </td><td>$order.billCity
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  State:</td><td>$order.billState
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  Zip:</td><td>$order.billZip
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  Country: </td><td>$order.billCountry
  </td></tr>
  <tr bgcolor="#FFFF88"><td colspan="2">
  <font color="GREEN" size="4"><b>Shipping Address</b></font>
  </td></tr><tr bgcolor="#FFFF88"><td>
  First name:</td><td>$order.shipToFirstName
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  Last name:</td><td>$order.shipToLastName
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  Address 1:</td><td>$order.shipAddress1
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  Address 2:</td><td>$order.shipAddress2
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  City: </td><td>$order.shipCity
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  State:</td><td>$order.shipState
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  Zip:</td><td>$order.shipZip
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  Country: </td><td>$order.shipCountry
  </td></tr>
  
  </table>
  <p>
  <center><a href="${continuation.id}.kont?confirmed=true"><img border="0" src="images/button_continue.gif" /></a></center>
  
  </p></p></p>
  #parse ("view/templates/IncludeBottom.vm")
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/templates/EditAccountForm.vm
  
  Index: EditAccountForm.vm
  ===================================================================
  #parse("view/templates/IncludeTop.vm")
  
  
  <form styleId="workingAccountForm" method="post" action="${continuation.id}.kont">
  <hidden name="workingAccountForm" property="validate" value="editAccount" />
  <hidden name="workingAccountForm" property="account.username" />
  
  <table cellpadding="10" cellspacing="0" align="center" border="1" bgcolor="#dddddd"><tr><td>
  
  
  <font color="darkgreen"><h3>User Information</h3></font>
  <table border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFF88">
  <tr bgcolor="#FFFF88"><td>
  User ID:</td><td><input name="workingAccountForm.account.username" value="$account.username"/>
  </td></tr><tr bgcolor="#FFFF88"><td>
  New password:</td><td><input type="password" name="workingAccountForm.account.password" />
  </td></tr><tr bgcolor="#FFFF88"><td>
  Repeat password:</td><td> <input type="password" name="workingAccountForm.repeatedPassword" />
  </td></tr>
  </table>
  
  #parse("view/templates/IncludeAccountFields.vm")
  
  </td></tr></table>
  
  <br /><center>
  <input border="0" type="image" src="images/button_submit.gif" name="submit" value="Save Account Information" />
  </center>
  
  </form>
  <p>
  <center><b><a href="listOrders.do">My Orders</a></b></center>
  </p>
  #parse("view/templates/IncludeBottom.vm")
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/templates/Error.vm
  
  Index: Error.vm
  ===================================================================
  #parse ("view/templates/IncludeTop.vm")
  
  <H3>Error!</H3>
  
  #if ($message)
    <B>$message</B>
  #else
    <B>No further information was provided.</B>
  #end
  
  #parse ("view/templates/IncludeBottom.vm")
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/templates/IncludeAccountFields.vm
  
  Index: IncludeAccountFields.vm
  ===================================================================
  <FONT color="darkgreen"><H3>Account Information</H3></FONT>
  
  <TABLE bgcolor="#008800" border="0" cellpadding="3" cellspacing="1" >
  <TR bgcolor="FFFF88"><TD>
  First name:</TD><TD><input type="text" value="$!account.firstName"/>
  </TD></TR>
  <TR bgcolor="FFFF88"><TD>
  Last name:</TD><TD><input type="text" value="$!account.lastName"/>
  </TD></TR>
  <TR bgcolor="FFFF88"><TD>
  Email:</TD><TD><input type="text" size="40" name="workingAccountForm.email" value="$!account.email" />
  </TD></TR>
  <TR bgcolor="FFFF88"><TD>
  Phone:</TD><TD><input type="text" name="workingAccountForm.phone" value="$!account.phone" />
  </TD></TR>
  <TR bgcolor="FFFF88"><TD>
  Address 1:</TD><TD><input type="text" size="40" name="workingAccountForm.address1" value="$!account.address1" />
  </TD></TR>
  <TR bgcolor="FFFF88"><TD>
  Address 2:</TD><TD><input type="text" size="40" name="workingAccountForm.address2" value="$!account.address2" />
  </TD></TR>
  <TR bgcolor="FFFF88"><TD>
  City: </TD><TD><input type="text" name="workingAccountForm.city" value="$!account.city"/>
  </TD></TR>
  <TR bgcolor="FFFF88"><TD>
  State:</TD><TD><input type="text" name="workingAccountForm.state" value="$!account.state"/>
  </TD></TR>
  <TR bgcolor="FFFF88"><TD>
  Zip:</TD><TD><input type="text" name="workingAccountForm.zip" value="$!account.zip"/>
  </TD></TR>
  <TR bgcolor="FFFF88"><TD>
  Country: </TD><TD><input type="text" size="15" name="workingAccountForm.country" value="$!account.country" />
  </TD></TR>
  </TABLE>
  
  
  <FONT color="darkgreen"><H3>Profile Information</H3></FONT>
  
  <TABLE bgcolor="#008800" border="0" cellpadding="3" cellspacing="1" >
  <TR bgcolor="FFFF88"><TD>
  Language Preference:</TD><TD>
  <select name="workingAccountForm.languagePreference">
    <option value="English">English</option>
    <option value="Japanese">Japanese</option>
  </select>
  </TD></TR><TR bgcolor="FFFF88"><TD>
  Favourite Category:</TD><TD>
  <select name="workingAccountForm.account.favouriteCategoryId">
  #foreach ($cat in $categoryList)
    <option value="$cat.name">$cat.name</option>
  #end
  </select>
  </TD></TR><TR bgcolor="FFFF88"><TD colspan="2">
  <input type="checkbox" name="workingAccountForm.account.listOption"/> Enable MyList
  </TD></TR><TR bgcolor="FFFF88"><TD colspan="2">
   <input type="checkbox" name="workingAccountForm.account.bannerOption"/> Enable MyBanner
  </TD></TR>
  </TABLE>
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/templates/IncludeBottom.vm
  
  Index: IncludeBottom.vm
  ===================================================================
  <br />
  #if ($accountForm.account)
    #if ($accountForm.account.username)
      #if ($accountForm.account.bannerOption) 
        <table align="center" background="images/bkg-topbar.gif" cellpadding="5" width="100%">
        <tr><td>
  #if ($accountForm.account.bannerName.length() > 0) 
        <center>
            $accountForm.account.bannerName
  	  </image>
        </center>
  #end
        </td></tr>
        </table>
      #end
    #end
  #end
  <p align="center">
  <a href="http://cocoon.apache.org"><img border="0" align="center" src="images/cocoon.gif" /></a>
  </p>
  </body>
  </html>
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/templates/IncludeMyList.vm
  
  Index: IncludeMyList.vm
  ===================================================================
  
  #if ($myList)
  <p> </p>
  <table align="right" bgcolor="#008800" border="0" cellspacing="2" cellpadding="3">
    <tr bgcolor="#CCCCCC"><td>
  <font size="4"><b>Pet Favorites</b></font>
  <font size="2"><i><br />Shop for more of your <br />favorite pets here.</i></font>
    </td></tr>
    <tr bgcolor="#FFFF88">
    <td>
  #foreach ($product in $myList) 
      <a href="viewProduct.do?productId=$product.productId">
          $product.name</a>
      <br />
      <font size="2">($product.productId")</font>
      <br />
  #end
    </td>
    </tr>
    <tr>
    <td>
  #if (!$accountForm.myListPage.firstPage)
      <a href="?page=previous"><font color="white"><B>&lt;&lt; Prev</B></font></a>
  #end
  #if (!$accountForm.myListPage.lastPage) {
      <a href="?page=next"><font color="white"><B>Next &gt;&gt;</B></font></a>
  #end
    </td>
    </tr>
  
  </table>
  #end
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/templates/IncludeQuickHeader.vm
  
  Index: IncludeQuickHeader.vm
  ===================================================================
  <center>
  <a href="viewCategory.do?categoryId=FISH">
  <img border="0" src="images/sm_fish.gif" /></a>
  <img border="0" src="images/separator.gif" />
  <a href="viewCategory.do?categoryId=DOGS">
  <img border="0" src="images/sm_dogs.gif" /></a>
  <img border="0" src="images/separator.gif" />
  <a href="viewCategory.do?categoryId=REPTILES">
  <img border="0" src="images/sm_reptiles.gif" /></a>
  <img border="0" src="images/separator.gif" />
  <a href="viewCategory.do?categoryId=CATS">
  <img border="0" src="images/sm_cats.gif" /></a>
  <img border="0" src="images/separator.gif" />
  <a href="viewCategory.do?categoryId=BIRDS">
  <img border="0" src="images/sm_birds.gif" /></a>
  </center>
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/templates/IncludeTop.vm
  
  Index: IncludeTop.vm
  ===================================================================
  <html><head>
  <meta content="text/html; charset=windows-1252" http-equiv="Content-Type" />
  <META HTTP-EQUIV="Cache-Control" CONTENT="max-age=0"/>
  <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache"/>
  <meta http-equiv="expires" content="0"/>
  <META HTTP-EQUIV="Expires" CONTENT="Tue, 01 Jan 1980 1:00:00 GMT"/>
  <META HTTP-EQUIV="Pragma" CONTENT="no-cache"/>
  </head>
  
  <body bgcolor="white">
  
  <table background="images/bkg-topbar.gif" border="0" cellspacing="0" cellpadding="5" width="100%">
    <tbody>
    <tr>
      <td>
        <form method="post" action="index.do">
          <input type="image" border="0" src="images/logo-topbar.gif" />
          <select name="view" width="14" align="left" value="Velocity" onChange="document.forms[0].submit()">
            <option value="Velocity">Velocity</option>
            <option value="JXPath">JXPath</option>
            <option value="Jexl">Jexl</option>
            <option value="Xsp">Xsp</option>
          </select>
        </form>
      </td>
      <td align="right"><a href="viewCart.do"><img border="0" name="img_cart" src="images/cart.gif" /></a>
        <img border="0" src="images/separator.gif" />
  
  #if ($accountForm.signOn) 
        <a href="signonForm.do">
        <img border="0" name="img_signin" src="images/sign-in.gif" /></a>
  #else
        <a href="signonForm.do?signoff=true">
        <img border="0" name="img_signout" src="images/sign-out.gif" /></a>
        <img border="0" src="images/separator.gif" />
        <a href="editAccount.form">
        <img border="0" name="img_myaccount" src="images/my_account.gif" /></a>
  #end
  
      <img border="0" src="images/separator.gif" /><a href="../help.html"><img border="0" name="img_help" src="images/help.gif" /></a>
      </td>
      <td align="left" valign="bottom">
        <form method="post" action="searchProducts.do">
          <input name="keyword" size="14" /> <input border="0" src="images/search.gif" type="image" />
        </form>
      </td>
    </tr>
    </tbody>
  </table>
  
  #parse( "view/templates/IncludeQuickHeader.vm" )
  
  <!-- Support for non-traditional but simpler use of errors... -->
  #if ($errors)
    #foreach ($error in $errors)
      <B><FONT color=RED>
        <BR>$error
      </FONT></B>
    #end
  #end
  
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/templates/index.vm
  
  Index: index.vm
  ===================================================================
  #parse ("view/templates/IncludeTop.vm")
  
  <table border="0" cellspacing="0" width="100%">
    <tbody>
    <tr>
      <td valign="top" width="100%">
  
        <table align="left" border="0" cellspacing="0" width="80%">
          <tbody>
          <tr>
            <td valign="top">
  
              <!-- SIDEBAR -->
  
              <table bgcolor="#FFFF88" border="0" cellspacing="0" cellpadding="5" width="200">
                <tbody>
        <tr>
        <td>
  #if (!$accountForm.signOn)
                <b><i><font size="2" color="BLACK">Welcome $accountForm.account.firstName!</font></i></b>
  #end
          
        </td>
        </tr>
  #foreach ($category in $categoryList)
                <tr>
                  <td>
                  <a href="viewCategory.do?categoryId=$category.catId">
  <i><h2>$category.name</h2></i></a>
                  </td>
                </tr>
  #end
                </tbody>
               </table>
  
             </td>
            <td align="center" bgcolor="white" height="300" width="100%">
  
            <!-- MAIN IMAGE -->
  
            <map name="estoremap"><area alt="Birds" coords="72,2,280,250" href="viewCategory.do?categoryId=BIRDS" shape="RECT" /><area alt="Fish" coords="2,180,72,250" href="viewCategory.do?categoryId=FISH" shape="RECT" /><area alt="Dogs" coords="60,250,130,320" href="viewCategory.do?categoryId=DOGS" shape="RECT" /><area alt="Reptiles" coords="140,270,210,340" href="viewCategory.do?categoryId=REPTILES" shape="RECT" /><area alt="Cats" coords="225,240,295,310" href="viewCategory.do?categoryId=CATS" shape="RECT" /><area alt="Birds" coords="280,180,350,250" href="viewCategory.do?categoryId=BIRDS" shape="RECT" /></map><img border="0" height="355" src="images/splash.gif" align="center" usemap="#estoremap" width="350" /> </td></tr></tbody></table></td></tr>
  
          </tbody>
          </table>
  
  #parse("view/templates/IncludeBottom.vm")
  
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/templates/Item.vm
  
  Index: Item.vm
  ===================================================================
  #parse("view/templates/IncludeTop.vm")
  
  <table align="left" bgcolor="#008800" border="0" cellspacing="2" cellpadding="2">
  <tr><td bgcolor="#FFFF88">
  <a href="viewProduct.do?productId=$product.productId"><b><font color="BLACK" size="2">&lt;&lt; $product.name</font></b></a>
  </td></tr>
  </table>
  
  <p>
  
  
  <table align="center" bgcolor="#008800" cellspacing="2" cellpadding="3" border="0" width="60%">
  <tr bgcolor="#FFFF88">
  <td bgcolor="#FFFFFF">
  $product.descn</image>
  </td>
  </tr>
  <tr bgcolor="#FFFF88">
  <td width="100%" bgcolor="#cccccc">
    <b>$item.itemId</b>
  </td>
  </tr><tr bgcolor="#FFFF88">
  <td>
    <b><font size="4">
  	$item.attr1
  	$!item.attr2
  	$!item.attr3
  	$!item.attr4
  	$!item.attr5
  	$!item.product.name
    </font></b>
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
    <font size="3"><i>$product.name</i></font>
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  #if ($quantity.intValue() <= 0)
      <font color="RED" size="2"><i>Back ordered.</i></font>
  #else
      <font size="2">$quantity.intValue() in stock.</font>
  #end
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
    $fmt.formatNumber($item.listPrice, '$#,##0.00')
  </td></tr>
  
  <tr bgcolor="#FFFF88"><td>
  <a href="addItemToCart.do?itemId=$item.itemId" >
    <img border="0" src="images/button_add_to_cart.gif" /></a>
  </td></tr>
  </table>
  
  </p>
  #parse ("view/templates/IncludeBottom.vm")
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/templates/NewAccountForm.vm
  
  Index: NewAccountForm.vm
  ===================================================================
  #parse("view/templates/IncludeTop.vm")
  <form action="${continuation.id}.kont" styleId="workingAccountForm" method="post" >
  <hidden name="workingAccountForm" property="validate" value="newAccount"/>
  
  
  <TABLE cellpadding="10" cellspacing="0" align="center" border="1" bgcolor="#dddddd"><TR><TD>
  
  
  <FONT color="darkgreen"><H3>User Information</H3></FONT>
  <TABLE  border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFF88">
  <TR bgcolor="#FFFF88"><TD>
  User ID:</TD><TD><input name="workingAccountForm.account.username" value="$!account.username"/>
  </TD></TR><TR bgcolor="#FFFF88"><TD>
  Password:</TD><TD><input type="password" name="workingAccountForm.account.password" />
  </TD></TR><TR bgcolor="#FFFF88"><TD>
  Repeat password:</TD><TD> <input type="password" name="workingAccountForm.repeatedPassword"/>
  </TD></TR>
  </TABLE>
  
  #parse("view/templates/IncludeAccountFields.vm");
  
  </TD></TR></TABLE>
  
  <BR /><CENTER>
  <input border="0" type="image" src="images/button_submit.gif" />
  </CENTER>
  
  </form>
  
  #parse("view/templates/IncludeBottom.vm")
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/templates/NewOrderForm.vm
  
  Index: NewOrderForm.vm
  ===================================================================
  #parse ("view/templates/IncludeTop.vm")
  
  
  <form action="${continuation.id}.kont" styleId="workingOrderForm" method="post" >
  
  <TABLE border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFF88">
  <TR bgcolor="#FFFF88"><TD colspan="2">
  <FONT color="GREEN" size="4"><B>Payment Details</B></FONT>
  </TD></TR><TR bgcolor="#FFFF88"><TD>
  Card Type:</TD><TD>
  <select name="order.cardType">
  #foreach ($cardType in $creditCardTypes)
    <option value="$cardType">$cardType</option>
  #end
  </select>
  </TD></TR>
  <TR bgcolor="#FFFF88"><TD>
  Card Number:</TD><TD><input type="text" name="creditCard"/> <font color="red" size="2">* Use a fake number!</font>
  </TD></TR>
  <TR bgcolor="FFFF88"><TD>
  Expiry Date (MM/YYYY):</TD><TD><input type="text" name="expiryDate" />
  </TD></TR>
  <TR bgcolor="FFFF88"><TD colspan="2">
  <FONT color="GREEN" size="4"><B>Billing Address</B></FONT>
  </TD></TR>
  
  <TR bgcolor="FFFF88"><TD>
  First name:</TD><TD><input type="text" name="billToFirstName" value="$order.billToFirstName"/>
  </TD></TR>
  <TR bgcolor="FFFF88"><TD>
  Last name:</TD><TD><input type="text" name="billToLastName" value="$order.billToLastName" />
  </TD></TR>
  <TR bgcolor="FFFF88"><TD>
  Address 1:</TD><TD><input type="text" size="40" name="billAddress1" value="$order.billAddress" />
  </TD></TR>
  <TR bgcolor="FFFF88"><TD>
  Address 2:</TD><TD><input type="text" size="40" name="billAddress2" value="$order.billAddress2"/>
  </TD></TR>
  <TR bgcolor="FFFF88"><TD>
  City: </TD><TD><input type="text" name="billCity" value="$order.billCity"/>
  </TD></TR>
  <TR bgcolor="FFFF88"><TD>
  State:</TD><TD><input type="text" size="4" name="billState" value="$order.billState"/>
  </TD></TR>
  <TR bgcolor="FFFF88"><TD>
  Zip:</TD><TD><input type="text" size="10" name="billZip" value="$order.billZip"/>
  </TD></TR>
  <TR bgcolor="FFFF88"><TD>
  Country: </TD><TD><input type="text" size="15" name="billCountry" value="$order.billCountry"/>
  </TD></TR>
  
  <TR bgcolor="FFFF88"><TD colspan="2">
  <input type="checkbox" name="shippingAddressRequired" /> Ship to different address...
  </TD></TR>
  
  </TABLE>
  <P><center>
    <input type="image" src="images/button_submit.gif"/>
  </center></P>
  </form>
  
  #parse ("view/templates/IncludeBottom.vm")
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/templates/Product.vm
  
  Index: Product.vm
  ===================================================================
  #parse("view/templates/IncludeTop.vm")
  
  
  <table align="left" bgcolor="#008800" border="0" cellspacing="2" cellpadding="2">
  <tr><td bgcolor="#FFFF88">
  <a href="viewCategory.do?categoryId=$product.category"> <b><font color="BLACK" size="2">&lt;&lt; $product.category</font></b></a>
  </td></tr>
  </table>
  
  <p>
  
  <center>
    <b><font size="4">$product.name</font></b>
  </center>
  
  <table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="3">
    <tr bgcolor="#CCCCCC">  <td><b>Item ID</b></td>  <td><b>Product ID</b></td>  <td><b>Description</b></td>  <td><b>List Price</b></td>  <td> </td>  </tr>
  #foreach ($item in $itemList)
    <tr bgcolor="#FFFF88">
    <td><b>
  
   <a href="viewItem.do?itemId=$item.itemId">
   $item.itemId</a></b></td>
    <td>$item.productId</td>
    <td>
       $item.attr1
       $!item.attr2
       $!item.attr3
       $!item.attr4
       $!item.attr5
       $product.name
     </td>
    <td>$fmt.formatNumber($item.listPrice, '$#,##0.00')</td>
    <td><a href="addItemToCart.do?itemId=$item.itemId">
    <img border="0" src="images/button_add_to_cart.gif" /></a></td>
    </tr>
  #end
    <tr><td>
  #if (!$firstPage)
      <a href="${continuation.id}.kont?page=previous"><font color="white"><B>&lt;&lt; Prev</B></font></a>
  #end
  #if (!$lastPage)
      <a href="${continuation.id}.kont?page=next"><font color="white"><B>Next &gt;&gt;</B></font></a>
  #end
    </td></tr>
  </table>
  </p>
  
  #parse("view/templates/IncludeBottom.vm")
  
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/templates/SearchProducts.vm
  
  Index: SearchProducts.vm
  ===================================================================
  #parse ("view/templates/IncludeTop.vm")
  
  
  <table align="left" bgcolor="#008800" border="0" cellspacing="2" cellpadding="2">
  <tr><td bgcolor="#FFFF88">
  <a href="index.do"><b><font color="BLACK" size="2">&lt;&lt; Main Menu</font></b></a>
  </td></tr>
  </table>
  
  <table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="3">
    <tr bgcolor="#CCCCCC">  <td> </td>  <td><b>Product ID</b></td>  <td><b>Name</b></td>  </tr>
  #foreach ($product in $searchResultsProductList)
    <tr bgcolor="#FFFF88">
    <td><a href="viewProduct.do?productId=$product.productId">
  $product.descn</image></a></td>
    <td><b><a href="viewProduct.do?productId=$product.productId"><font color="BLACK">$product.productId</font></a></b></td>
    <td>$product.name</td>
    </tr>
  #end
    <tr>
    <td>
  #if (!$firstPage)
      <a href="${continuation.id}.kont?page=previous"><font color="white"><B>&lt;&lt; Prev</B></font></a>
  #end
  #if (!$lastPage)
      <a href="${continuation.id}.kont?page=next"><font color="white"><B>Next &gt;&gt;</B></font></a>
  #end
    </td>
    </tr>
  
  </table>
  
  #parse ("view/templates/IncludeBottom.vm")
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/templates/ShippingForm.vm
  
  Index: ShippingForm.vm
  ===================================================================
  #parse ("view/templates/IncludeTop.vm")
  
  <form action="${continuation.id}.kont" styleId="workingOrderForm" method="post" >
  
  <TABLE align="center" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFF88">
  <TR bgcolor="#FFFF88"><TD colspan="2">
  <FONT color="GREEN" size="4"><B>Shipping Address</B></FONT>
  </TD></TR>
  
  
  
  <TR bgcolor="#FFFF88"><TD>
  First name:</TD><TD><input type="text" name="shipToFirstName" />
  </TD></TR>
  <TR bgcolor="#FFFF88"><TD>
  Last name:</TD><TD><input type="text" name="shipToLastName" />
  </TD></TR>
  <TR bgcolor="#FFFF88"><TD>
  Address 1:</TD><TD><input type="text" size="40" name="shipAddress1" />
  </TD></TR>
  <TR bgcolor="#FFFF88"><TD>
  Address 2:</TD><TD><input type="text" size="40" name="shipAddress2" />
  </TD></TR>
  <TR bgcolor="#FFFF88"><TD>
  City: </TD><TD><input type="text" name="shipCity" />
  </TD></TR>
  <TR bgcolor="#FFFF88"><TD>
  State:</TD><TD><input type="text" size="4" name="shipState" />
  </TD></TR>
  <TR bgcolor="#FFFF88"><TD>
  Zip:</TD><TD><input type="text" size="10" name="shipZip" />
  </TD></TR>
  <TR bgcolor="#FFFF88"><TD>
  Country: </TD><TD><input type="text" size="15" name="shipCountry" />
  </TD></TR>
  
  
  
  </TABLE>
  <P><center>
  <input type="image" src="images/button_submit.gif"/>
  </center></P>
  </form>
  
  #parse("view/templates/IncludeBottom.vm")
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/templates/SignonForm.vm
  
  Index: SignonForm.vm
  ===================================================================
  #parse ("view/templates/IncludeTop.vm")
  
  
    <b><font color="RED">$message </font></b>
  
  
  <form action="${continuation.id}.kont" method="POST">
  
  
  
  
  
  
  
  <table align="center" border="0">
  <tr>
  <td colspan="2">Please enter your username and password.
  <br /> </td>
  </tr>
  <tr>
  <td>Username:</td>
  <td><input type="text" name="username" value="j2ee" /></td>
  </tr>
  <tr>
  <td>Password:</td>
  <td><input type="password" name="password" value="j2ee" /></td>
  </tr>
  <tr>
  <td> </td>
  <td><input type="image" border="0" src="images/button_submit.gif" name="update" /></td>
  </tr>
  </table>
  </form>
  <center>
  <a href="newAccountForm.do">
  <img border="0" src="images/button_register_now.gif" />
  </a>
  </center>
  
  
  #parse("view/templates/IncludeBottom.vm")
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/templates/ViewOrder.vm
  
  Index: ViewOrder.vm
  ===================================================================
  #parse ("view/templates/IncludeTop.vm")
  
  <table align="left" bgcolor="#008800" border="0" cellspacing="2" cellpadding="2">
  <tr><td bgcolor="#FFFF88">
  <a href="index.do"><b><font color="BLACK" size="2">&lt;&lt; Main Menu</font></b></a>
  </td></tr>
  <tr><td bgcolor="#FFFF88">
  <a href="viewOrder.do?webservice=true&amp;orderId=$order.orderId">
   <font color="BLACK" size="2"><B>
     View with Web Service
   </B></font>
  </a>
  </td></tr>
  
  
  </table>
  #if ($message)
    <center><b>$message</b></center>
  #end
  
  <p>
  
  <table width="60%" align="center" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFF88">
  <tr bgcolor="#FFFF88"><td align="center" colspan="2">
    <font size="4"><b>Order #$order.orderId</b></font>
    <br /><font size="3"><b>$fmt.formatDate($order.orderDate, 'yyyy/MM/dd hh:mm:ss')</b></font>
  </td></tr>
  <tr bgcolor="#FFFF88"><td colspan="2">
  <font color="GREEN" size="4"><b>Payment Details</b></font>
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  Card Type:</td><td>
  $order.cardType
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  Card Number:</td><td>$order.creditCard<font color="red" size="2">* Fake number!</font>
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  Expiry Date (MM/YYYY):</td><td>$order.expiryDate
  </td></tr>
  <tr bgcolor="#FFFF88"><td colspan="2">
  <font color="GREEN" size="4"><b>Billing Address</b></font>
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  First name:</td><td>$order.billToFirstName
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  Last name:</td><td>$order.billToLastName
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  Address 1:</td><td>$order.billAddress1
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  Address 2:</td><td>$order.billAddress2
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  City: </td><td>$order.billCity
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  State:</td><td>$order.billState
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  Zip:</td><td>$order.billZip
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  Country: </td><td>$order.billCountry
  </td></tr>
  <tr bgcolor="#FFFF88"><td colspan="2">
  <font color="GREEN" size="4"><b>Shipping Address</b></font>
  </td></tr><tr bgcolor="#FFFF88"><td>
  First name:</td><td>$order.shipToFirstName
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  Last name:</td><td>$order.shipToLastName
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  Address 1:</td><td>$order.shipAddress1
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  Address 2:</td><td>$order.shipAddress2
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  City: </td><td>$order.shipCity
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  State:</td><td>$order.shipState
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  Zip:</td><td>$order.shipZip
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  Country: </td><td>$order.shipCountry
  </td></tr>
  <tr bgcolor="#FFFF88"><td>
  Courier: </td><td>$order.courier
  </td></tr>
  <tr bgcolor="#FFFF88"><td colspan="2">
    <b><font color="GREEN" size="4">Status:</font> $order.status</b>
  </td></tr>
  <tr bgcolor="#FFFF88"><td colspan="2">
  <table width="100%" align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="3">
    <tr bgcolor="#CCCCCC">
    <td><b>Item ID</b></td>
    <td><b>Description</b></td>
    <td><b>Quantity</b></td>
    <td><b>Price</b></td>
    </tr>
  #foreach ($cartItem in $itemList)
    <tr bgcolor="#FFFF88">
    <td><b><a href="viewItem.do?itemId=$cartItem.item.itemId"><font color="BLACK">$cartItem.item.itemId</font></a></b></td>
    <td>
     #if ($cartItem.item) 
  	$!cartItem.item.attr1
  	$!cartItem.item.attr2
  	$!cartItem.item.attr3
  	$!cartItem.item.attr4
  	$!cartItem.item.attr5
  	$!cartItem.item.product.name	
    #else
    <i>{description unavailable}</i>
    #end
    </td>
  
    <td>$cartItem.quantity.intValue()</td>
    <td align="right">$cartItem.item.listPrice</td>
    </tr>
  #end
    <tr bgcolor="#FFFF88">
    <td colspan="4" align="right"><b>Total: $fmt.formatNumber($order.totalPrice, '$#,##0.00')</b></td>
    </tr>
  </table>
  </td></tr>
  
  
  
  </table>
  
  </p>
  #parse ("view/templates/IncludeBottom.vm")
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jexl/Cart.xml
  
  Index: Cart.xml
  ===================================================================
  <html xmlns:t="http://apache.org/cocoon/templates/jx/1.0">
  <body>
  <t:import uri="view/jexl/IncludeTop.xml"/>
  <table border="0" width="100%" cellspacing="0" cellpadding="0">
  <tr><td valign="top" width="20%" align="left">
  <table align="left" bgcolor="#008800" border="0" cellspacing="2" cellpadding="2">
  <tr><td bgcolor="#FFFF88">
  <a href="index.do"><b><font color="BLACK" size="2">&lt;&lt; Main Menu</font></b></a>
  </td></tr>
  </table>
  </td><td valign="top" align="center">
  <h2 align="center">Shopping Cart</h2>
  <form action="updateCartQuantities.do" method="post" >
  <table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="5">
    <tr bgcolor="#cccccc">
    <td><b>Item ID</b></td>  <td><b>Product ID</b></td>  <td><b>Description</b></td>  <td><b>Quantity</b></td>  <td><b>List Price</b></td>  <td> </td>
    </tr>
  
  <t:if test="${cartForm.cart.numberOfItems.intValue() == 0}"> 
  <tr bgcolor="#FFFF88"><td colspan="6"><b>Your cart is empty.</b></td></tr>
  </t:if>
  <t:forEach var="cartItem" items="${cartItems}">
    <tr bgcolor="#FFFF88">
    <td><b>
   ${cartItem.item.itemId}
   <a href="viewItem.do?cartItem=${cartItem.item.itemId}">
  </a></b></td>
    <td>${cartItem.item.productId}</td>
    <td>
       ${cartItem.item.attr1}
       ${cartItem.item.attr2}
       ${cartItem.item.attr3}
       ${cartItem.item.attr4}
       ${cartItem.item.attr5}
       ${cartItem.item.product.name}
     </td>
    <td align="center">
    <input type="text" size="3" name="${cartItem.item.ItemId}" value="${cartItem.quantity}" />
    </td>
    <td align="right">${fmt.formatNumber(cartItem.item.listPrice, '$#,##0.00')}</td>
    <td><a href="removeItemFromCart.do?workingItemId=${cartItem.item.itemId}">
    <img border="0" src="images/button_remove.gif" /></a></td>
    </tr>
  </t:forEach>
  <tr bgcolor="#FFFF88">
  <td colspan="5" align="right">
  
  <b>Sub Total: ${fmt.formatNumber(cartForm.cart.subTotal, '$#,##0.00') }</b><br />
  <input type="image" border="0" src="images/button_update_cart.gif" name="update" />
  
  </td><td> </td>
  </tr>
  </table>
  </form>
  
  <t:if test="${cartForm.cart.numberOfItems.intValue() > 0}">
    <br /><center><a href="checkout.do"><img border="0" src="images/button_checkout.gif" /></a></center>
  </t:if>
  
  </td>
  
  
  <td valign="top" width="20%" align="right">
  <t:if test="${accountForm != null}">
   <t:if test="${accountForm.account != null}">
    <t:if test="${accountForm.account.username != null}">
      <t:if test="${accountForm.account.listOption != null}">
        <t:import uri="view/jexl/IncludeMyList.xml"/>
      </t:if>
    </t:if>
   </t:if>
  </t:if>
  </td>
  
  </tr>
  </table>
  <t:import uri="view/jexl/IncludeBottom.xml"/>
  </body>
  </html>
  
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jexl/Category.xml
  
  Index: Category.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <page xmlns:c="http://apache.org/cocoon/templates/jx/1.0">
      <site signOn="${accountForm.signOn}" view="jexl">
          <backpointer name="Main Menu" do="index.do" />
          <category name="${category.name}">
              <c:forEach var="prod" items="${productList}" >
                  <product name="${prod.name}" id="${prod.productId}"/>
              </c:forEach>
              <situation firstPage="${firstPage}" lastPage="${lastPage}" continuation="${continuation.id}"/>
          </category>
      </site>
  </page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jexl/Checkout.xml
  
  Index: Checkout.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <page xmlns:c="http://apache.org/cocoon/templates/jx/1.0">
      <site signOn="${accountForm.signOn}" view="c">
          <cart name="Checkout Summary">
              <backpointer name="Shopping Cart" do="viewCart.do" />
              <c:forEach var="cartItem" items="${cartItems}" >
                  <item product-id="${cartItem.item.productId}" id="${cartItem.item.itemId}">
                      <desc>
                          ${cartItem.item.attr1} 
                          ${cartItem.item.attr2} 
                          ${cartItem.item.attr3} 
                          ${cartItem.item.attr4} 
                          ${cartItem.item.attr5} 
                          ${cartItem.item.product.name} 
                      </desc>
                      <price>${cartItem.item.listPrice}</price>
                      <quantity>${cartItem.quantity}</quantity>
                  </item>
              </c:forEach>
              <total>${cartForm.cart.subTotal}</total>
              <nextpointer img="images/button_continue.gif" do="${continuation.id}.kont"/>
          </cart>
      </site>
  </page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jexl/ConfirmOrder.xml
  
  Index: ConfirmOrder.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <page xmlns:c="http://apache.org/cocoon/templates/jx/1.0">
      <site signOn="${accountForm.signOn}" view="jexl">
          <backpointer name="Main Menu" do="index.do" />
          <message>Please confirm the information below and then press continue...</message>
          <panel header="Order #${order.orderId}" subheader="${order.orderDate}">
              <panel label="Payment Details">
                  <field label="Card Type">${order.cardType}</field>
                  <field label="Card Number">${order.creditCard}</field>
                  <field label="Expiry Date (MM/YYYY)">${order.expiryDate}</field>
              </panel>
              <panel label="Billing Address">
                  <field label="First name">${order.billToFirstName}</field>
                  <field label="Last name" >${order.billToLastName}</field>
                  <field label="Address 1" >${order.billAddress1}</field>
                  <field label="Address 2" >${order.billAddress2}</field>
                  <field label="City" >${order.billCity}</field>
                  <field label="State" >${order.billState}</field>
                  <field label="Zip" >${order.billZip}</field>
                  <field label="Country" >${order.billCountry}</field>
              </panel>
              <panel label="Shipping Address">
                  <field label="First name">${order.shipToFirstName}</field>
                  <field label="Last name" >${order.shipToLastName}</field>
                  <field label="Address 1" >${order.shipAddress1}</field>
                  <field label="Address 2" >${order.shipAddress2}</field>
                  <field label="City" >${order.shipCity}</field>
                  <field label="State" >${order.shipState}</field>
                  <field label="Zip" >${order.shipZip}</field>
                  <field label="Country" >${order.shipCountry}</field>
              </panel>
          </panel>
          <nextpointer img="images/button_continue.gif" do="${continuation.id}.kont?confirmed=true"/>
      </site>
  
  </page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jexl/IncludeBottom.xml
  
  Index: IncludeBottom.xml
  ===================================================================
  <c:template xmlns:c="http://apache.org/cocoon/templates/jx/1.0">
  <br />
  <c:if test="${accountForm.account != null}">
    <c:if test="${accountForm.account.username != null}">
      <c:if test="${accountForm.account.bannerOption != null}">
        <table align="center" background="images/bkg-topbar.gif" cellpadding="5" width="100%">
        <tr><td>
  <c:if test="${accountForm.account.bannerName != null}"> 
        <center>
            <image>
            ${accountForm.account.bannerName}
  	  </image>
        </center>
  </c:if>
        </td></tr>
        </table>
      </c:if>
    </c:if>
  </c:if>
  <p align="center">
  <a href="http://cocoon.apache.org"><img border="0" align="center" src="images/cocoon.gif" /></a>
  </p>
  </c:template>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jexl/IncludeMyList.xml
  
  Index: IncludeMyList.xml
  ===================================================================
  <t:template xmlns:t="http://apache.org/cocoon/templates/jx/1.0">
  <t:if test="${myList != null}">
  <p> </p>
  <table align="right" bgcolor="#008800" border="0" cellspacing="2" cellpadding="3">
    <tr bgcolor="#CCCCCC"><td>
  <font size="4"><b>Pet Favorites</b></font>
  <font size="2"><i><br />Shop for more of your <br />favorite pets here.</i></font>
    </td></tr>
    <tr bgcolor="#FFFF88">
    <td>
  <t:forEach var="item" items="${myList}"> 
      <a href="viewProduct.do?productId=${item.product.productId}">
          ${item.product.name}</a>
      <br />
      <font size="2">${item.product.productId}</font>
      <br />
  </t:forEach>
    </td>
    </tr>
    <tr>
    <td>
  <t:if test="${!accountForm.myListPage.firstPage}}">
      <a href="?page=previous"><font color="white"><B>&lt;&lt; Prev</B></font></a>
  </t:if>
  <t:if test="${!accountForm.myListPage.lastPage}">
      <a href="?page=next"><font color="white"><B>Next &gt;&gt;</B></font></a>
  </t:if>
    </td>
    </tr>
  
  </table>
  </t:if>
  </t:template>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jexl/IncludeQuickHeader.xml
  
  Index: IncludeQuickHeader.xml
  ===================================================================
  <t:template xmlns:t="http://apache.org/cocoon/templates/jx/1.0">
  
  <center>
  <a href="viewCategory.do?categoryId=FISH">
  <img border="0" src="images/sm_fish.gif" /></a>
  <img border="0" src="images/separator.gif" />
  <a href="viewCategory.do?categoryId=DOGS">
  <img border="0" src="images/sm_dogs.gif" /></a>
  <img border="0" src="images/separator.gif" />
  <a href="viewCategory.do?categoryId=REPTILES">
  <img border="0" src="images/sm_reptiles.gif" /></a>
  <img border="0" src="images/separator.gif" />
  <a href="viewCategory.do?categoryId=CATS">
  <img border="0" src="images/sm_cats.gif" /></a>
  <img border="0" src="images/separator.gif" />
  <a href="viewCategory.do?categoryId=BIRDS">
  <img border="0" src="images/sm_birds.gif" /></a>
  </center>
  
  </t:template>
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jexl/IncludeTop.xml
  
  Index: IncludeTop.xml
  ===================================================================
  <t:template xmlns:t="http://apache.org/cocoon/templates/jx/1.0">
  
  <table background="images/bkg-topbar.gif" border="0" cellspacing="0" cellpadding="5" width="100%">
    <tbody>
    <tr>
      <td>
        <form method="post" action="index.do">
          <input type="image" border="0" src="images/logo-topbar.gif"/>
          <select name="view" width="14" align="left" value="Jexl" onChange="document.forms[0].submit()">
            <option value="Jexl">Jexl</option>
            <option value="Velocity">Velocity</option>
            <option value="JXPath">JXPath</option>
            <option value="Xsp">Xsp</option>
          </select>
        </form>
      </td>
      <td align="right"><a href="viewCart.do"><img border="0" name="img_cart" src="images/cart.gif" /></a>
        <img border="0" src="images/separator.gif" />
  
  <t:choose>
    <t:when test="${accountForm.signOn}"> 
        <a href="signonForm.do">
        <img border="0" name="img_signin" src="images/sign-in.gif" /></a>
    </t:when>
    <t:otherwise>
        <a href="signonForm.do?signoff=true">
        <img border="0" name="img_signout" src="images/sign-out.gif" /></a>
        <img border="0" src="images/separator.gif" />
        <a href="editAccount.form">
        <img border="0" name="img_myaccount" src="images/my_account.gif" /></a>
    </t:otherwise>
  </t:choose>
  
      <img border="0" src="images/separator.gif" /><a href="../help.html"><img border="0" name="img_help" src="images/help.gif" /></a>
      </td>
      <td align="left" valign="bottom">
        <form method="post" action="searchProducts.do">
          <input name="keyword" size="14" /> <input border="0" src="images/search.gif" type="image" />
        </form>
      </td>
    </tr>
    </tbody>
  </table>
  <t:import uri="view/jexl/IncludeQuickHeader.xml"/>
  
  <!-- Support for non-traditional but simpler use of errors... -->
  <t:if test="${errors != null}">
    <t:forEach select="${errors}">
      <B><FONT color="RED">
        <BR>{.}</BR>
      </FONT></B>
    </t:forEach>
  </t:if>
  </t:template>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jexl/index.xml
  
  Index: index.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <page xmlns:c="http://apache.org/cocoon/templates/jx/1.0">
      <site signOn="${accountForm.signOn}" view="jexl">
              <welcome>
                  <c:if test="${!accountForm.signOn}">
                      <firstName>${accountForm.account.firstName}</firstName>
                  </c:if>
                  <menu>
                     <c:forEach var="item" items="${categoryList}" >
                        <category name="${item.name}" id="${item.catId}"/>
                     </c:forEach>
                  </menu>
              </welcome>
      </site>
  </page>
  
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jexl/Item.xml
  
  Index: Item.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <page xmlns:c="http://apache.org/cocoon/templates/jx/1.0">
      <site signOn="${accountForm.signOn}" view="jexl">
          <backpointer name="${product.name}" do="viewProduct.do?productId=${product.productId}"/>
          <item id="${item.itemId}">
              <product-desc>${product.descn}</product-desc>
              <product-name>${product.name}</product-name>
              <desc>
                  ${item.attr1} 
                  ${item.attr2} 
                  ${item.attr3} 
                  ${item.attr4} 
                  ${item.attr5} 
                  ${item.product.name} 
              </desc>
              <instock>${quantity}</instock>
              <price>${item.listPrice}</price>
          </item>
      </site>
  </page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jexl/NewAccountForm.xml
  
  Index: NewAccountForm.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <page xmlns:c="http://apache.org/cocoon/templates/jx/1.0">
      <site signOn="${accountForm.signOn}" view="jexl">
          <form method="POST" styleId="workingAccountForm" action="${continuation.id}.kont">
  <!--
          <input type="hidden" name="validate" value="editAccount" />
          <input type="hidden"  name="account.username" /> -->
              <panel label="User Information">
                  <input name="workingAccountForm.account.username" label="User ID" />
                  <input type="password" name="workingAccountForm.account.password" label="New password" />
                  <input type="password" name="workingAccountForm.repeatedPassword" label="Repeat password" />
              </panel>
              
              <panel label="Account Information">
                  <input type="text" label="First name"/>
                  <input type="text" label="Last name" />
                  <input type="text" size="40" name="workingAccountForm.email" label="Email" />
                  <input type="text" name="workingAccountForm.phone" label="Phone" />
                  <input type="text" size="40" name="workingAccountForm.address1" label="Address 1" />
                  <input type="text" size="40" name="workingAccountForm.address2" label="Address 2" />
                  <input type="text" name="workingAccountForm.city" label="City" />
                  <input type="text" name="workingAccountForm.state" label="State" />
                  <input type="text" name="workingAccountForm.zip" label="Zip" />
                  <input type="text" size="15" name="workingAccountForm.country" label="Country" />
              </panel>
              
              <panel label="Profile Information">
                  <select name="workingAccountForm.languagePreference" label="Language Preference">
                      <option value="English">English</option>
                      <option value="Japanese">Japanese</option>
                  </select>
                  <select name="workingAccountForm.account.favouriteCategoryId" label="Favourite Category">
                      <c:forEach var="item" items="${categoryList}" >
                          <option value="${item.name}">${item.name}</option>
                      </c:forEach>
                  </select>
                  <input type="checkbox" name="workingAccountForm.account.listOption" label="Enable MyList"/> 
                  <input type="checkbox" name="workingAccountForm.account.bannerOption" label="Enable MyBanner"/>
              </panel>
              
          </form>
      </site>
  
  </page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jexl/NewOrderForm.xml
  
  Index: NewOrderForm.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <page xmlns:c="http://apache.org/cocoon/templates/jx/1.0">
      <site signOn="${accountForm.signOn}" view="jexl">
          <form method="POST" styleId="workingOrderForm" action="${continuation.id}.kont">
          <panel>
              <panel label="Payment Details">
                  <select name="order.cardType" label="Card Type">
                      <c:forEach var="card" items="${creditCardTypes}" >
                          <option value="${card}">${card}</option>
                      </c:forEach>
                  </select>
                  <input type="text" name="creditCard" label="Card Number" />
                  <input type="text" name="expiryDate" label="Expiry Date (MM/YYYY)" />
              </panel>
              <panel label="Billing Address">
                  <input type="text" name="billToFirstName" label="First name" value="${order.billToFirstName}"/>
                  <input type="text" name="billToLastName" label="Last name" value="${order.billToLastName}"/>
                  <input type="text" size="40" name="billAddress1"  label="Address 1" value="${order.billAddress}"/>
                  <input type="text" size="40" name="billAddress2" label="Address 2" value="${order.billAddress2}"/>
                  <input type="text" name="billCity" label="City" value="${order.billCity}"/>
                  <input type="text" name="billState" label="State" value="${order.billState}"/>
                  <input type="text" name="billZip" label="Zip" value="${order.billZip}"/>
                  <input type="text" size="15" name="billCountry" label="Country" value="${order.billCountry}"/>
                  <input type="checkbox" name="shippingAddressRequired" label="Ship to different address..."/>
              </panel>
          </panel>
          </form>
      </site>
  
  </page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jexl/Product.xml
  
  Index: Product.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <page xmlns:c="http://apache.org/cocoon/templates/jx/1.0">
      <site signOn="${accountForm.signOn}" view="jexl">
          <backpointer name="${product.category}" do="viewCategory.do?categoryId=${product.category}"/>
          <product name="${product.name}">
              <c:forEach var="item" items="${itemList}" >
                  <item productId="${item.productId}" id="${item.itemId}">
                      <desc>
                          ${item.attr1}
                          ${item.attr2}
                          ${item.attr3}
                          ${item.attr4}
                          ${item.attr5}
                      </desc>
                      <price>${item.listPrice}</price>
                  </item>
              </c:forEach>
              <situation firstPage="${firstPage}" lastPage="${lastPage}" continuation="${continuation.id}"/>
          </product>
      </site>
  
  </page>
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jexl/SearchProducts.xml
  
  Index: SearchProducts.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <page xmlns:c="http://apache.org/cocoon/templates/jx/1.0">
      <site signOn="${accountForm.signOn}" view="jexl">
          <backpointer name="Main Menu" do="index.do" />
          <search>
              <c:forEach var="item" items="${searchResultsProductList}" >
                  <product name="${item.name}" id="${item.productId}">
                      <product-desc>${descn}</product-desc>
                  </product>
              </c:forEach>
              <situation firstPage="${firstPage}" lastPage="${lastPage}" continuation="${continuation.id}"/>
          </search>
      </site>
  </page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jexl/ShippingForm.xml
  
  Index: ShippingForm.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <page xmlns:c="http://apache.org/cocoon/templates/jx/1.0">
      <site signOn="${accountForm.signOn}" view="jexl">
          <backpointer name="Main Menu" do="index.do" />
          <form method="POST" styleId="workingOrderForm" action="${continuation.id}.kont">
          <panel>
              <panel label="Shipping Address">
                  <input type="text" name="shipToFirstName" label="First name" />
                  <input type="text" name="shipToLastName" label="Last name" />
                  <input type="text" name="shipAddress1" size="40" label="Address 1" />
                  <input type="text" name="shipAddress2" size="40" label="Address 2" />
                  <input type="text" name="shipCity" label="City" />
                  <input type="text" name="shipState" label="State" />
                  <input type="text" name="shipZip" label="Zip" />
                  <input type="text" name="shipCountry" size="15" label="Country" />
              </panel>
          </panel>
          </form>
      </site>
  </page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jexl/SignonForm.xml
  
  Index: SignonForm.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <page xmlns:c="http://apache.org/cocoon/templates/jx/1.0">
      <site signOn="${accountForm.signOn}" view="jexl">
          <form method="POST" label="signon" action="${continuation.id}.kont">
              <message type="warning">${message}</message>
              <input type="text" name="username" value="j2ee" label="Username" />
              <input type="password" name="password" value="j2ee" label="Password" />
              <input type="image" src="images/button_submit.gif" name="update" />
          </form>
          <register/>
      </site>
  </page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jexl/ViewOrder.xml
  
  Index: ViewOrder.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <page xmlns:c="http://apache.org/cocoon/templates/jx/1.0">
      <site signOn="${accountForm.signOn}" view="jexl">
          <backpointer name="Main Menu" do="index.do" />
          <message></message>
          <panel header="Order #${order.orderId}" subheader="${order.orderDate}">
              <panel label="Payment Details">
                  <field label="Card Type">${order.cardType}</field>
                  <field label="Card Number">${order.creditCard}</field>
                  <field label="Expiry Date (MM/YYYY)">${order.expiryDate}</field>
              </panel>
              <panel label="Billing Address">
                  <field label="First name">${order.billToFirstName}</field>
                  <field label="Last name" >${order.billToLastName}</field>
                  <field label="Address 1" >${order.billAddress1}</field>
                  <field label="Address 2" >${order.billAddress2}</field>
                  <field label="City" >${order.billCity}</field>
                  <field label="State" >${order.billState}</field>
                  <field label="Zip" >${order.billZip}</field>
                  <field label="Country" >${order.billCountry}</field>
              </panel>
              <panel label="Shipping Address">
                  <field label="First name">${order.shipToFirstName}</field>
                  <field label="Last name" >${order.shipToLastName}</field>
                  <field label="Address 1" >${order.shipAddress1}</field>
                  <field label="Address 2" >${order.shipAddress2}</field>
                  <field label="City" >${order.shipCity}</field>
                  <field label="State" >${order.shipState}</field>
                  <field label="Zip" >${order.shipZip}</field>
                  <field label="Country" >${order.shipCountry}</field>
                  <field label="Courier" >${order.courier}</field>
              </panel>
              <panel label="Status">
                  <field empty="2">
                      <cart name="Status">
                          <c:forEach var ="cartItem" items="${itemList}" >
                              <item product-id="${cartItem.item.productId}" id="${cartItem.item.itemId}">
                                  <desc>
                                      ${cartItem.item.attr1} 
                                      ${cartItem.item.attr2} 
                                      ${cartItem.item.attr3} 
                                      ${cartItem.item.attr4} 
                                      ${cartItem.item.attr5} 
                                      ${cartItem.item.product.name} 
                                  </desc>
                                  <price>${cartItem.listPrice}</price>
                                  <quantity>${cartItem.quantity}</quantity>
                              </item>
                          </c:forEach>
                          <total>${order.totalPrice}</total>
                      </cart>
                  </field>
              </panel>
              
              
          </panel>
      </site>
  
  </page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jxpath/Cart.xml
  
  Index: Cart.xml
  ===================================================================
  <html xmlns:t="http://apache.org/cocoon/templates/jx/1.0">
  <body>
  <t:import uri="view/jxpath/IncludeTop.xml"/>
  <table border="0" width="100%" cellspacing="0" cellpadding="0">
  <tr><td valign="top" width="20%" align="left">
  <table align="left" bgcolor="#008800" border="0" cellspacing="2" cellpadding="2">
  <tr><td bgcolor="#FFFF88">
  <a href="index.do"><b><font color="BLACK" size="2">&lt;&lt; Main Menu</font></b></a>
  </td></tr>
  </table>
  </td><td valign="top" align="center">
  <h2 align="center">Shopping Cart</h2>
  <form action="updateCartQuantities.do" method="post" >
  <table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="5">
    <tr bgcolor="#cccccc">
    <td><b>Item ID</b></td>  <td><b>Product ID</b></td>  <td><b>Description</b></td>  <td><b>Quantity</b></td>  <td><b>List Price</b></td>  <td> </td>
    </tr>
  
  <t:if test="#{number(cartForm/cart/numberOfItems) = 0}"> 
  <tr bgcolor="#FFFF88"><td colspan="6"><b>Your cart is empty.</b></td></tr>
  </t:if>
  <t:forEach select="#{cartItems}">
    <tr bgcolor="#FFFF88">
    <td><b>
   #{item/itemId}
   <a href="viewItem.do?cartItem=#{item/itemId}">
  </a></b></td>
    <td>#{item/productId}</td>
    <td>
       #{item/attr1}
       #{item/attr2}
       #{item/attr3}
       #{item/attr4}
       #{item/attr5}
       #{item/product/name}
     </td>
    <td align="center">
    <input type="text" size="3" name="#{item/itemId}" value="#{quantity}" />
    </td>
    <td align="right">#{format-number(item/listPrice, '$#,##0.00')}</td>
    <td><a href="removeItemFromCart.do?workingItemId=#{item/itemId}">
    <img border="0" src="images/button_remove.gif" /></a></td>
    </tr>
  </t:forEach>
  <tr bgcolor="#FFFF88">
  <td colspan="5" align="right">
  
  <b>Sub Total: #{format-number(cartForm/cart/subTotal, '$#,##0.00')}</b><br />
  <input type="image" border="0" src="images/button_update_cart.gif" name="update" />
  
  </td><td> </td>
  </tr>
  </table>
  </form>
  
  <t:if test="#{number(cartForm/cart/numberOfItems) > 0}">
     <br /><center><a href="checkout.do"><img border="0" src="images/button_checkout.gif" /></a></center>
  </t:if>
  
  </td>
  
  
  <td valign="top" width="20%" align="right">
  <t:if test="#{accountForm}">
   <t:if test="#{accountForm/account}">
    <t:if test="#{accountForm/account/username}">
      <t:if test="#{accountForm/account/listOption}">
        <t:import uri="view/jxpath/IncludeMyList.xml"/>
      </t:if>
    </t:if>
   </t:if>
  </t:if>
  </td>
  
  </tr>
  </table>
  <t:import uri="view/jxpath/IncludeBottom.xml"/>
  </body>
  </html>
  
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jxpath/Category.xml
  
  Index: Category.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <page xmlns:c="http://apache.org/cocoon/templates/jx/1.0">
      <site signOn="#{accountForm/signOn}" view="jxpath">
          <backpointer name="Main Menu" do="index.do" />
          <category name="#{category/name}">
              <c:forEach select="#{productList}" >
                  <product name="#{name}" id="#{productId}"/>
              </c:forEach>
              <situation firstPage="#{firstPage}" lastPage="#{lastPage}" continuation="#{$continuation/id}"/>
          </category>
      </site>
  </page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jxpath/Checkout.xml
  
  Index: Checkout.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <page xmlns:c="http://apache.org/cocoon/templates/jx/1.0">
      <site signOn="#{accountForm/signOn}" view="jxpath">
          <cart name="Checkout Summary">
              <backpointer name="Shopping Cart" do="viewCart.do" />
              <c:forEach select="#{cartItems}" >
                  <item product-id="#{item/productId}" id="#{item/itemId}">
                      <desc>
                          <c:out value="#{item/attr1}"/> 
                          <c:out value="#{item/attr2}"/> 
                          <c:out value="#{item/attr3}"/> 
                          <c:out value="#{item/attr4}"/> 
                          <c:out value="#{item/attr5}"/> 
                          <c:out value="#{item/product/name}"/> 
                      </desc>
                      <price><c:out value="#{item/listPrice}"/></price>
                      <quantity><c:out value="#{quantity}"/></quantity>
                  </item>
              </c:forEach>
              <total><c:out value="#{cartForm/cart/subTotal}"/></total>
              <nextpointer img="images/button_continue.gif" do="#{$continuation/id}.kont"/>
          </cart>
      </site>
  </page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jxpath/ConfirmOrder.xml
  
  Index: ConfirmOrder.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <page xmlns:c="http://apache.org/cocoon/templates/jx/1.0">
      <site signOn="#{accountForm/signOn}" view="jxpath">
          <backpointer name="Main Menu" do="index.do" />
          <message>Please confirm the information below and then press continue...</message>
          <panel header="Order ##{order/orderId}" subheader="#{order/orderDate}">
              <panel label="Payment Details">
                  <field label="Card Type">#{order/cardType}</field>
                  <field label="Card Number">#{order/creditCard}</field>
                  <field label="Expiry Date (MM/YYYY)">#{order/expiryDate}</field>
              </panel>
              <panel label="Billing Address">
                  <field label="First name">#{order/billToFirstName}</field>
                  <field label="Last name" >#{order/billToLastName}</field>
                  <field label="Address 1" >#{order/billAddress1}</field>
                  <field label="Address 2" >#{order/billAddress2}</field>
                  <field label="City" >#{order/billCity}</field>
                  <field label="State" >#{order/billState}</field>
                  <field label="Zip" >#{order/billZip}</field>
                  <field label="Country" >#{order/billCountry}</field>
              </panel>
              <panel label="Shipping Address">
                  <field label="First name">#{order/shipToFirstName}</field>
                  <field label="Last name" >#{order/shipToLastName}</field>
                  <field label="Address 1" >#{order/shipAddress1}</field>
                  <field label="Address 2" >#{order/shipAddress2}</field>
                  <field label="City" >#{order/shipCity}</field>
                  <field label="State" >#{order/shipState}</field>
                  <field label="Zip" >#{order/shipZip}</field>
                  <field label="Country" >#{order/shipCountry}</field>
              </panel>
          </panel>
          <nextpointer img="images/button_continue.gif" do="#{$continuation/id}.kont?confirmed=true"/>
      </site>
  
  </page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jxpath/IncludeBottom.xml
  
  Index: IncludeBottom.xml
  ===================================================================
  <c:template xmlns:c="http://apache.org/cocoon/templates/jx/1.0">
  <br />
  <c:if test="#{accountForm/account}">
    <c:if test="#{accountForm/account/username}">
      <c:if test="#{accountForm/account/bannerOption}">
        <table align="center" background="images/bkg-topbar.gif" cellpadding="5" width="100%">
        <tr><td>
  <c:if test="#{accountForm/account/bannerName}"> 
        <center>
            <image>
            #{accountForm/account/bannerName}
  	  </image>
        </center>
  </c:if>
        </td></tr>
        </table>
      </c:if>
    </c:if>
  </c:if>
  <p align="center">
  <a href="http://cocoon.apache.org"><img border="0" align="center" src="images/cocoon.gif" /></a>
  </p>
  </c:template>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jxpath/IncludeMyList.xml
  
  Index: IncludeMyList.xml
  ===================================================================
  <t:template xmlns:t="http://apache.org/cocoon/templates/jx/1.0">
  <t:if test="#{myList}">
  <p> </p>
  <table align="right" bgcolor="#008800" border="0" cellspacing="2" cellpadding="3">
    <tr bgcolor="#CCCCCC"><td>
  <font size="4"><b>Pet Favorites</b></font>
  <font size="2"><i><br />Shop for more of your <br />favorite pets here.</i></font>
    </td></tr>
    <tr bgcolor="#FFFF88">
    <td>
  <t:forEach select="#{myList}"> 
      <a href="viewProduct.do?productId=#{product/productId}">
          #{product/name}</a>
      <br />
      <font size="2">#{product/productId}</font>
      <br />
  </t:forEach>
    </td>
    </tr>
    <tr>
    <td>
  <t:if test="#{not(accountForm/myListPage/firstPage)}">
      <a href="?page=previous"><font color="white"><B>&lt;&lt; Prev</B></font></a>
  </t:if>
  <t:if test="#{not(accountForm/myListPage/lastPage)}">
      <a href="?page=next"><font color="white"><B>Next &gt;&gt;</B></font></a>
  </t:if>
    </td>
    </tr>
  
  </table>
  </t:if>
  </t:template>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jxpath/IncludeQuickHeader.xml
  
  Index: IncludeQuickHeader.xml
  ===================================================================
  <t:template xmlns:t="http://apache.org/cocoon/templates/jx/1.0">
  
  <center>
  <a href="viewCategory.do?categoryId=FISH">
  <img border="0" src="images/sm_fish.gif" /></a>
  <img border="0" src="images/separator.gif" />
  <a href="viewCategory.do?categoryId=DOGS">
  <img border="0" src="images/sm_dogs.gif" /></a>
  <img border="0" src="images/separator.gif" />
  <a href="viewCategory.do?categoryId=REPTILES">
  <img border="0" src="images/sm_reptiles.gif" /></a>
  <img border="0" src="images/separator.gif" />
  <a href="viewCategory.do?categoryId=CATS">
  <img border="0" src="images/sm_cats.gif" /></a>
  <img border="0" src="images/separator.gif" />
  <a href="viewCategory.do?categoryId=BIRDS">
  <img border="0" src="images/sm_birds.gif" /></a>
  </center>
  
  </t:template>
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jxpath/IncludeTop.xml
  
  Index: IncludeTop.xml
  ===================================================================
  <t:template xmlns:t="http://apache.org/cocoon/templates/jx/1.0">
  
  <table background="images/bkg-topbar.gif" border="0" cellspacing="0" cellpadding="5" width="100%">
    <tbody>
    <tr>
      <td>
        <form method="post" action="index.do">
          <input type="image" border="0" src="images/logo-topbar.gif"/>
          <select name="view" width="14" align="left" value="JXPath" onChange="document.forms[0].submit()">
            <option value="JXPath">JXPath</option>
            <option value="Velocity">Velocity</option>
            <option value="Jexl">Jexl</option>
            <option value="Xsp">Xsp</option>
          </select>
        </form>
      </td>
      <td align="right"><a href="viewCart.do"><img border="0" name="img_cart" src="images/cart.gif" /></a>
        <img border="0" src="images/separator.gif" />
  
  <t:choose>
    <t:when test="#{accountForm/signOn}"> 
        <a href="signonForm.do">
        <img border="0" name="img_signin" src="images/sign-in.gif" /></a>
    </t:when>
    <t:otherwise>
        <a href="signonForm.do?signoff=true">
        <img border="0" name="img_signout" src="images/sign-out.gif" /></a>
        <img border="0" src="images/separator.gif" />
        <a href="editAccount.form">
        <img border="0" name="img_myaccount" src="images/my_account.gif" /></a>
    </t:otherwise>
  </t:choose>
  
      <img border="0" src="images/separator.gif" /><a href="../help.html"><img border="0" name="img_help" src="images/help.gif" /></a>
      </td>
      <td align="left" valign="bottom">
        <form method="post" action="searchProducts.do">
          <input name="keyword" size="14" /> <input border="0" src="images/search.gif" type="image" />
        </form>
      </td>
    </tr>
    </tbody>
  </table>
  <t:import uri="view/jxpath/IncludeQuickHeader.xml"/>
  
  <!-- Support for non-traditional but simpler use of errors... -->
  <t:if test="#{errors}">
    <t:forEach select="#{errors}">
      <B><FONT color="RED">
        <BR>#{.}</BR>
      </FONT></B>
    </t:forEach>
  </t:if>
  </t:template>
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jxpath/index.xml
  
  Index: index.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <page xmlns:c="http://apache.org/cocoon/templates/jx/1.0">
      <site signOn="#{accountForm/signOn}" view="jxpath">
              <welcome>
                  <c:if test="#{not(accountForm/signOn)}">
                      <firstName>#{accountForm/account/firstName}</firstName>
                  </c:if>
                  <menu>
                      <c:forEach select="#{categoryList}" >
                          <category name="#{name}" id="#{catId}"/>
                      </c:forEach>
                  </menu>
              </welcome>
      </site>
  </page>
  
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jxpath/Item.xml
  
  Index: Item.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <page xmlns:c="http://apache.org/cocoon/templates/jx/1.0">
      <site signOn="#{accountForm/signOn}" view="jxpath">
          <backpointer name="#{product/name}" do="viewProduct.do?productId=#{product/productId}"/>
          <item id="#{item/itemId}">
              <product-desc>#{product/descn}</product-desc>
              <product-name>#{product/name}</product-name>
              <desc>
                  #{item/attr1}
                  #{item/attr2}
                  #{item/attr3}
                  #{item/attr4}
                  #{item/attr5}
                  #{item/product/name}
              </desc>
              <instock>#{quantity}</instock>
              <price>#{item/listPrice}</price>
          </item>
  
      </site>
  
  </page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jxpath/NewAccountForm.xml
  
  Index: NewAccountForm.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <page xmlns:c="http://apache.org/cocoon/templates/jx/1.0">
      <site signOn="#{accountForm/signOn}" view="jxpath">
          <form method="POST" styleId="workingAccountForm" action="#{$continuation/id}.kont">
  <!--
          <input type="hidden" name="validate" value="editAccount" />
          <input type="hidden"  name="account.username" /> -->
              <panel label="User Information">
                  <input name="workingAccountForm.account.username" label="User ID" />
                  <input type="password" name="workingAccountForm.account.password" label="New password" />
                  <input type="password" name="workingAccountForm.repeatedPassword" label="Repeat password" />
              </panel>
              
              <panel label="Account Information">
                  <input type="text" label="First name"/>
                  <input type="text" label="Last name" />
                  <input type="text" size="40" name="workingAccountForm.email" label="Email" />
                  <input type="text" name="workingAccountForm.phone" label="Phone" />
                  <input type="text" size="40" name="workingAccountForm.address1" label="Address 1" />
                  <input type="text" size="40" name="workingAccountForm.address2" label="Address 2" />
                  <input type="text" name="workingAccountForm.city" label="City" />
                  <input type="text" name="workingAccountForm.state" label="State" />
                  <input type="text" name="workingAccountForm.zip" label="Zip" />
                  <input type="text" size="15" name="workingAccountForm.country" label="Country" />
              </panel>
              
              <panel label="Profile Information">
                  <select name="workingAccountForm.languagePreference" label="Language Preference">
                      <option value="English">English</option>
                      <option value="Japanese">Japanese</option>
                  </select>
                  <select name="workingAccountForm.account.favouriteCategoryId" label="Favourite Category">
                      <c:forEach select="#{categoryList}" >
                          <option value="#{name}">#{name}</option>
                      </c:forEach>
                  </select>
                  <input type="checkbox" name="workingAccountForm.account.listOption" label="Enable MyList"/> 
                  <input type="checkbox" name="workingAccountForm.account.bannerOption" label="Enable MyBanner"/>
              </panel>
              
          </form>
      </site>
  
  </page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jxpath/NewOrderForm.xml
  
  Index: NewOrderForm.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <page xmlns:c="http://apache.org/cocoon/templates/jx/1.0">
      <site signOn="#{accountForm/signOn}" view="jxpath">
          <form method="POST" styleId="workingOrderForm" action="#{$continuation/id}.kont">
          <panel>
              <panel label="Payment Details">
                  <select name="order.cardType" label="Card Type">
                      <c:forEach select="#{creditCardTypes}" >
                          <option value="#{.}">#{.}</option>
                      </c:forEach>
                  </select>
                  <input type="text" name="creditCard" label="Card Number" />
                  <input type="text" name="expiryDate" label="Expiry Date (MM/YYYY)" />
              </panel>
              <panel label="Billing Address">
                  <input type="text" name="billToFirstName" label="First name" value="#{order/billToFirstName}"/>
                  <input type="text" name="billToLastName" label="Last name" value="#{order/billToLastName}"/>
                  <input type="text" size="40" name="billAddress1"  label="Address 1" value="#{order/billAddress}"/>
                  <input type="text" size="40" name="billAddress2" label="Address 2" value="#{order/billAddress2}"/>
                  <input type="text" name="billCity" label="City" value="#{order/billCity}"/>
                  <input type="text" name="billState" label="State" value="#{order/billState}"/>
                  <input type="text" name="billZip" label="Zip" value="#{order/billZip}"/>
                  <input type="text" size="15" name="billCountry" label="Country" value="#{order/billCountry}"/>
                  <input type="checkbox" name="shippingAddressRequired" label="Ship to different address..."/>
              </panel>
          </panel>
          </form>
      </site>
  
  </page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jxpath/Product.xml
  
  Index: Product.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <page xmlns:c="http://apache.org/cocoon/templates/jx/1.0">
      <site signOn="#{accountForm/signOn}" view="jxpath">
          <backpointer name="#{product/category}" do="viewCategory.do?categoryId=#{product/category}"/>
          <product name="#{product/name}">
              <c:forEach select="#{itemList}" >
                  <item productId="#{productId}" id="#{itemId}">
                      <desc>
                          #{attr1}
                          #{attr2}
                          #{attr3}
                          #{attr4}
                          #{attr5}
                      </desc>
                      <price>#{listPrice}</price>
                  </item>
              </c:forEach>
              <situation firstPage="#{firstPage}" lastPage="#{lastPage}" continuation="#{$continuation/id}"/>
          </product>
      </site>
  
  </page>
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jxpath/SearchProducts.xml
  
  Index: SearchProducts.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <page xmlns:c="http://apache.org/cocoon/templates/jx/1.0">
      <site signOn="#{accountForm/signOn}" view="jxpath">
          <backpointer name="Main Menu" do="index.do" />
          <search>
              <c:forEach select="#{searchResultsProductList}" >
                  <product name="#{name}" id="#{productId}">
                      <product-desc>#{descn}</product-desc>
                  </product>
              </c:forEach>
              <situation firstPage="#{firstPage}" lastPage="#{lastPage}" continuation="#{$continuation/id}"/>
          </search>
      </site>
  </page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jxpath/ShippingForm.xml
  
  Index: ShippingForm.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <page xmlns:c="http://apache.org/cocoon/templates/jx/1.0">
      <site signOn="#{accountForm/signOn}" view="jxpath">
          <backpointer name="Main Menu" do="index.do" />
          <form method="POST" styleId="workingOrderForm" action="#{$continuation/id}.kont">
          <panel>
              <panel label="Shipping Address">
                  <input type="text" name="shipToFirstName" label="First name" />
                  <input type="text" name="shipToLastName" label="Last name" />
                  <input type="text" name="shipAddress1" size="40" label="Address 1" />
                  <input type="text" name="shipAddress2" size="40" label="Address 2" />
                  <input type="text" name="shipCity" label="City" />
                  <input type="text" name="shipState" label="State" />
                  <input type="text" name="shipZip" label="Zip" />
                  <input type="text" name="shipCountry" size="15" label="Country" />
              </panel>
          </panel>
          </form>
      </site>
  </page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jxpath/SignonForm.xml
  
  Index: SignonForm.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <page xmlns:c="http://apache.org/cocoon/templates/jx/1.0">
      <site signOn="#{accountForm/signOn}" view="jxpath">
          <form method="POST" label="signon" action="#{$continuation/id}.kont">
              <message type="warning">#{//message}</message>
              <input type="text" name="username" value="j2ee" label="Username" />
              <input type="password" name="password" value="j2ee" label="Password" />
              <input type="image" src="images/button_submit.gif" name="update" />
          </form>
          <register/>
      </site>
  </page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jxpath/ViewOrder.xml
  
  Index: ViewOrder.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <page xmlns:c="http://apache.org/cocoon/templates/jx/1.0">
      <site signOn="#{accountForm/signOn}" view="jxpath">
          <backpointer name="Main Menu" do="index.do" />
          <message></message>
          <panel header="Order ##{order/orderId}" subheader="#{order/orderDate}">
              <panel label="Payment Details">
                  <field label="Card Type">#{order/cardType}</field>
                  <field label="Card Number">#{order/creditCard}</field>
                  <field label="Expiry Date (MM/YYYY)">#{order/expiryDate}</field>
              </panel>
              <panel label="Billing Address">
                  <field label="First name">#{order/billToFirstName}</field>
                  <field label="Last name" >#{order/billToLastName}</field>
                  <field label="Address 1" >#{order/billAddress1}</field>
                  <field label="Address 2" >#{order/billAddress2}</field>
                  <field label="City" >#{order/billCity}</field>
                  <field label="State" >#{order/billState}</field>
                  <field label="Zip" >#{order/billZip}</field>
                  <field label="Country" >#{order/billCountry}</field>
              </panel>
              <panel label="Shipping Address">
                  <field label="First name">#{order/shipToFirstName}</field>
                  <field label="Last name" >#{order/shipToLastName}</field>
                  <field label="Address 1" >#{order/shipAddress1}</field>
                  <field label="Address 2" >#{order/shipAddress2}</field>
                  <field label="City" >#{order/shipCity}</field>
                  <field label="State" >#{order/shipState}</field>
                  <field label="Zip" >#{order/shipZip}</field>
                  <field label="Country" >#{order/shipCountry}</field>
                  <field label="Courier" >#{order/courier}</field>
              </panel>
              <panel label="Status">
                  <field empty="2">
                      <cart name="Status">
                          <c:forEach select="#{itemList}" >
                              <item product-id="#{item/productId}" id="#{item/itemId}">
                                  <desc>
                                      #{item/attr1} 
                                      #{item/attr2} 
                                      #{item/attr3} 
                                      #{item/attr4} 
                                      #{item/attr5} 
                                      #{item/product/name} 
                                  </desc>
                                  <price>#{item/listPrice}</price>
                                  <quantity>#{quantity}</quantity>
                              </item>
                          </c:forEach>
                          <total>#{order/totalPrice}</total>
                      </cart>
                  </field>
              </panel>
              
              
          </panel>
      </site>
  
  </page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/xsp/Cart.xsp
  
  Index: Cart.xsp
  ===================================================================
  <?xml version="1.0"?>
  
  <xsp:page
    language="java"
    xmlns:xsp="http://apache.org/xsp"
    xmlns:jpath="http://apache.org/xsp/jpath/1.0"
    >
  
      <site>
          <xsp:attribute name="signOn"><jpath:value-of select="accountForm/signOn"/></xsp:attribute>
          <cart name="Shopping Cart" >
              <backpointer name="Main Menu" do="index.do" />
              <jpath:for-each select="cartItems" >
                  <item>
                      <xsp:attribute name="product-id"><jpath:value-of select="item/productId"/></xsp:attribute>
                      <xsp:attribute name="id"><jpath:value-of select="item/itemId"/></xsp:attribute>
                      <desc>
                          <jpath:value-of select="item/attr1"/> 
                          <jpath:value-of select="item/attr2"/> 
                          <jpath:value-of select="item/attr3"/> 
                          <jpath:value-of select="item/attr4"/> 
                          <jpath:value-of select="item/attr5"/> 
                          <jpath:value-of select="item/product/name"/> 
                      </desc>
                      <price><jpath:value-of select="item/listPrice"/></price>
                      <quantity><jpath:value-of select="quantity"/></quantity>
                  </item>
              </jpath:for-each>
              <total><jpath:value-of select="cartForm/cart/subTotal"/></total>
              <nextpointer do="checkout.do" img="images/button_checkout.gif" />
          </cart>
      </site>
  
  </xsp:page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/xsp/Category.xsp
  
  Index: Category.xsp
  ===================================================================
  <?xml version="1.0"?>
  
  <xsp:page
    language="java"
    xmlns:xsp="http://apache.org/xsp"
    xmlns:jpath="http://apache.org/xsp/jpath/1.0"
    >
  
      <site>
          <xsp:attribute name="signOn"><jpath:value-of select="accountForm/signOn"/></xsp:attribute>
          <backpointer name="Main Menu" do="index.do" />
          <category>
              <xsp:attribute name="name"><jpath:value-of select="category/name"/></xsp:attribute>
              <jpath:for-each select="productList" >
                  <product>
                      <xsp:attribute name="name"><jpath:value-of select="name"/></xsp:attribute>
                      <xsp:attribute name="id"><jpath:value-of select="productId"/></xsp:attribute>
                  </product>
              </jpath:for-each>
              <situation>
                  <xsp:attribute name="firstPage"><jpath:value-of select="firstPage"/></xsp:attribute>
                  <xsp:attribute name="lastPage"><jpath:value-of select="lastPage"/></xsp:attribute>
                  <xsp:attribute name="continuation"><jpath:continuation/></xsp:attribute>
              </situation>
          </category>
      </site>
  
  </xsp:page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/xsp/Checkout.xsp
  
  Index: Checkout.xsp
  ===================================================================
  <?xml version="1.0"?>
  
  <xsp:page
    language="java"
    xmlns:xsp="http://apache.org/xsp"
    xmlns:jpath="http://apache.org/xsp/jpath/1.0"
    >
  
      <site>
          <xsp:attribute name="signOn"><jpath:value-of select="accountForm/signOn"/></xsp:attribute>
          <cart name="Checkout Summary">
              <backpointer name="Shopping Cart" do="viewCart.do" />
              <jpath:for-each select="cartItems" >
                  <item>
                      <xsp:attribute name="product-id"><jpath:value-of select="item/productId"/></xsp:attribute>
                      <xsp:attribute name="id"><jpath:value-of select="item/itemId"/></xsp:attribute>
                      <desc>
                          <jpath:value-of select="item/attr1"/> 
                          <jpath:value-of select="item/attr2"/> 
                          <jpath:value-of select="item/attr3"/> 
                          <jpath:value-of select="item/attr4"/> 
                          <jpath:value-of select="item/attr5"/> 
                          <jpath:value-of select="item/product/name"/> 
                      </desc>
                      <price><jpath:value-of select="item/listPrice"/></price>
                      <quantity><jpath:value-of select="quantity"/></quantity>
                  </item>
              </jpath:for-each>
              <total><jpath:value-of select="cartForm/cart/subTotal"/></total>
              <nextpointer img="images/button_continue.gif">
                  <xsp:attribute name="do"><jpath:continuation/>.kont</xsp:attribute>
              </nextpointer>
          </cart>
      </site>
  
  </xsp:page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/xsp/ConfirmOrder.xsp
  
  Index: ConfirmOrder.xsp
  ===================================================================
  <?xml version="1.0"?>
  
  <xsp:page
    language="java"
    xmlns:xsp="http://apache.org/xsp"
    xmlns:jpath="http://apache.org/xsp/jpath/1.0"
    >
  
      <site>
      <!--    <xsp:attribute name="signOn"><jpath:value-of select="accountForm/signOn"/></xsp:attribute> -->
          <backpointer name="Main Menu" do="index.do" />
          <message>Please confirm the information below and then press continue...</message>
          <panel>
              <xsp:attribute name="header">Order #<jpath:value-of select="order/orderId" /></xsp:attribute>
              <xsp:attribute name="subheader"><jpath:value-of select="order/orderDate" /></xsp:attribute>
              
              <panel label="Payment Details">
                  <field label="Card Type"><jpath:value-of select="order/cardType" /></field>
                  <field label="Card Number"><jpath:value-of select="order/creditCard" /></field>
                  <field label="Expiry Date (MM/YYYY)"><jpath:value-of select="order/expiryDate" /></field>
              </panel>
              <panel label="Billing Address">
                  <field label="First name"><jpath:value-of select="order/billToFirstName"/></field>
                  <field label="Last name" ><jpath:value-of select="order/billToLastName"/></field>
                  <field label="Address 1" ><jpath:value-of select="order/billAddress1"/></field>
                  <field label="Address 2" ><jpath:value-of select="order/billAddress2"/></field>
                  <field label="City" ><jpath:value-of select="order/billCity"/></field>
                  <field label="State" ><jpath:value-of select="order/billState"/></field>
                  <field label="Zip" ><jpath:value-of select="order/billZip"/></field>
                  <field label="Country" ><jpath:value-of select="order/billCountry"/></field>
              </panel>
              <panel label="Shipping Address">
                  <field label="First name"><jpath:value-of select="order/shipToFirstName"/></field>
                  <field label="Last name" ><jpath:value-of select="order/shipToLastName"/></field>
                  <field label="Address 1" ><jpath:value-of select="order/shipAddress1"/></field>
                  <field label="Address 2" ><jpath:value-of select="order/shipAddress2"/></field>
                  <field label="City" ><jpath:value-of select="order/shipCity"/></field>
                  <field label="State" ><jpath:value-of select="order/shipState"/></field>
                  <field label="Zip" ><jpath:value-of select="order/shipZip"/></field>
                  <field label="Country" ><jpath:value-of select="order/shipCountry"/></field>
              </panel>
          </panel>
          <nextpointer img="images/button_continue.gif">
              <xsp:attribute name="do"><jpath:continuation/>.kont?confirmed=true</xsp:attribute>
          </nextpointer>
      </site>
  
  </xsp:page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/xsp/EditAccountForm.xsp
  
  Index: EditAccountForm.xsp
  ===================================================================
  <?xml version="1.0"?>
  
  <xsp:page
    language="java"
    xmlns:xsp="http://apache.org/xsp"
    xmlns:jpath="http://apache.org/xsp/jpath/1.0"
    >
  
      <site>
          <xsp:attribute name="signOn"><jpath:value-of select="accountForm/signOn"/></xsp:attribute>
          <form method="POST" styleId="workingAccountForm">
              <xsp:attribute name="action"><jpath:continuation/>.kont</xsp:attribute>
  <!--
          <input type="hidden" name="validate" value="editAccount" />
          <input type="hidden"  name="account.username" /> -->
  
              <panel label="User Information">
                  <input name="workingAccountForm.account.username" label="User ID" >
                      <xsp:attribute name="value"><jpath:value-of select="account/username" /></xsp:attribute>
                  </input>
                  <input type="password" name="workingAccountForm.account.password" label="New password" />
                  <input type="password" name="workingAccountForm.repeatedPassword" label="Repeat password" />
              </panel>
              
              <panel label="Account Information">
                  <input type="text" label="First name">
                      <xsp:attribute name="value"><jpath:value-of select="account/firstName"/></xsp:attribute>
                  </input>
                  <input type="text" label="Last name" >
                      <xsp:attribute name="value"><jpath:value-of select="account/lastName"/></xsp:attribute>
                  </input>
                  <input type="text" size="40" name="workingAccountForm.email" label="Email" >
                      <xsp:attribute name="value"><jpath:value-of select="account/email"/></xsp:attribute>
                  </input>
                  <input type="text" name="workingAccountForm.phone" label="Phone" >
                      <xsp:attribute name="value"><jpath:value-of select="account/phone"/></xsp:attribute>
                  </input>
                  <input type="text" size="40" name="workingAccountForm.address1" label="Address 1" >
                      <xsp:attribute name="value"><jpath:value-of select="account/address1"/></xsp:attribute>
                  </input>
                  <input type="text" size="40" name="workingAccountForm.address2" label="Address 2" >
                      <xsp:attribute name="value"><jpath:value-of select="account/address2"/></xsp:attribute>
                  </input>
                  <input type="text" name="workingAccountForm.city" label="City" >
                      <xsp:attribute name="value"><jpath:value-of select="account/city"/></xsp:attribute>
                  </input>
                  <input type="text" name="workingAccountForm.state" label="State" >
                      <xsp:attribute name="value"><jpath:value-of select="account/state"/></xsp:attribute>
                  </input>
                  <input type="text" name="workingAccountForm.zip" label="Zip" >
                      <xsp:attribute name="value"><jpath:value-of select="account/zip"/></xsp:attribute>
                  </input>
                  <input type="text" size="15" name="workingAccountForm.country" label="Country" >
                      <xsp:attribute name="value"><jpath:value-of select="account/country"/></xsp:attribute>
                  </input>
              </panel>
              
              <panel label="Profile Information">
                  <select name="workingAccountForm.languagePreference" label="Language Preference">
                      <option value="English">English</option>
                      <option value="Japanese">Japanese</option>
                  </select>
                  <select name="workingAccountForm.account.favouriteCategoryId" label="Favourite Category">
                      <jpath:for-each select="categoryList" >
                          <option><xsp:attribute name="value"><jpath:value-of select="name" /></xsp:attribute><jpath:value-of select="name" /></option>
                      </jpath:for-each>
                  </select>
                  <input type="checkbox" name="workingAccountForm.account.listOption" label="Enable MyList"/> 
                  <input type="checkbox" name="workingAccountForm.account.bannerOption" label="Enable MyBanner"/>
              </panel>
              
          </form>
      </site>
  
  </xsp:page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/xsp/index.xsp
  
  Index: index.xsp
  ===================================================================
  <?xml version="1.0"?>
  
  <xsp:page
    language="java"
    xmlns:xsp="http://apache.org/xsp"
    xmlns:jpath="http://apache.org/xsp/jpath/1.0"
    >
  
      <site>
          <xsp:attribute name="signOn"><jpath:value-of select="accountForm/signOn"/></xsp:attribute>
              <welcome>
  <!-- doesn't work
                  <jpath:if test="accountForm/signOn = 'false'">
                      <firstName><jpath:value-of select="accountForm/account/firstName"/></firstName>
                  </jpath:if>
  -->         
                  <menu>
                      <jpath:for-each select="categoryList" >
                          <category>
                              <xsp:attribute name="name"><jpath:value-of select="name"/></xsp:attribute>
                              <xsp:attribute name="id"><jpath:value-of select="catId"/></xsp:attribute>
                          </category>
                      </jpath:for-each>
                  </menu>
              </welcome>
      </site>
  
  </xsp:page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/xsp/Item.xsp
  
  Index: Item.xsp
  ===================================================================
  <?xml version="1.0"?>
  
  <xsp:page
    language="java"
    xmlns:xsp="http://apache.org/xsp"
    xmlns:jpath="http://apache.org/xsp/jpath/1.0"
    >
      <site>
          <xsp:attribute name="signOn"><jpath:value-of select="accountForm/signOn"/></xsp:attribute>
          <backpointer>
              <xsp:attribute name="name"><jpath:value-of select="product/name"/></xsp:attribute>
              <xsp:attribute name="do">viewProduct.do?productId=<jpath:value-of select="product/productId"/></xsp:attribute>
          </backpointer>
          <item>
              <xsp:attribute name="id"><jpath:value-of select="item/itemId"/></xsp:attribute>
              <product-desc><jpath:value-of select="product/descn"/></product-desc>
              <product-name><jpath:value-of select="product/name"/></product-name>
              <desc>
                  <jpath:value-of select="item/attr1"/> 
                  <jpath:value-of select="item/attr2"/> 
                  <jpath:value-of select="item/attr3"/> 
                  <jpath:value-of select="item/attr4"/> 
                  <jpath:value-of select="item/attr5"/> 
                  <jpath:value-of select="item/product/name"/> 
              </desc>
              <instock><jpath:value-of select="quantity"/></instock>
              <price><jpath:value-of select="item/listPrice"/></price>
          </item>
  
      </site>
  
  </xsp:page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/xsp/NewAccountForm.xsp
  
  Index: NewAccountForm.xsp
  ===================================================================
  <?xml version="1.0"?>
  
  <xsp:page
    language="java"
    xmlns:xsp="http://apache.org/xsp"
    xmlns:jpath="http://apache.org/xsp/jpath/1.0"
    >
  
      <site>
          <xsp:attribute name="signOn"><jpath:value-of select="accountForm/signOn"/></xsp:attribute>
          <form method="POST" styleId="workingAccountForm">
              <xsp:attribute name="action"><jpath:continuation/>.kont</xsp:attribute>
  <!--
          <input type="hidden" name="validate" value="editAccount" />
          <input type="hidden"  name="account.username" /> -->
              <panel label="User Information">
                  <input name="workingAccountForm.account.username" label="User ID" />
                  <input type="password" name="workingAccountForm.account.password" label="New password" />
                  <input type="password" name="workingAccountForm.repeatedPassword" label="Repeat password" />
              </panel>
              
              <panel label="Account Information">
                  <input type="text" label="First name"/>
                  <input type="text" label="Last name" />
                  <input type="text" size="40" name="workingAccountForm.email" label="Email" />
                  <input type="text" name="workingAccountForm.phone" label="Phone" />
                  <input type="text" size="40" name="workingAccountForm.address1" label="Address 1" />
                  <input type="text" size="40" name="workingAccountForm.address2" label="Address 2" />
                  <input type="text" name="workingAccountForm.city" label="City" />
                  <input type="text" name="workingAccountForm.state" label="State" />
                  <input type="text" name="workingAccountForm.zip" label="Zip" />
                  <input type="text" size="15" name="workingAccountForm.country" label="Country" />
              </panel>
              
              <panel label="Profile Information">
                  <select name="workingAccountForm.languagePreference" label="Language Preference">
                      <option value="English">English</option>
                      <option value="Japanese">Japanese</option>
                  </select>
                  <select name="workingAccountForm.account.favouriteCategoryId" label="Favourite Category">
                      <jpath:for-each select="categoryList" >
                          <option><xsp:attribute name="value"><jpath:value-of select="name" /></xsp:attribute><jpath:value-of select="name" /></option>
                      </jpath:for-each>
                  </select>
                  <input type="checkbox" name="workingAccountForm.account.listOption" label="Enable MyList"/> 
                  <input type="checkbox" name="workingAccountForm.account.bannerOption" label="Enable MyBanner"/>
              </panel>
              
          </form>
      </site>
  
  </xsp:page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/xsp/NewOrderForm.xsp
  
  Index: NewOrderForm.xsp
  ===================================================================
  <?xml version="1.0"?>
  
  <xsp:page
    language="java"
    xmlns:xsp="http://apache.org/xsp"
    xmlns:jpath="http://apache.org/xsp/jpath/1.0"
    >
  
      <site>
      <!--    <xsp:attribute name="signOn"><jpath:value-of select="accountForm/signOn"/></xsp:attribute> -->
          <form method="POST" styleId="workingOrderForm">
              <xsp:attribute name="action"><jpath:continuation/>.kont</xsp:attribute>
          <panel>
              <panel label="Payment Details">
                  <select name="order.cardType" label="Card Type">
                      <jpath:for-each select="creditCardTypes" >
                          <option><xsp:attribute name="value"><jpath:value-of select="." /></xsp:attribute><jpath:value-of select="." /></option>
                      </jpath:for-each>
                  </select>
                  <input type="text" name="creditCard" label="Card Number" />
                  <input type="text" name="expiryDate" label="Expiry Date (MM/YYYY)" />
              </panel>
              <panel label="Billing Address">
                  <input type="text" name="billToFirstName" label="First name">
                      <xsp:attribute name="value"><jpath:value-of select="order/billToFirstName"/></xsp:attribute>
                  </input>
                  <input type="text" name="billToLastName" label="Last name" >
                      <xsp:attribute name="value"><jpath:value-of select="order/billToLastName"/></xsp:attribute>
                  </input>
                  <input type="text" size="40" name="billAddress1"  label="Address 1" >
                      <xsp:attribute name="value"><jpath:value-of select="order/billAddress"/></xsp:attribute>
                  </input>
                  <input type="text" size="40" name="billAddress2" label="Address 2" >
                      <xsp:attribute name="value"><jpath:value-of select="order/billAddress2"/></xsp:attribute>
                  </input>
                  <input type="text" name="billCity" label="City" >
                      <xsp:attribute name="value"><jpath:value-of select="order/billCity"/></xsp:attribute>
                  </input>
                  <input type="text" name="billState" label="State" >
                      <xsp:attribute name="value"><jpath:value-of select="order/billState"/></xsp:attribute>
                  </input>
                  <input type="text" name="billZip" label="Zip" >
                      <xsp:attribute name="value"><jpath:value-of select="order/billZip"/></xsp:attribute>
                  </input>
                  <input type="text" size="15" name="billCountry" label="Country" >
                      <xsp:attribute name="value"><jpath:value-of select="order/billCountry"/></xsp:attribute>
                  </input>
                  <input type="checkbox" name="shippingAddressRequired" label="Ship to different address..."/>
              </panel>
          </panel>
          </form>
      </site>
  
  </xsp:page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/xsp/Product.xsp
  
  Index: Product.xsp
  ===================================================================
  <?xml version="1.0"?>
  
  <xsp:page
    language="java"
    xmlns:xsp="http://apache.org/xsp"
    xmlns:jpath="http://apache.org/xsp/jpath/1.0"
    >
  
      <site>
          <xsp:attribute name="signOn"><jpath:value-of select="accountForm/signOn"/></xsp:attribute>
          <backpointer>
              <xsp:attribute name="name"><jpath:value-of select="product/category"/></xsp:attribute>
              <xsp:attribute name="do">viewCategory.do?categoryId=<jpath:value-of select="product/category"/></xsp:attribute>
          </backpointer>
          <product>
              <xsp:attribute name="name"><jpath:value-of select="product/name"/></xsp:attribute>
              <jpath:for-each select="itemList" >
                  <item>
                      <xsp:attribute name="product-id"><jpath:value-of select="productId"/></xsp:attribute>
                      <xsp:attribute name="id"><jpath:value-of select="itemId"/></xsp:attribute>
                      <desc>
                          <jpath:value-of select="attr1"/> 
                          <jpath:value-of select="attr2"/> 
                          <jpath:value-of select="attr3"/> 
                          <jpath:value-of select="attr4"/> 
                          <jpath:value-of select="attr5"/> 
                      </desc>
                      <price><jpath:value-of select="listPrice"/></price>
                  </item>
              </jpath:for-each>
              <situation>
                  <xsp:attribute name="firstPage"><jpath:value-of select="firstPage"/></xsp:attribute>
                  <xsp:attribute name="lastPage"><jpath:value-of select="lastPage"/></xsp:attribute>
                  <xsp:attribute name="continuation"><jpath:continuation/></xsp:attribute>
              </situation>
          </product>
      </site>
  
  </xsp:page>
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/xsp/SearchProducts.xsp
  
  Index: SearchProducts.xsp
  ===================================================================
  <?xml version="1.0"?>
  
  <xsp:page
    language="java"
    xmlns:xsp="http://apache.org/xsp"
    xmlns:jpath="http://apache.org/xsp/jpath/1.0"
    >
  
      <site>
          <xsp:attribute name="signOn"><!--<jpath:value-of select="accountForm/signOn"/>-->true</xsp:attribute>
          <backpointer name="Main Menu" do="index.do" />
          <search>
              <jpath:for-each select="searchResultsProductList" >
                  <product>
                      <xsp:attribute name="name"><jpath:value-of select="name"/></xsp:attribute>
                      <xsp:attribute name="id"><jpath:value-of select="productId"/></xsp:attribute>
                      <product-desc><jpath:value-of select="descn"/></product-desc>
                  </product>
              </jpath:for-each>
              <situation>
                  <xsp:attribute name="firstPage"><jpath:value-of select="firstPage"/></xsp:attribute>
                  <xsp:attribute name="lastPage"><jpath:value-of select="lastPage"/></xsp:attribute>
                  <xsp:attribute name="continuation"><jpath:continuation/></xsp:attribute>
              </situation>
          </search>
      </site>
  
  </xsp:page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/xsp/ShippingForm.xsp
  
  Index: ShippingForm.xsp
  ===================================================================
  <?xml version="1.0"?>
  
  <xsp:page
    language="java"
    xmlns:xsp="http://apache.org/xsp"
    xmlns:jpath="http://apache.org/xsp/jpath/1.0"
    >
  
      <site>
      <!--    <xsp:attribute name="signOn"><jpath:value-of select="accountForm/signOn"/></xsp:attribute> -->
          <form method="POST" styleId="workingOrderForm">
              <xsp:attribute name="action"><jpath:continuation/>.kont</xsp:attribute>
          <panel>
              <panel label="Shipping Address">
                  <input type="text" name="shipToFirstName" label="First name" />
                  <input type="text" name="shipToLastName" label="Last name" />
                  <input type="text" name="shipAddress1" size="40" label="Address 1" />
                  <input type="text" name="shipAddress2" size="40" label="Address 2" />
                  <input type="text" name="shipCity" label="City" />
                  <input type="text" name="shipState" label="State" />
                  <input type="text" name="shipZip" label="Zip" />
                  <input type="text" name="shipCountry" size="15" label="Country" />
              </panel>
          </panel>
          </form>
      </site>
  
  </xsp:page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/xsp/SignonForm.xsp
  
  Index: SignonForm.xsp
  ===================================================================
  <?xml version="1.0"?>
  
  <xsp:page
    language="java"
    xmlns:xsp="http://apache.org/xsp"
    xmlns:jpath="http://apache.org/xsp/jpath/1.0"
    >
  
      <site>
          <xsp:attribute name="signOn"><jpath:value-of select="accountForm/signOn"/></xsp:attribute>
          <form method="POST" label="signon">
              <xsp:attribute name="action"><jpath:continuation/>.kont</xsp:attribute>
              <message type="warning"><jpath:value-of select="//message"/></message>
              <input type="text" name="username" value="j2ee" label="Username" />
              <input type="password" name="password" value="j2ee" label="Password" />
              <input type="image" src="images/button_submit.gif" name="update" />
          </form>
          <register/>
      </site>
  
  </xsp:page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/xsp/ViewOrder.xsp
  
  Index: ViewOrder.xsp
  ===================================================================
  <?xml version="1.0"?>
  
  <xsp:page
    language="java"
    xmlns:xsp="http://apache.org/xsp"
    xmlns:jpath="http://apache.org/xsp/jpath/1.0"
    >
  
      <site>
      <!--    <xsp:attribute name="signOn"><jpath:value-of select="accountForm/signOn"/></xsp:attribute> -->
          <backpointer name="Main Menu" do="index.do" />
          <message></message>
          <panel>
              <xsp:attribute name="header">Order #<jpath:value-of select="order/orderId" /></xsp:attribute>
              <xsp:attribute name="subheader"><jpath:value-of select="order/orderDate" /></xsp:attribute>
              
              <panel label="Payment Details">
                  <field label="Card Type"><jpath:value-of select="order/cardType" /></field>
                  <field label="Card Number"><jpath:value-of select="order/creditCard" /></field>
                  <field label="Expiry Date (MM/YYYY)"><jpath:value-of select="order/expiryDate" /></field>
              </panel>
              <panel label="Billing Address">
                  <field label="First name"><jpath:value-of select="order/billToFirstName"/></field>
                  <field label="Last name" ><jpath:value-of select="order/billToLastName"/></field>
                  <field label="Address 1" ><jpath:value-of select="order/billAddress1"/></field>
                  <field label="Address 2" ><jpath:value-of select="order/billAddress2"/></field>
                  <field label="City" ><jpath:value-of select="order/billCity"/></field>
                  <field label="State" ><jpath:value-of select="order/billState"/></field>
                  <field label="Zip" ><jpath:value-of select="order/billZip"/></field>
                  <field label="Country" ><jpath:value-of select="order/billCountry"/></field>
              </panel>
              <panel label="Shipping Address">
                  <field label="First name"><jpath:value-of select="order/shipToFirstName"/></field>
                  <field label="Last name" ><jpath:value-of select="order/shipToLastName"/></field>
                  <field label="Address 1" ><jpath:value-of select="order/shipAddress1"/></field>
                  <field label="Address 2" ><jpath:value-of select="order/shipAddress2"/></field>
                  <field label="City" ><jpath:value-of select="order/shipCity"/></field>
                  <field label="State" ><jpath:value-of select="order/shipState"/></field>
                  <field label="Zip" ><jpath:value-of select="order/shipZip"/></field>
                  <field label="Country" ><jpath:value-of select="order/shipCountry"/></field>
                  <field label="Courier" ><jpath:value-of select="order/courier"/></field>
              </panel>
              <panel label="Status">
                  <field empty="2">
                      <cart name="Status">
                          <jpath:for-each select="itemList" >
                              <item>
                                  <xsp:attribute name="product-id"><jpath:value-of select="item/productId"/></xsp:attribute>
                                  <xsp:attribute name="id"><jpath:value-of select="item/itemId"/></xsp:attribute>
                                  <desc>
                                      <jpath:value-of select="item/attr1"/> 
                                      <jpath:value-of select="item/attr2"/> 
                                      <jpath:value-of select="item/attr3"/> 
                                      <jpath:value-of select="item/attr4"/> 
                                      <jpath:value-of select="item/attr5"/> 
                                      <jpath:value-of select="item/product/name"/> 
                                  </desc>
                                  <price><jpath:value-of select="item/listPrice"/></price>
                                  <quantity><jpath:value-of select="quantity"/></quantity>
                              </item>
                          </jpath:for-each>
                          <total><jpath:value-of select="order/totalPrice"/></total>
                      </cart>
                  </field>
              </panel>
              
              
          </panel>
      </site>
  
  </xsp:page>
  
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jxforms/EditAccountInformation.xml
  
  Index: EditAccountInformation.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <site xmlns:xf="http://apache.org/cocoon/jxforms/1.0" 
     signOn="false" view="xsp">
    <editAccountForm>
  	<xf:form id="petstore-edit-account" view="edit-account-info" action="petstore" method="GET" class="petstore-form">
  		<error>
  			<xf:violations class="error"/>
  		</error>
  		
  		<xf:group class="panel" ref="/account">
  			<xf:label class="header" >Account Information</xf:label>
  			<xf:input ref="/account/firstName">
  				<xf:label>First Name:</xf:label>
  				<xf:violations class="error"/>
  			</xf:input>
  			<xf:input ref="lastName">
  				<xf:label>Last Name:</xf:label>
  				<xf:violations class="error"/>
  			</xf:input>
  			<xf:input ref="email">
  				<xf:label>Email:</xf:label>
  				<xf:violations class="error"/>
  			</xf:input>
  			<xf:input ref="phone">
  				<xf:label>Phone:</xf:label>
  				<xf:violations class="error"/>
  			</xf:input>
  			<xf:input ref="address1">
  				<xf:label>Address 1:</xf:label>
  				<xf:violations class="error"/>
  			</xf:input>
  			<xf:input ref="address2">
  				<xf:label>Address 2:</xf:label>
  				<xf:violations class="error"/>
  			</xf:input>
  			<xf:input ref="city">
  				<xf:label>City:</xf:label>
  				<xf:violations class="error"/>
  			</xf:input>
  			<xf:input ref="state">
  				<xf:label>State:</xf:label>
  				<xf:violations class="error"/>
  			</xf:input>
  			<xf:input ref="zip">
  				<xf:label>Zip:</xf:label>
  				<xf:violations class="error"/>
  			</xf:input>
  			<xf:input ref="country">
  				<xf:label>Country:</xf:label>
  				<xf:violations class="error"/>
  			</xf:input>
  		</xf:group>
  
  		<xf:submit id="prev" continuation="back" class="button">
  			<xf:label>Back</xf:label>
  			<xf:hint>Go Back</xf:hint>
  		</xf:submit>
  		<xf:submit id="next" continuation="forward" class="button">
  			<xf:label>Next</xf:label>
  			<xf:hint>Continue</xf:hint>
  		</xf:submit>
  	</xf:form>
  </editAccountForm>
  </site>
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jxforms/EditProfileInformation.xml
  
  Index: EditProfileInformation.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <site xmlns:xf="http://apache.org/cocoon/jxforms/1.0" 
   signOn="false" view="xsp">
   <editAccountForm>
  	<xf:form id="petstore-edit-account" view="edit-profile" action="petstore" method="GET">
  		<error>
  			<xf:violations class="error"/>
  		</error>
  		
  		<xf:group ref="/account">
  			<xf:label class="header">Profile Information</xf:label>
  			<xf:select1 ref="/account/favCategory">
  			   <xf:label>Favorite Category:</xf:label>
  			   <xf:itemset nodeset="/categoryList">
  				<xf:label><xf:output ref="name"/></xf:label>
  				<xf:value><xf:output ref="name"/></xf:value>
  			   </xf:itemset>
  			</xf:select1>
  			<xf:select1 ref="/account/listOption">
  				<xf:label>Enable MyList</xf:label>
                                  <xf:item>
  				  <xf:label>Yes</xf:label>
  				  <xf:value>true</xf:value>
                                  </xf:item>
                                  <xf:item>
  				  <xf:label>No</xf:label>
  				  <xf:value></xf:value>
                                  </xf:item>
  			</xf:select1>
  			<xf:select1 ref="/account/bannerOption">
  				<xf:label>Enable MyBanner</xf:label>
                                  <xf:item>
  				  <xf:label>Yes</xf:label>
  				  <xf:value>true</xf:value>
                                  </xf:item>
                                  <xf:item>
  				  <xf:label>No</xf:label>
  				  <xf:value></xf:value>
                                  </xf:item>
  			</xf:select1>
  		</xf:group>
  
  		<xf:submit id="prev" continuation="back" class="button">
  			<xf:label>Back</xf:label>
  			<xf:hint>Go Back</xf:hint>
  		</xf:submit>
  		<xf:submit id="next" continuation="forward" class="button">
  			<xf:label>Finish</xf:label>
  			<xf:hint>Submit Account Information</xf:hint>
  		</xf:submit>
  	</xf:form>
  </editAccountForm>
  </site>
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/view/jxforms/EditUserInformation.xml
  
  Index: EditUserInformation.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <site xmlns:xf="http://apache.org/cocoon/jxforms/1.0" 
     signOn="false" view="xsp">
    <editAccountForm>
  	<xf:form id="petstore-edit-account" view="edit-user-info" action="petstore" method="GET" class="petstore-form">
  		<error>
  			<xf:violations class="error"/>
  		</error>
  		
  		<xf:group class="panel" ref="/">
  			<xf:label class="header">User Information</xf:label>
  			<xf:input ref="/username">
  				<xf:label>User ID:</xf:label>
  				<xf:violations class="error"/>
  			</xf:input>
  			<xf:secret ref="/password">
  				<xf:label>Password:</xf:label>
  				<xf:violations class="error"/>
  			</xf:secret>
  			<xf:secret ref="/password2">
  				<xf:label>Repeat Password:</xf:label>
  				<xf:violations class="error"/>
  			</xf:secret>
  		</xf:group>
  		
  
  		<xf:submit id="next" continuation="forward" class="button">
  			<xf:label>Next</xf:label>
  			<xf:hint>Continue</xf:hint>
  		</xf:submit>
  	</xf:form>
  </editAccountForm>
  </site>
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/stylesheets/form2html.xsl
  
  Index: form2html.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                  xmlns:xf="http://apache.org/cocoon/jxforms/1.0"
  	        exclude-result-prefixes="xalan" >
  
          <xsl:template match="/">
             <xsl:apply-templates />
          </xsl:template>
  
  	<xsl:template match="xf:form">
  		<xf:form method="post">
  			<xsl:copy-of select="@*" />
  			<table cellpadding="10" cellspacing="0" border="1" align="center" bgcolor="#dddddd">
  				<xsl:if test="count(error/xf:violation) > 0">
  					<tr>
  						<td align="left" colspan="3"
  							class="{error/xf:violation[1]/@class}">
  							<p>* [<b><xsl:value-of
  								select="count(error/xf:violation)"/></b>] 
  								error(s). Please fix these errors and submit the
  								form again.</p>
  							<p>
  								<xsl:variable name="localViolations"
  									select=".//xf:*[ child::xf:violation ]"/>
  								<xsl:for-each select="error/xf:violation">
  									<xsl:variable name="eref" select="./@ref"/>
  									<xsl:if
  										test="count ($localViolations[ @ref=$eref ]) = 0"
  										>* <xsl:value-of select="." /> <br/> </xsl:if>
  								</xsl:for-each>
  							</p>
  							<p/>
  						</td>
  					</tr>
  				</xsl:if>
  				<xsl:for-each select="*[name() != 'xf:submit']">
  					<xsl:choose>
  						<xsl:when test="name() = 'error'"/>
  						<xsl:when test="name() = 'xf:label'"/>
  						<xsl:when test="xf:*">
  							<xsl:apply-templates select="."/>
  						</xsl:when>
  						<xsl:otherwise>
  							<xsl:copy-of select="."/>
  						</xsl:otherwise>
  					</xsl:choose>
  				</xsl:for-each>
  				<tr>
  					<td align="center" colspan="3">
  						<xsl:for-each select="*[name() = 'xf:submit']">
  							<xsl:copy-of select="." />
  							<xsl:text>
  							</xsl:text>
  						</xsl:for-each>
  					</td>
  				</tr>
  			</table>
  		</xf:form>
  	</xsl:template>
  	<xsl:template match="xf:group">
  		<tr>
                    <td>
                        <font color="darkgreen"><h3><xsl:value-of select="xf:label" /></h3></font>
  				<table cellspacing="1" cellpadding="3" border="0" bgcolor="#008800">
  					<xsl:apply-templates select="*"/>
  				</table>
  			</td>
  		</tr>
  	</xsl:template>
  	<xsl:template match="xf:output[@form]">
  		<div align="center">
  			<hr width="30%"/>
  			<br/>
  			<font size="-1">
  				<code> <xsl:value-of select="xf:label" /> : <xsl:copy-of
  					select="." /> </code>
  			</font>
  			<br/>
  		</div>
  	</xsl:template>
  	<xsl:template match="xf:label"/>
  	<xsl:template match="xf:*">
  		<tr bgcolor="#FFFF88">
  			<td align="left" valign="top">
  				<p class="label">
  					<xsl:value-of select="xf:label" />
  				</p>
  			</td>
  			<td align="left">
  				<table class="plaintable">
  					<tr bgcolor="#FFFF88">
  						<td align="left">
  							<xsl:copy-of select="." />
  						</td>
  						<xsl:if test="xf:violation">
  							<td align="left" class="{xf:violation[1]/@class}" width="100%">
  								<xsl:for-each select="xf:violation">* 
  									<xsl:value-of select="." /> <br/> </xsl:for-each>
  							</td>
  						</xsl:if>
  					</tr>
  				</table>
  				<xsl:if test="xf:help">
  					<div class="help">
  						<xsl:value-of select="xf:help" />
  					</div>
  					<br />
  				</xsl:if>
  			</td>
  		</tr>
  	</xsl:template>
     <!-- copy all the rest of the markup which is not recognized above -->
     <xsl:template match="*">
        <xsl:copy><xsl:copy-of select="@*" /><xsl:apply-templates /></xsl:copy>
     </xsl:template>
  
     <xsl:template match="text()">
        <xsl:value-of select="." />
     </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/stylesheets/site2html.xsl
  
  Index: site2html.xsl
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  
  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  	exclude-result-prefixes="xalan" >
  
  	<xsl:template match="site">
  		<html>
  			<head>
  				<meta content="text/html; charset=windows-1252" http-equiv="Content-Type" />
  				<meta HTTP-EQUIV="Cache-Control" CONTENT="max-age=0"/>
  				<meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache"/>
  				<meta http-equiv="expires" content="0"/>
  				<meta HTTP-EQUIV="Expires" CONTENT="Tue, 01 Jan 1980 1:00:00 GMT"/>
  				<meta HTTP-EQUIV="Pragma" CONTENT="no-cache"/>
  			</head>
  			<body bgcolor="white">
  				<table background="images/bkg-topbar.gif" border="0" cellspacing="0" cellpadding="5" width="100%">
  					<tbody>
  						<tr>
  							<td>
  							   <form method="post" action="index.do">
  								 <input type="image" border="0" src="images/logo-topbar.gif" />
  								   <select name="view" width="14" align="left" onChange="document.forms[0].submit()">
  								<xsl:choose>
  									<xsl:when test="@view='jxpath'">
  									  <option value="JXPath">JXPath</option>
  									  <option value="Jexl">Jexl</option>
  									  <option value="Xsp">Xsp</option>
  									  <option value="Velocity">Velocity</option>
                                                                          </xsl:when>
  									<xsl:when test="@view='jexl'">
  									  <option value="Jexl">Jexl</option>
  									  <option value="JXPath">JXPath</option>
  									  <option value="Xsp">Xsp</option>
  									  <option value="Velocity">Velocity</option>
                                                                          </xsl:when>
  									<xsl:otherwise>
  									  <option value="Xsp">Xsp</option>
  									  <option value="JXPath">JXPath</option>
  									  <option value="Jexl">Jexl</option>
  									  <option value="Velocity">Velocity</option>
  									</xsl:otherwise>
  							              </xsl:choose>
  								   </select>
  							   </form>
  							</td>
  							<td align="right">
  								<a href="viewCart.do"><img border="0" name="img_cart" src="images/cart.gif" /></a><img border="0" src="images/separator.gif" hspace="4" />
  								<xsl:choose>
  									<xsl:when test="@signOn='true'">
  										<a href="signonForm.do"><img border="0" name="img_signin" src="images/sign-in.gif" /></a>
  									</xsl:when>
  									<xsl:otherwise>
  										<a href="signonForm.do?signoff=true"><img border="0" name="img_signout" src="images/sign-out.gif" /></a><img border="0" src="images/separator.gif" hspace="4" />
  										<a href="editAccount.form"><img border="0" name="img_myaccount" src="images/my_account.gif" /></a>
  									</xsl:otherwise>
  								</xsl:choose>
  								<img border="0" src="images/separator.gif" hspace="4" /><a href="../help.html"><img border="0" name="img_help" src="images/help.gif" /></a>
  							</td>
  							<td align="left" valign="bottom">
  								<form method="post" action="searchProducts.do">
  									<input name="keyword" size="14" />
  									<input border="0" src="images/search.gif" type="image" />
  								</form>
  							</td>
  						</tr>
  					</tbody>
  				</table>
  				<center>
  					<a href="viewCategory.do?categoryId=FISH"><img border="0" src="images/sm_fish.gif" /></a> 
  					<img border="0" src="images/separator.gif" hspace="4" /> 
  					<a href="viewCategory.do?categoryId=DOGS"><img border="0" src="images/sm_dogs.gif" /></a> 
  					<img border="0" src="images/separator.gif" hspace="4" /> 
  					<a href="viewCategory.do?categoryId=REPTILES"><img border="0" src="images/sm_reptiles.gif" /></a> 
  					<img border="0" src="images/separator.gif" hspace="4" /> 
  					<a href="viewCategory.do?categoryId=CATS"><img border="0" src="images/sm_cats.gif" /></a> 
  					<img border="0" src="images/separator.gif" hspace="4" />
  					<a href="viewCategory.do?categoryId=BIRDS"><img border="0" src="images/sm_birds.gif" /></a> 
  				</center>
  				<xsl:apply-templates/>
  				<br/>
  				<p align="center">
  					<a href="http://cocoon.apache.org"><img border="0" align="center" src="images/cocoon.gif" /></a>
  				</p>
  			</body>
  		</html>
  	</xsl:template>
  
  	<xsl:template match="welcome">
  		<table border="0" cellspacing="0" width="100%">
  			<tbody>
  				<tr>
  					<td valign="top" width="100%">
  						<table align="left" border="0" cellspacing="0" width="80%">
  							<tbody>
  								<tr>
  									<td valign="top">
  										<xsl:apply-templates/>
  									</td>
  									<td align="center" bgcolor="white" height="300" width="100%">
  										<map name="estoremap">
  											<area alt="Birds" coords="72,2,280,250" href="viewCategory.do?categoryId=BIRDS" shape="RECT" />
  											<area alt="Fish" coords="2,180,72,250" href="viewCategory.do?categoryId=FISH" shape="RECT" />
  											<area alt="Dogs" coords="60,250,130,320" href="viewCategory.do?categoryId=DOGS" shape="RECT" />
  											<area alt="Reptiles" coords="140,270,210,340" href="viewCategory.do?categoryId=REPTILES" shape="RECT" />
  											<area alt="Cats" coords="225,240,295,310" href="viewCategory.do?categoryId=CATS" shape="RECT" />
  											<area alt="Birds" coords="280,180,350,250" href="viewCategory.do?categoryId=BIRDS" shape="RECT" />
  										</map>
  										<img border="0" height="355" src="images/splash.gif" align="center" usemap="#estoremap" width="350" />
  									</td>
  								</tr>
  							</tbody>
  						</table>
  					</td>
  				</tr>
  			</tbody>
  		</table>
  	</xsl:template>
  
  	<xsl:template match="menu">
  		<table bgcolor="#FFFF88" border="0" cellspacing="0" cellpadding="5" width="200">
  			<tbody>
  				<tr>
  					<td>
  						<!-- 
  						#if (!$accountForm.signOn)
  						<b><i><font size="2" color="BLACK">Welcome $accountForm.account.firstName!</font></i></b>
  						#end
  						-->
  					</td>
  				</tr>
  				<xsl:apply-templates/>
  			</tbody>
  		</table>
  	</xsl:template>
  
  	<xsl:template match="menu/category">
  		<tr>
  			<td>
  				<a href="viewCategory.do?categoryId={@id}"><i><h2><xsl:value-of select="@name" /></h2></i></a>
  			</td>
  		</tr>
  	</xsl:template>
  
  	<xsl:template match="backpointer">
  		<table align="left" bgcolor="#008800" border="0" cellspacing="2" cellpadding="2">
  			<tr>
  				<td bgcolor="#FFFF88">
  					<a href="{@do}"><b><font color="BLACK" size="2">&lt;&lt; <xsl:value-of select="@name" /></font></b></a>
  				</td>
  			</tr>
  		</table>
  	</xsl:template>
  
  	<xsl:template match="category">
  		<p>
  			<center>
  				<h2><xsl:value-of select="@name" /></h2>
  			</center>
  			<table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="3">
  				<tr bgcolor="#CCCCCC">
  					<td>
  						<b>Product ID</b>
  					</td>
  					<td>
  						<b>Name</b>
  					</td>
  				</tr>
  				<xsl:apply-templates/>
  			</table>
  		</p>
  	</xsl:template>
  
  	<xsl:template match="category/product">
  		<tr bgcolor="#FFFF88">
  			<td>
  				<b><a href="viewProduct.do?productId={@id}"><font color="BLACK"><xsl:value-of select="@id" /></font></a></b>
  			</td>
  			<td>
  				<xsl:value-of select="@name" />
  			</td>
  		</tr>
  	</xsl:template>
  	
  	<xsl:template match="search">
  		<table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="3">
  			<tr bgcolor="#CCCCCC">
  				<td></td>
  				<td>
  					<b>Product ID</b>
  				</td>
  				<td>
  					<b>Name</b>
  				</td>
  			</tr>
  			
  			<xsl:apply-templates/>
  		</table>
  
  	</xsl:template>
  
  	<xsl:template match="search/product">
  		<tr bgcolor="#FFFF88">
  			<td><a href="viewProduct.do?productId={@id}"><xsl:value-of select="product-desc" /></a></td>
  			<td>
  				<b><a href="viewProduct.do?productId={@id}"><font color="BLACK"><xsl:value-of select="@id" /></font></a></b>
  			</td>
  			<td><xsl:value-of select="@name" /></td>
  		</tr>
  	</xsl:template>
  
  	<xsl:template match="situation">
  		<tr>
  			<td>
  				<xsl:if test="@firstPage='false'" >
  					<a href="{@continuation}.kont?page=previous"><font color="white"><B>&lt;&lt; Prev</B></font></a>
  				</xsl:if>
  				<xsl:if test="@lastPage='false'" >
  					<a href="{@continuation}.kont?page=next"><font color="white"><B>Next &gt;&gt;</B></font></a>
  				</xsl:if>
  			</td>
  		</tr>
  	</xsl:template>
  
  	<xsl:template match="product">
  		<p>
  			<center>
  				<b><font size="4"><xsl:value-of select="@name" /></font></b>
  			</center>
  			
  			<table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="3">
  				<tr bgcolor="#CCCCCC">
  					<td><b>Item ID</b></td>
  					<td><b>Product ID</b></td>
  					<td><b>Description</b></td>
  					<td><b>List Price</b></td>
  					<td></td>
  				</tr>
  				<xsl:apply-templates/>
  			</table>
  		</p>
  	</xsl:template>
  
  	<xsl:template match="product/item">
  		<tr bgcolor="#FFFF88">
  			<td>
  				<b><a href="viewItem.do?itemId={@id}"><xsl:value-of select="@id" /></a></b>
  			</td>
  			<td>
  				<b><xsl:value-of select="@product-id" /></b>
  			</td>
  			<td>
  				<xsl:value-of select="desc" /><xsl:text> </xsl:text><xsl:value-of select="../@name" />
  			</td>
  			<td>
  				<xsl:text>$</xsl:text> <xsl:value-of select="price" />
  			</td>
  			<td>
  				<a href="addItemToCart.do?itemId={@id}"><img border="0" src="images/button_add_to_cart.gif" /></a>
  			</td>
  		</tr>
  	</xsl:template>
  
  	<xsl:template name="cart-common-columns">
  		<td><b>Item ID</b></td>
  		<td><b>Product ID</b></td>
  		<td><b>Description</b></td>
  		<td><b>Quantity</b></td>
  		<td><b>List Price</b></td>
  	</xsl:template>
  
  	<xsl:template match="cart[@name='Shopping Cart']">
  		<table border="0" width="100%" cellspacing="0" cellpadding="0">
  			<tr>
  				<td valign="top" width="20%" align="left">
  					<xsl:apply-templates select="backpointer" />
  				</td>
  				<td valign="top" align="center">
  					<h2 align="center"><xsl:value-of select="@name" /></h2>
  					<form action="updateCartQuantities.do" method="post" >
  						<table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="5">
  							<tr bgcolor="#cccccc">
  								<xsl:call-template name="cart-common-columns" />
  								<td></td>
  							</tr>
  							<xsl:if test="not(item)">
  								<tr bgcolor="#FFFF88">
  									<td colspan="6">
  										<b>Your cart is empty.</b>
  									</td>
  								</tr>
  							</xsl:if>
  							<xsl:apply-templates select="item" />
  							<tr bgcolor="#FFFF88">
  								<td colspan="5" align="right">
  									<b>Sub Total: $<xsl:value-of select="format-number (total, '###,##0.00')"/></b><br />
  									<input type="image" border="0" src="images/button_update_cart.gif" name="update" />
  								</td>
  								<td></td>
  							</tr>
  						</table>
  					</form>
  					<xsl:if test="item">
  						<xsl:apply-templates select="nextpointer" />
  					</xsl:if>
  				</td>
  				<td valign="top" width="20%" align="right">
  				</td>
  			</tr>
  		</table>
  	</xsl:template>
  
  	<xsl:template match="cart[@name='Checkout Summary']">
  		<table border="0" width="100%" cellspacing="0" cellpadding="0">
  			<tr>
  				<td valign="top" width="20%" align="left">
  					<xsl:apply-templates select="backpointer" />
  				</td>
  				<td valign="top" align="center">
  					<h2 align="center"><xsl:value-of select="@name" /></h2>
  						<table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="5">
  							<tr bgcolor="#cccccc">
  								<xsl:call-template name="cart-common-columns" />
  							</tr>
  							<xsl:apply-templates select="item" />
  							<tr bgcolor="#FFFF88">
  								<td colspan="5" align="right">
  									<b>Sub Total: $<xsl:value-of select="format-number (total, '###,##0.00')"/></b><br />
  								</td>
  							</tr>
  						</table>
  						<xsl:apply-templates select="nextpointer" />
  				</td>
  				<td valign="top" width="20%" align="right">
  				</td>
  			</tr>
  		</table>
  	</xsl:template>
  
  	<xsl:template match="cart[@name='Status']">
  		<table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="5">
  			<tr bgcolor="#cccccc">
  				<xsl:call-template name="cart-common-columns" />
  			</tr>
  			<xsl:apply-templates select="item" />
  			<tr bgcolor="#FFFF88">
  				<td colspan="5" align="right">
  					<b>Total: $<xsl:value-of select="format-number (total, '###,##0.00')"/></b><br />
  				</td>
  			</tr>
  		</table>
  	</xsl:template>
  
  
  	<xsl:template match="nextpointer">
  		<br />
  			<center>
  				<a href="{@do}"><img border="0" src="{@img}" /></a>
  			</center>
  	</xsl:template>
  
  
  	<xsl:template match="cart/item">
  		<tr bgcolor="#FFFF88">
  			<td>
  				<b><xsl:value-of select="@id" /></b>
  			</td>
  			<td>
  				<xsl:value-of select="@product-id" />
  			</td>
  			 <td>
  					<xsl:value-of select="desc" />
  			 </td>
  			<td align="center">
  				<xsl:choose>
  					<xsl:when test="../@name='Shopping Cart'">
  						<input type="text" size="3" name="{@id}" >
  							<xsl:attribute name="value"><xsl:value-of select="format-number (quantity, '####')"/></xsl:attribute>
  						</input>
  					</xsl:when>
  					<xsl:otherwise>
  						<xsl:value-of select="format-number (quantity, '####')"/>
  					</xsl:otherwise>
  				</xsl:choose>
  			</td>
  			<td align="right">
  				$<xsl:value-of select="format-number (price, '###,##0.00')"/>
  			</td>
  			<xsl:if test="../@name='Shopping Cart'">
  				<td>
  					<a href="removeItemFromCart.do?workingItemId={@id}"><img border="0" src="images/button_remove.gif" /></a>
  				</td>
  			</xsl:if>
  		</tr>
  	</xsl:template>
  	
  	
  
  
  	<xsl:template match="item">
  		<p>
  			<table align="center" bgcolor="#008800" cellspacing="2" cellpadding="3" border="0" width="60%">
  				<tr bgcolor="#FFFF88">
  					<td bgcolor="#FFFFFF">
  						<xsl:value-of select="product-desc" />
  					</td>
  				</tr>
  				<tr bgcolor="#FFFF88">
  					<td width="100%" bgcolor="#cccccc">
  					  <b><xsl:value-of select="@id" /></b>
  					</td>
  				</tr>
  				<tr bgcolor="#FFFF88">
  					<td>
  						<b><font size="4"><xsl:value-of select="desc" /></font></b>
  					</td>
  				</tr>
  				<tr bgcolor="#FFFF88">
  					<td>
  						<font size="3"><i><xsl:value-of select="product-name" /></i></font>
  					</td>
  				</tr>
  					<!-- quantity stuff still missing -->
  				
  				<tr bgcolor="#FFFF88">
  					<td>
  						<xsl:value-of select="format-number (instock, '####')"/> in stock.
  					</td>
  				</tr>
  				<tr bgcolor="#FFFF88">
  					<td>
  						$<xsl:value-of select="format-number (price, '###,##0.00')"/>
  					</td>
  				</tr>
  				<tr bgcolor="#FFFF88">
  					<td>
  						<a href="addItemToCart.do?itemId={@id}" ><img border="0" src="images/button_add_to_cart.gif" /></a>
  					</td>
  				</tr>
  			</table>
  		</p>
  	</xsl:template>
  
  	<xsl:template match="editAccountForm">
               <xsl:copy-of select="*"/>
          </xsl:template>
  
  	<xsl:template match="form[@styleId='workingAccountForm']">
  		<form>
  			<xsl:copy-of select="@action | @method | @styleId "/>
  			<xsl:choose>
  				<xsl:when test="/site/@signOn='true'">
  					<hidden name="workingAccountForm" property="validate" value="newAccount"/>
  				</xsl:when>
  				<xsl:otherwise>
  					<hidden name="workingAccountForm" property="validate" value="editAccount" />
  					<hidden name="workingAccountForm" property="account.username" />
  				</xsl:otherwise>
  			</xsl:choose>
  			<table cellpadding="10" cellspacing="0" align="center" border="1" bgcolor="#dddddd">
  				<tr>
  					<td>
  					<xsl:apply-templates/>
  					</td>
  				</tr>
  			</table>
  			<br />
  			<center>
  				<input border="0" type="image" src="images/button_submit.gif" name="submit" value="Save Account Information" />
  			</center>
  		</form>
  		<xsl:if test="/site/@signOn='false'">
  			<p>
  				<center><b><a href="listOrders.do">My Orders</a></b></center>
  			</p>
  		</xsl:if>
  	</xsl:template>
  
  	
  	<xsl:template match="form[@styleId='workingOrderForm']">
  		<b><font color="RED"><xsl:value-of select="message" /></font></b>
  		<form>
  			<xsl:copy-of select="@action | @method | @styleId"/>
  				<xsl:apply-templates/>
                  <p><center>
  			<input type="image" src="images/button_submit.gif"/>
                   </center>
  		</p>
  		</form>
  	</xsl:template>
  	
  	<xsl:template match="form[@label='signon']">
  		<xsl:apply-templates select="message"/>
  		<form>
  			<xsl:copy-of select="@action | @method"/>
  			<table align="center" border="0">
  				<tr>
  					<td colspan="2">Please enter your username and password.<br /> </td>
  				</tr>
  				<xsl:apply-templates select="input"/>
  			</table>
  		</form>
  	</xsl:template>
  	
  	
  	<xsl:template match="panel[panel]">
  		<table width="60%" align="center" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFF88">
  			<xsl:if test="@header">
  				<tr bgcolor="#FFFF88">
  					<td align="center" colspan="2">
  						<font size="4"><b><xsl:value-of select="@header" /></b></font>
  						<xsl:if test="@subheader">
  							<br /><font size="3"><b><xsl:value-of select="@subheader" /></b></font>
  						</xsl:if>
  					</td>
  				</tr>
  			</xsl:if>
  			<xsl:apply-templates/>
  		</table>
  	</xsl:template>
  	
  	<xsl:template match="panel">
  		<font color="darkgreen"><h3><xsl:value-of select="@label" /></h3></font>
  		<table border="0" cellpadding="3" cellspacing="1" bgcolor="#008800">
  			<xsl:apply-templates/>
  		</table>
  	</xsl:template>
  	
  	<xsl:template match="panel/panel">
  		<tr bgcolor="#FFFF88">
  			<td colspan="2">
  				<font color="GREEN" size="4"><b><xsl:value-of select="@label" />:</b></font>
  			</td>
  		</tr>
  		<xsl:apply-templates/>
  	</xsl:template>
  	
  	<xsl:template match="panel/select">
  		<tr bgcolor="#FFFF88">
  			<td><xsl:value-of select="@label" /></td>
  			<td>
  				<select>
  					<xsl:copy-of select="@type | @src | @value | @name | @size | @selected | node()" />
  				</select>
  			</td>
  		</tr>
  	</xsl:template>
  	
  	<xsl:template match="panel/input">
  		<tr bgcolor="#FFFF88">
  			<td><xsl:value-of select="@label" /></td>
  			<td><input><xsl:copy-of select="@type | @src | @value | @name | @size | @selected"/></input></td>
  		</tr>
  	</xsl:template>
  	
  	<xsl:template match="panel/field">
  		<tr bgcolor="#FFFF88">
  			<td><xsl:value-of select="@label" />:</td>
  			<td><xsl:value-of select="." /></td>
  		</tr>
  	</xsl:template>
  
  	<xsl:template match="panel/field[@empty]">
  		<tr bgcolor="#FFFF88">
  			<td colspan="{@empty}"><xsl:value-of select="@label" />
  				<xsl:apply-templates />
  			</td>
  		</tr>
  	</xsl:template>
  
  	<xsl:template match="message">
  		<br clear="all" />
  			<center>
  				<b>
  					<font size="4">
  						<xsl:if test="@type='warning'">
  							<xsl:attribute name="color">RED</xsl:attribute> 
  						</xsl:if>
  						<xsl:value-of select="." />
  					</font>
  				</b>
  			</center>
  		<br clear="all" />
  	</xsl:template>
  
  	
  	<xsl:template match="input">
  		<tr>
  			<td><xsl:value-of select="@label" /></td>
  			<td><input><xsl:copy-of select="@type | @src | @value | @name | @size | @selected"/></input></td>
  		</tr>
  	</xsl:template>
  	
  
  	<xsl:template match="register">
  		<center>
  			<a href="newAccountForm.do"><img border="0" src="images/button_register_now.gif" /></a>
  		</center>
  	</xsl:template>
  
  </xsl:stylesheet>
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/flow/petstore.js
  
  Index: petstore.js
  ===================================================================
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      apache@apache.org.
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
  */
  
  // Page Flow for PetStore Application
  
  // load JXForms support
  cocoon.load("resource://org/apache/cocoon/components/jxforms/flow/javascript/JXForm.js");
  
  var MAX_RESULTS = 5;
  
  var VIEW = "Velocity";
  var EXT = ".vm";
  
  
  function Format() {
  }
  
  Format.prototype.formatNumber = function(num, format) {
      return new java.text.DecimalFormat(format).format(num);
  }
  
  Format.prototype.formatDate = function(date, format) {
      return new java.text.SimpleDateFormat(format).format(date);
  }
  
  var fmt = new Format();
  var petStore = null;
  var accountForm = null;
  var cartForm = null;
  var categoryList = null;
  
  function print(line) {
      cocoon.log.info(line);
  }
  
  function main(funName) {
      var fun = this[funName];
      var args = new Array(arguments.length -1);
      for (var i = 1; i < arguments.length; i++) {
          args[i-1] = arguments[i];
      }
      getPetStore();
      fun.apply(args);
  
  }
  
  function getPetStore() {
      if (petStore == null) {
          this.petStore = new PetStore("hsql");
          this.cartForm = new CartForm();
          this.accountForm = new AccountForm();
          this.categoryList = getPetStore().getCategoryList();
      }
      return petStore;
  }
  
  function setView() {
      VIEW = cocoon.request.get("view");
      print("setView: VIEW="+VIEW);
      if (VIEW == "Velocity") {
          EXT = ".vm";
      } else if (VIEW == "Xsp") {
          EXT = ".xsp";
      } else if (VIEW == "Jexl") {
          EXT = ".jexl";
      } else if (VIEW == "JXPath") {
          EXT = ".jxpath";
      }
      print("EXT="+EXT);
  }
  
  // Index page
  
  function index() {
      setView();
      getPetStore();
      cocoon.sendPage("/view/index" + EXT, {
               view: VIEW,
               accountForm: accountForm,
               categoryList: categoryList,
      });
  }
  
  // Cart page
  
  function viewCart() {
      var cartItems = [];
      for (var i in cartForm.cart.cartItems) {
          var cartItem = cartForm.cart.cartItems[i];
          cartItems.push(cartItem);
      }
      cocoon.sendPage("/view/Cart" + EXT, {
               view: VIEW,
               accountForm: accountForm, 
               cartForm: cartForm, 
               fmt: fmt,
               cartItems: cartItems
  
      });
  }
  
  function removeItemFromCart() {
      var itemId = cocoon.request.getParameter("workingItemId");
      var item = getPetStore().getItem(itemId);
      cartForm.cart.removeItem(item);
      var cartItems = [];
      for (var i in cartForm.cart.cartItems) {
          var cartItem = cartForm.cart.cartItems[i];
          cartItems.push(cartItem);
      }
      cocoon.sendPage("/view/Cart" + EXT, {
               view: VIEW,
               fmt: fmt, 
               accountForm: accountForm, 
                          cartForm: cartForm, cartItems: cartItems
      });
  }
  
  function updateCartQuantities() {
      var cartItems = [];
      for (var i in cartForm.cart.cartItems) {
          var cartItem = cartForm.cart.cartItems[i];
          var itemId = cartItem.item.itemId;
          var quantity = new java.lang.Double(cocoon.request.get(itemId)).intValue();
          cartItem.updateQuantity(quantity);
          cartItems.push(cartItem);
      }
      cocoon.sendPage("/view/Cart" + EXT, {
               view: VIEW,
               fmt: fmt, 
               accountForm: accountForm, 
               cartForm:cartForm,
               cartItems: cartItems
      });
  }
  
  function addItemToCart() {
      var itemId = cocoon.request.getParameter("itemId");
      var item = getPetStore().getItem(itemId);
      cartForm.cart.addItem(item);
      var cartItems = [];
      for (var i in cartForm.cart.cartItems) {
          var cartItem = cartForm.cart.cartItems[i];
          cartItems.push(cartItem);
      }
      cocoon.sendPage("/view/Cart" + EXT, {
               view: VIEW,
               fmt: fmt, 
               accountForm: accountForm, 
               cartForm: cartForm, 
               cartItems: cartItems
      });
  }
  
  
  // Category page
  
  function viewCategory() {
      var categoryId = cocoon.request.get("categoryId");
      var category = getPetStore().getCategory(categoryId);
      var skipResults = 0;
      var maxResults = MAX_RESULTS;
      while (true) {
          var productList = 
              getPetStore().getProductListByCategory(categoryId,
                                                     skipResults, 
                                                     maxResults);
          var lastPage = !productList.isLimitedByMaxRows;
          var rowCount = productList.rowCount;
          cocoon.sendPageAndWait("/view/Category" + EXT, {
                          accountForm: accountForm, 
                          productList: productList.rows, 
                          category: category, 
                          firstPage: skipResults == 0, 
                          lastPage: lastPage
          });
  
          catch (break) {
              print("zapping productList");
              productList = null;
          }
          
          catch (continue) {
              print("returning from continuation");
              print("productList="+productList);
          }
  
          var page = cocoon.request.get("page");
          if (page == "previous") {
              if (skipResults != 0) {
                  skipResults -= maxResults;
              }
          } else if (page == "next") {
              if (!lastPage) {
                  skipResults += rowCount;
              }
          }
      } 
  }
  
  // Product page
  
  function viewProduct() {
      var productId = cocoon.request.get("productId");
      var product = getPetStore().getProduct(productId);
      var skipResults = 0;
      var maxResults = MAX_RESULTS;
  
      while (true) {
          var itemList = 
              getPetStore().getItemListByProduct(productId,
                                                 skipResults, 
                                                 maxResults);
          cocoon.sendPageAndWait("/view/Product" + EXT, {
                          view: VIEW,
                          accountForm: accountForm, 
                          fmt: fmt,
                          product: product,
                          firstPage: skipResults == 0, 
                          lastPage: !itemList.isLimitedByMaxRows,
                          itemList: itemList.rows
          });
          var page = cocoon.request.get("page");
          if (page == "previous") {
              if (skipResults != 0) {
                  skipResults -= maxResults;
              }
          } else if (page == "next") {
              if (!itemList.isLimitedByMaxRows) {
                  skipResults += itemList.rowCount;
              }
          } 
      }
  }
  
  // Item page
  
  function viewItem() {
      var itemId = cocoon.request.getParameter("itemId");
      var item = getPetStore().getItem(itemId);
      cocoon.sendPage("/view/Item" + EXT, {
               view: VIEW,
               accountForm: accountForm, 
               cartForm: cartForm, 
               item: item, 
               quantity: getPetStore().getItemRowCountByProduct(item.productId),
               product: item.product, 
               fmt: fmt
      });
  }
  
  
  // Sign-on page
  
  function signonForm() {
      signOn();
      index();
  }
  
  function signOn() {
      if (cocoon.request.get("signoff") != null) {
          accountForm = new AccountForm();
          cartForm = new CartForm();
      } else {
          var message = "";
          while (true) {
              cocoon.sendPageAndWait("/view/SignonForm" + EXT, {
                              view: VIEW,
                              accountForm: accountForm, 
                              message: message
              });
              var username = cocoon.request.get("username");
              var password = cocoon.request.get("password");
              print("getting account: " + username);
              account = getPetStore().getAccount(username, password);
              if (account == null) {
                  message = "Invalid username or password";
              } else {
                  accountForm = new AccountForm(username, password);
                  accountForm.account = account;
                  accountForm.signOn = false;
                  break;
              }
          } 
      }
  }
  
  // Account Form
  
  function newAccountForm() {
      print("new account");
      var accountForm = new AccountForm();
      var account = new Account();
      cocoon.sendPageAndWait("/view/NewAccountForm" + EXT, {
                       view: VIEW,
                       accountForm: accountForm,
                       account: account,
                       categoryList: categoryList
      });
  }
  
  //
  // Edit Account page: example of using JXForms in a flow script
  //
  
  
  function validateZIP(field) {
      var valid = "0123456789-";
      var hyphencount = 0;
      if (field.length != 5 && field.length != 10) {
          throw "Please enter your 5 digit or 5 digit+4 zip code.";
      }
      for (var i=0; i < field.length; i++) {
          var temp = "" + field.substring(i, i+1);
          if (temp == "-") hyphencount++;
          if (valid.indexOf(temp) == "-1") {
              throw "Invalid characters in your zip code";
          }
      }
      if (hyphencount > 1 || (field.length == 10 && field.charAt(5) != "-")) {
          throw "The hyphen character should be used with a properly formatted 5 digit+four zip code, like '12345-6789'";
      }
  }
  
  function validateEmail(value) {
      var reg  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
      return reg.test(value);
  }
  
  function empty(str) {
      return str == null || 
        (str instanceof java.lang.String ?  
             str.length() == 0 :
                    str.length == 0);
  }
  
  function editAccountForm(form) {
      var model = {accountForm: accountForm,
                   account: accountForm.account,
                   categoryList: categoryList, 
                   username: accountForm.account.userid,
                   password: "",
                   password2: ""};
      form.setModel(model);
      form.sendView("view/jxforms/EditUserInformation.xml", 
                    function(form) {
          if (empty(model.username)) {
              form.addViolation("/userName", "User ID is required");
          } else {
            if (empty(model.password)) {
                form.addViolation("/password", "Password is required");
            } else if (model.password != model.password2) {
                form.addViolation("/password2", "Passwords don't match");
            }
          }
      });
      form.sendView("view/jxforms/EditAccountInformation.xml", 
                    function(form) {
          if (empty(account.firstName)) {
              form.addViolation("/account/firstName", "First name is required");
          }
          if (empty(account.lastName)) {
              form.addViolation("/account/lastName", "Last name is required");
          }
          if (!validateEmail(account.email)) {
              form.addViolation("/account/email", "Email address is invalid");
          }
          try {
              validateZIP(account.zip);
          } catch (e) {
              form.addViolation("/account/zip", e);
          }
  
      });
      form.sendView("view/jxforms/EditProfileInformation.xml"); 
      form.finish();
      index();
  }
  
  // Search
  
  function searchProducts() {
      var keyword = cocoon.request.get("keyword");
      if (empty(keyword)) {
          cocoon.sendPage("/view/Error" + EXT, {
             view: VIEW,
             message: "Please enter a keyword to search for, then press the search button"
          });
          return;
      }
      var skipResults = 0;
      var maxResults = 3;
      while (true) {
          var result = 
              getPetStore().searchProductList(keyword, skipResults,
                                              maxResults);
          cocoon.sendPageAndWait("/view/SearchProducts" + EXT, {
                          view: VIEW,
                          searchResultsProductList: result.rows,
                          firstPage: skipResults == 0,
                          lastPage: !result.isLimitedByMaxRows
          });
          var page = cocoon.request.get("page");
          if (page == "previous") {
              if (skipResults != 0) {
                  skipResults -= maxResults;
              }
          } else if (page == "next") {
              if (!result.isLimitedByMaxRows) {
                  skipResults += result.rowCount;
              }
          }
      }
  }
  
  // Checkout
  
  function checkout() {
      var cartItems = [];
      for (var i in cartForm.cart.cartItems) {
          var cartItem = cartForm.cart.cartItems[i];
          cartItems.push(cartItem);
      }
      cocoon.sendPageAndWait("/view/Checkout" + EXT, {
                      view: VIEW,
                      accountForm: accountForm,
                      cartForm: cartForm, 
                      fmt: fmt,
                      cartItems: cartItems
      });
      if (accountForm.signOn) {
          signOn();
      }
      var orderForm = new OrderForm();
      orderForm.initOrder(accountForm, cartForm);
      var order = orderForm.order;
      var valid = false;
      while (!valid) {
          cocoon.sendPageAndWait("/view/NewOrderForm" + EXT, { 
                          accountForm: accountForm,
                          view: VIEW,
                          fmt: fmt,
                          creditCardTypes: ["Visa", "MasterCard", "American Express"],
                          order: order});
          var shippingAddressRequired = cocoon.request.get("shippingAddressRequired");
          if (shippingAddressRequired) {
              cocoon.sendPageAndWait("/view/ShippingForm" + EXT,
                              {order: order, fmt: fmt, accountForm: accountForm});
          }
          // fix me !! do real validation
          valid = true;
      }
      cocoon.sendPageAndWait("/view/ConfirmOrder" + EXT,
                      {accountForm: accountForm,
                       view: VIEW, order: order, fmt: fmt});
      
      var oldCartForm = cartForm;
      cartForm = new CartForm();
      cocoon.sendPage("/view/ViewOrder" + EXT,
               {view: VIEW, order: order, 
                accountForm: accountForm,
                itemList: order.lineItems, 
                fmt: fmt});
  }
  
  function listOrders() {
  }
  
  function viewOrder() {
      var webservice = cocoon.request.get("webservice");
      if (webservice) {
      }
  }
  
  
  
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/flow/PetStoreImpl.js
  
  Index: PetStoreImpl.js
  ===================================================================
  /*
  
   ============================================================================
                     The Apache Software License, Version 1.1
   ============================================================================
  
   Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
  
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
  
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
  
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
  
   4. The names "Apache Cocoon" and  "Apache Software Foundation" must  not  be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      apache@apache.org.
  
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
  
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
  */
  
  cocoon.load("resource://org/apache/cocoon/components/flow/javascript/Database.js");
  
  function OrderForm() {
      this.order = new Order();
      this.shippingAddressRequired = false;        
      this.confirmed = false;
  }
  
  OrderForm.prototype.initOrder = function(accountForm, cartForm) {
      var acct = accountForm.account;
      this.order.username = accountForm.username;
      this.order.orderDate = new java.util.Date();
      this.order.shipAddress = acct.addr1;
      this.order.shipAddress2 = acct.addr2;
      this.order.shipCity = acct.city;
      this.order.shipState = acct.state;
      this.order.shipZip = acct.zip;
      this.order.shipCountry = acct.country;
      this.order.billAddress = acct.addr1;
      this.order.billAddress2 = acct.addr2;
      this.order.billCity = acct.city;
      this.order.billState = acct.state;
      this.order.billZip = acct.zip;
      this.order.billCountry = acct.country;
      this.order.totalPrice = cartForm.cart.subTotal;
      this.order.billToFirstName= acct.firstName;
      this.order.billToLastName= acct.lastName;
      this.order.shipToFirstName= acct.firstName;
      this.order.shipToLastName= acct.lastName;
      this.order.shipDate = new java.util.Date();
      for (var i in cartForm.cart.cartItems) {
          var cartItem = cartForm.cart.cartItems[i];
          this.order.lineItems.push(cartItem);
      }
  }
  
  function Order() {
      this.orderId = 0;
      this.username= "";
      this.orderDate =null;
      this.shipAddress1= "";
      this.shipAddress2= "";
      this.shipCity= "";
      this.shipState= "";
      this.shipZip= "";
      this.shipCountry= "";
      this.billAddress1= "";
      this.billAddress2= "";
      this.billCity= "";
      this.billState= "";
      this.billZip= "";
      this.billCountry= "";
      this.courier= "";
      this.totalPrice= 0;
      this.billToFirstName= "";
      this.billToLastName= "";
      this.shipToFirstName= "";
      this.shipToLastName= "";
      this.creditCard= "";
      this.expiryDate= "";
      this.cardType= "";
      this.locale= "";
      this.status= "";
      this.lineItems = [];
  }
  
  function Account() {
      this.username ="";
      this.password = "";
      this.email = "";
      this.firstName = "";
      this.lastName = "";
      this.status = "";
      this.address1 = "";
      this.address2= "";
      this.city= "";
      this.state= "";
      this.zip= "";
      this.country= "";
      this.phone= "";
      this.favouriteCategoryId= "";
      this.languagePreference= "";
      this.listOption= false;
      this.bannerOption= false;
      this.bannerName= "";
  }
  
  function AccountForm(username, password) {
      this.username = username;
      this.password = password;
      this.signOn = true;
  }
  
  function CartItem(cart, item) {
      this.cart = cart;
      this.item = item;
      this.quantity = 1
      this.listPrice = Number(item.listPrice);
      cart.subTotal += this.listPrice;
  }
  
  CartItem.prototype.updateQuantity = function(newQuantity) {
      var delta = newQuantity - this.quantity;
      this.cart.subTotal += (this.item.listPrice * delta);
      this.quantity = newQuantity;
  }
  
  function Cart() {
      this.cartItems = {};
      this.numberOfItems = 0;
      this.subTotal = 0;
  }
  
  Cart.prototype.addItem = function(item) {
      if (!(item.itemId in this.cartItems)) {
          this.cartItems[item.itemId] = new CartItem(this, item);
          this.numberOfItems++;
      } else {
          var cartItem;
          cartItem = this.cartItems[item.itemId];
          cartItem.updateQuantity(cartItem.quantity + 1);
      }
  }
  
  Cart.prototype.removeItem = function(item) {
      if (item.itemId in this.cartItems) {
          this.numberOfItems--;
          var cartItem = this.cartItems[item.itemId];
          delete this.cartItems[item.itemId];
          this.subTotal -= (cartItem.quantity * cartItem.listPrice);
      }
  }
  
  function CartForm() {
      this.cart = new Cart();
  }
  
  var DROP_SCRIPT = 
      "drop index productCat;" +
      "drop index productName;" +
      "drop index itemProd;" +
      "" +
      "drop table lineitem;" +
      "drop table orderstatus;" +
      "drop table orders;" +
      "drop table bannerdata;" +
      "drop table profile;" +
      "drop table signon;" +
      "drop table inventory;" +
      "drop table item;" +
      "drop table product;" +
      "drop table account;" +
      "drop table category;" +
      "drop table supplier;" +
      "drop table sequence;";
  
  var CREATE_SCRIPT = 
  "" +
  "create table supplier (" +
  "    suppid int not null," +
  "    name varchar(80) null," +
  "    status varchar(2) not null," +
  "    addr1 varchar(80) null," +
  "    addr2 varchar(80) null," +
  "    city varchar(80) null," +
  "    state varchar(80) null," +
  "    zip varchar(5) null," +
  "    phone varchar(80) null," +
  "    constraint pk_supplier primary key (suppid)" +
  ");" +
  "" +
  "create table signon (" +
  "    username varchar(25) not null," +
  "    password varchar(25)  not null," +
  "    constraint pk_signon primary key (username)" +
  ");" +
  "" +
  "create table account (" +
  "    userid varchar(80) not null," +
  "    email varchar(80) not null," +
  "    firstname varchar(80) not null," +
  "    lastname varchar(80) not null," +
  "    status varchar(2)  null," +
  "    addr1 varchar(80) not null," +
  "    addr2 varchar(40) null," +
  "    city varchar(80) not  null," +
  "    state varchar(80) not null," +
  "    zip varchar(20) not null," +
  "    country varchar(20) not null," +
  "    phone varchar(80) not null," +
  "    constraint pk_account primary key (userid)" +
  ");" +
  "" +
  "create table profile (" +
  "    userid varchar(80) not null," +
  "    langpref varchar(80) not null," +
  "    favcategory varchar(30)," +
  "    mylistopt bit," +
  "    banneropt bit" +
      //",    constraint pk_profile primary key (userid)" +
  ");" +
  "" +
  "create table bannerdata (" +
  "    favcategory varchar(80) not null," +
  "    bannername varchar(255)  null" +
      //"    ,constraint pk_bannerdata primary key (favcategory)" +
  ");" +
  "" +
  "create table orders (" +
  "      orderid int not null," +
  "      userid varchar(80) not null," +
  "      orderdate date not null," +
  "      shipaddr1 varchar(80) not null," +
  "      shipaddr2 varchar(80) null," +
  "      shipcity varchar(80) not null," +
  "      shipstate varchar(80) not null," +
  "      shipzip varchar(20) not null," +
  "      shipcountry varchar(20) not null," +
  "      billaddr1 varchar(80) not null," +
  "      billaddr2 varchar(80)  null," +
  "      billcity varchar(80) not null," +
  "      billstate varchar(80) not null," +
  "      billzip varchar(20) not null," +
  "      billcountry varchar(20) not null," +
  "      courier varchar(80) not null," +
  "      totalprice decimal(10,2) not null," +
  "      billtofirstname varchar(80) not null," +
  "      billtolastname varchar(80) not null," +
  "      shiptofirstname varchar(80) not null," +
  "      shiptolastname varchar(80) not null," +
  "      creditcard varchar(80) not null," +
  "      exprdate varchar(7) not null," +
  "      cardtype varchar(80) not null," +
  "      locale varchar(80) not null" +
      //"      ,constraint pk_orders primary key (orderid)" +
  ");" +
  "" +
  "create table orderstatus (" +
  "      orderid int not null," +
  "      linenum int not null," +
  "      timestamp date not null, " +
  "      status varchar(2) not null" +
      //"      ,constraint pk_orderstatus primary key (orderid, linenum)" +
  ");" +
  "" +
  "create table lineitem (" +
  "      orderid int not null," +
  "      linenum int not null," +
  "      itemid varchar(10) not null," +
  "      quantity int not null," +
  "      unitprice decimal(10,2) not null" +
      //"      ,constraint pk_lineitem primary key (orderid, linenum)" +
  ");" +
  "" +
  "create table category (" +
  "        catid varchar(10) not null," +
  "        name varchar(80) null," +
  "        descn varchar(255) null" +
      //",        constraint pk_category primary key (catid)" +
  ");" +
  "" +
  "create table product (" +
  "    productid varchar(10) not null," +
  "    category varchar(10) not null," +
  "    name varchar(80) null," +
  "    descn varchar(255) null" +
      //",    constraint pk_product primary key (productid)," +
      //"        constraint fk_product_1 foreign key (category)" +
      //"        references category (catid)" +
  ");" +
  "" +
  "create index productCat on product (category);" +
  "create index productName on product (name);" +
  "" +
  "create table item (" +
  "    itemid varchar(10) not null," +
  "    productid varchar(10) not null," +
  "    listprice decimal(10,2) null," +
  "    unitcost decimal(10,2) null," +
  "    supplier int null," +
  "    status varchar(2) null," +
  "    attr1 varchar(80) null," +
  "    attr2 varchar(80) null," +
  "    attr3 varchar(80) null," +
  "    attr4 varchar(80) null," +
  "    attr5 varchar(80) null" +
      //",    constraint pk_item primary key (itemid)," +
      //"        constraint fk_item_1 foreign key (productid)" +
      //"        references product (productid)," +
      //"        constraint fk_item_2 foreign key (supplier)" +
      //"        references supplier (suppid)" +
  ");" +
  "" +
  "create index itemProd on item (productid);" +
  "" +
  "create table inventory (" +
  "    itemid varchar(10) not null," +
  "    qty int not null" +
      //",    constraint pk_inventory primary key (itemid)" +
  ");" +
  "" +
  "CREATE TABLE sequence" +
  "(" +
  "    name               varchar(30)  not null," +
  "    nextid             int          not null" +
      //"    ,constraint pk_sequence primary key (name)" +
  ");" +
  "";
  
  function PetStore(poolId) {
      this.poolId = poolId;
      this.hsql = null;
      this.populate();
  }
  
  PetStore.prototype.getConnection = function(id) {
      if (true) {
          // temporary hack to avoid requiring datasource config in cocoon.xconf
          java.lang.Class.forName("org.hsqldb.jdbcDriver");
          var jdbc = java.sql.DriverManager.getConnection("jdbc:hsqldb:.", "sa", "")
          var conn = new Database(jdbc);
          if (this.hsql == null) {
              // keep hsql in-memory database alive
              this.hsql = java.sql.DriverManager.getConnection("jdbc:hsqldb:.", "sa", "");
          }
          return conn;
      } else {
          // lookup datasource in cocoon.xconf
          return Database.getConnection(id);
      }
  }
  
  PetStore.prototype.populate = function() {
      var conn = this.getConnection(this.poolId);
      try {
          conn.update(CREATE_SCRIPT);
      } catch (ignored) {
          conn.close();
          return;
      }
      //conn.update("INSERT INTO sequence VALUES('Order', 1);");
  
      conn.update("INSERT INTO signon VALUES('j2ee','j2ee');");
      conn.update("INSERT INTO signon VALUES('ACID','ACID');");
  
      conn.update("INSERT INTO account VALUES('j2ee','yourname@yourdomain.com','ABC', 'XYX', 'OK', '901 San Antonio Road', 'MS UCUP02-206', 'Palo Alto', 'CA', '94303', 'USA',  '555-555-5555');");
      conn.update("INSERT INTO account VALUES('ACID','acid@yourdomain.com','ABC', 'XYX', 'OK', '901 San Antonio Road', 'MS UCUP02-206', 'Palo Alto', 'CA', '94303', 'USA',  '555-555-5555');");
  
      conn.update("INSERT INTO profile VALUES('j2ee','english','DOGS',true,true);");
      conn.update("INSERT INTO profile VALUES('ACID','english','CATS',true,true);");
  
      conn.update("INSERT INTO bannerdata VALUES ('FISH','<image src=\"images/banner_fish.gif\">');");
      conn.update("INSERT INTO bannerdata VALUES ('CATS','<image src=\"images/banner_cats.gif\">');");
      conn.update("INSERT INTO bannerdata VALUES ('DOGS','<image src=\"images/banner_dogs.gif\">');");
      conn.update("INSERT INTO bannerdata VALUES ('REPTILES','<image src=\"images/banner_reptiles.gif\">');");
      conn.update("INSERT INTO bannerdata VALUES ('BIRDS','<image src=\"images/banner_birds.gif\">');");
      conn.update("INSERT INTO category VALUES ('FISH','Fish','<image src=\"images/fish_icon.gif\"><font size=\"5\" color=\"blue\"> Fish</font>');");
      
      conn.update("INSERT INTO category VALUES ('DOGS','Dogs','<image src=\"images/dogs_icon.gif\"><font size=\"5\" color=\"blue\"> Dogs</font>');");
      conn.update("INSERT INTO category VALUES ('REPTILES','Reptiles','<image src=\"images/reptiles_icon.gif\"><font size=\"5\" color=\"blue\"> Reptiles</font>');");
      conn.update("INSERT INTO category VALUES ('CATS','Cats','<image src=\"images/cats_icon.gif\"><font size=\"5\" color=\"blue\"> Cats</font>');");
      conn.update("INSERT INTO category VALUES ('BIRDS','Birds','<image src=\"images/birds_icon.gif\"><font size=\"5\" color=\"blue\"> Birds</font>');");
  
      conn.update("INSERT INTO product VALUES ('FI-SW-01','FISH','Angelfish','<image src=\"images/fish1.jpg\">Salt Water fish from Australia');");
      conn.update("INSERT INTO product VALUES ('FI-SW-02','FISH','Tiger Shark','<image src=\"images/fish4.gif\">Salt Water fish from Australia');");
      conn.update("INSERT INTO product VALUES ('FI-FW-01','FISH', 'Koi','<image src=\"images/fish3.gif\">Fresh Water fish from Japan');");
      conn.update("INSERT INTO product VALUES ('FI-FW-02','FISH', 'Goldfish','<image src=\"images/fish2.gif\">Fresh Water fish from China');");
      conn.update("INSERT INTO product VALUES ('K9-BD-01','DOGS','Bulldog','<image src=\"images/dog2.gif\">Friendly dog from England');");
      conn.update("INSERT INTO product VALUES ('K9-PO-02','DOGS','Poodle','<image src=\"images/dog6.gif\">Cute dog from France');");
      conn.update("INSERT INTO product VALUES ('K9-DL-01','DOGS', 'Dalmation','<image src=\"images/dog5.gif\">Great dog for a Fire Station');");
      conn.update("INSERT INTO product VALUES ('K9-RT-01','DOGS', 'Golden Retriever','<image src=\"images/dog1.gif\">Great family dog');");
      conn.update("INSERT INTO product VALUES ('K9-RT-02','DOGS', 'Labrador Retriever','<image src=\"images/dog5.gif\">Great hunting dog');");
      conn.update("INSERT INTO product VALUES ('K9-CW-01','DOGS', 'Chihuahua','<image src=\"images/dog4.gif\">Great companion dog');");
      conn.update("INSERT INTO product VALUES ('RP-SN-01','REPTILES','Rattlesnake','<image src=\"images/lizard3.gif\">Doubles as a watch dog');");
      conn.update("INSERT INTO product VALUES ('RP-LI-02','REPTILES','Iguana','<image src=\"images/lizard2.gif\">Friendly green friend');");
      conn.update("INSERT INTO product VALUES ('FL-DSH-01','CATS','Manx','<image src=\"images/cat3.gif\">Great for reducing mouse populations');");
      conn.update("INSERT INTO product VALUES ('FL-DLH-02','CATS','Persian','<image src=\"images/cat1.gif\">Friendly house cat, doubles as a princess');");
      conn.update("INSERT INTO product VALUES ('AV-CB-01','BIRDS','Amazon Parrot','<image src=\"images/bird4.gif\">Great companion for up to 75 years');");
      conn.update("INSERT INTO product VALUES ('AV-SB-02','BIRDS','Finch','<image src=\"images/bird1.gif\">Great stress reliever');");
  
      conn.update("INSERT INTO supplier VALUES (1,'XYZ Pets','AC','600 Avon Way','','Los Angeles','CA','94024','212-947-0797');");
      conn.update("INSERT INTO supplier VALUES (2,'ABC Pets','AC','700 Abalone Way','','San Francisco ','CA','94024','415-947-0797');");
  
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-1','FI-SW-01',16.50,10.00,1,'P','Large');");
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-2','FI-SW-01',16.50,10.00,1,'P','Small');");
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-3','FI-SW-02',18.50,12.00,1,'P','Toothless');");
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-4','FI-FW-01',18.50,12.00,1,'P','Spotted');");
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-5','FI-FW-01',18.50,12.00,1,'P','Spotless');");
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-6','K9-BD-01',18.50,12.00,1,'P','Male Adult');");
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-7','K9-BD-01',18.50,12.00,1,'P','Female Puppy');");
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-8','K9-PO-02',18.50,12.00,1,'P','Male Puppy');");
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-9','K9-DL-01',18.50,12.00,1,'P','Spotless Male Puppy');");
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-10','K9-DL-01',18.50,12.00,1,'P','Spotted Adult Female');");
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-11','RP-SN-01',18.50,12.00,1,'P','Venomless');");
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-12','RP-SN-01',18.50,12.00,1,'P','Rattleless');");
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-13','RP-LI-02',18.50,12.00,1,'P','Green Adult');");
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-14','FL-DSH-01',58.50,12.00,1,'P','Tailless');");
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-15','FL-DSH-01',23.50,12.00,1,'P','With tail');");
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-16','FL-DLH-02',93.50,12.00,1,'P','Adult Female');");
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-17','FL-DLH-02',93.50,12.00,1,'P','Adult Male');");
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-18','AV-CB-01',193.50,92.00,1,'P','Adult Male');");
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-19','AV-SB-02',15.50, 2.00,1,'P','Adult Male');");
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-20','FI-FW-02',5.50, 2.00,1,'P','Adult Male');");
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-21','FI-FW-02',5.29, 1.00,1,'P','Adult Female');");
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-22','K9-RT-02',135.50, 100.00,1,'P','Adult Male');");
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-23','K9-RT-02',145.49, 100.00,1,'P','Adult Female');");
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-24','K9-RT-02',255.50, 92.00,1,'P','Adult Male');");
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-25','K9-RT-02',325.29, 90.00,1,'P','Adult Female');");
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-26','K9-CW-01',125.50, 92.00,1,'P','Adult Male');");
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-27','K9-CW-01',155.29, 90.00,1,'P','Adult Female');");
      conn.update("INSERT INTO  item (itemid, productid, listprice, unitcost, supplier, status, attr1) VALUES('EST-28','K9-RT-01',155.29, 90.00,1,'P','Adult Female');");
  
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-1',10000);");
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-2',10000);");
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-3',10000);");
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-4',10000);");
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-5',10000);");
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-6',10000);");
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-7',10000);");
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-8',10000);");
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-9',10000);");
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-10',10000);");
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-11',10000);");
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-12',10000);");
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-13',10000);");
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-14',10000);");
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-15',10000);");
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-16',10000);");
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-17',10000);");
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-18',10000);");
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-19',10000);");
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-20',10000);");
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-21',10000);");
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-22',10000);");
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-23',10000);");
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-24',10000);");
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-25',10000);");
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-26',10000);");
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-27',10000);");
      conn.update("INSERT INTO inventory (itemid, qty ) VALUES ('EST-28',10000);");
      conn.close();
  }
  
  PetStore.prototype.getCategory = function(catId) {
      var conn = this.getConnection(this.poolId);
      var result = conn.query("select * from CATEGORY where CATID = '"+catId + "'");
      conn.close();
      return result.rows[0];
  }
  
  PetStore.prototype.getCategoryList = function() {
      var conn = this.getConnection(this.poolId);
      var result = conn.query("select * from CATEGORY");
      conn.close();
      return result.rows;
  }
  
  PetStore.prototype.getItemListByProduct = function(prodId) {
      var conn = this.getConnection(this.poolId);
      var result = conn.query("select * from ITEM where PRODUCTID = ?", [prodId]);
      
      conn.close();
      return result;
  }
  
  PetStore.prototype.getItem = function(itemId) {
      print("getItem: " + itemId);
      var conn = this.getConnection(this.poolId);
      var result = conn.query("select * from ITEM item, INVENTORY inv where item.ITEMID = inv.ITEMID and item.ITEMID = ?", [itemId]);
      conn.close();
      result.rows[0].product = this.getProduct(result.rows[0].productId);
      return result.rows[0];
  }
  
  PetStore.prototype.getAccount = function(username, password) {
      var conn = this.getConnection(this.poolId);
      var result = conn.query("select * from ACCOUNT, PROFILE, SIGNON, BANNERDATA where ACCOUNT.USERID = ? and SIGNON.USERNAME = ACCOUNT.USERID and PROFILE.USERID = ACCOUNT.USERID and PROFILE.FAVCATEGORY = BANNERDATA.FAVCATEGORY", [username]);
      
      var record = result.rows[0];
      conn.close();
      return record;
  }
  
  PetStore.prototype.getProduct = function(key, skipResults, maxResults) {
      var conn = this.getConnection(this.poolId);
      var result = conn.query("select * from PRODUCT where PRODUCTID = ?", [key],
                              skipResults, maxResults);
      
      conn.close();
      return result.rows[0];
  }
  
  PetStore.prototype.getProductListByCategory = function(key, skipResults, maxResults) {
      var conn = this.getConnection(this.poolId);
      var result = conn.query("select * from PRODUCT where CATEGORY = ?", [key], 
                              skipResults, maxResults);
      conn.close();
      return result;
  }
  
  PetStore.prototype.getProductRowCountByCategory = function(key) {
      var conn = this.getConnection(this.poolId);
      var rs = conn.query("select count(*) as ROWCOUNT from PRODUCT where CATEGORY = ?",
                          [key]);
      var result = rs.rows[0].ROWCOUNT;
      conn.close();
      return Number(result);
  }
  
  PetStore.prototype.getItemRowCountByProduct = function(key) {
      var conn = this.getConnection(this.poolId);
      var rs = conn.query("select count(*) as ROWCOUNT from ITEM where PRODUCTID = ?",
                          [key]);
      var result = rs.rows[0].ROWCOUNT;
      conn.close();
      return Number(result);
  }
  
  PetStore.prototype.searchProductList = function(key, skipResults, maxResults) {
      var conn = this.getConnection(this.poolId);
      key = "%" + key + "%";
      var result = conn.query("select * from PRODUCT where lower(name) like ? or lower(category) like ? or lower(descn) like ?", [key, key, key], skipResults, maxResults);
      conn.close();
      return result;
  }
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/conf/petstore.xsamples
  
  Index: petstore.xsamples
  ===================================================================
  <?xml version="1.0"?>
  
  <xsamples xpath="/samples" unless="group[@name='Petstore']">
  
    <group name="Petstore">
      <sample name="Flowscript version" href="petstore/">
        The Cocoon flowscript version of the J2EE PetStore.
      </sample>
    </group>
    
  </xsamples>
  
  
  
  1.1                  cocoon-2.1/src/blocks/petstore/samples/sitemap.xmap
  
  Index: sitemap.xmap
  ===================================================================
  <?xml version="1.0"?>
  
  <map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
  
    <!-- =========================== Components ================================ -->
    <map:components> 
      <map:transformers default="xslt">
        <map:transformer name="jx" src="org.apache.cocoon.transformation.JXTemplateTransformer" logger="jx.sitemap.transformer"/>
      </map:transformers>
      <map:generators default="file">
          <map:generator label="content,data" logger="sitemap.generator.velocity" name="velocity" src="org.apache.cocoon.generation.FlowVelocityGenerator"/>
          <map:generator label="content,data" logger="sitemap.generator.jx" name="jx" src="org.apache.cocoon.generation.JXTemplateGenerator"/>
        <map:generator name="jxforms" src="org.apache.cocoon.generation.JXFormsGenerator" logger="sitemap.generator.jxforms"/>
      </map:generators>
      <map:flow-interpreters default="javascript"/>
      <map:serializers default="html"/>
      <map:matchers default="wildcard"/>
    </map:components>
  
  
  <!-- =========================== Views =================================== -->
  
  <!--
    The debug view can be used to output an intermediate 
    snapshot of the pipeline.
    Pass cocoon-view=debug as a URL parameter to see
    the pipeline output produced by the transofrmer
    labeled "debug". You can move the label to different
    transformers to understand each processing
    stage better.
  -->
  <map:views>
    <map:view name="debug" from-label="debug">
      <map:serialize type="xml"/>
    </map:view>
    <map:view name="debug1" from-label="debug1">
      <map:serialize type="xml"/>
    </map:view>
    <map:view name="debug2" from-label="debug2">
      <map:serialize type="xml"/>
    </map:view>
    <map:view name="xml" from-label="xml">
      <map:serialize type="xml"/>
    </map:view>
  </map:views>
  
    <!-- =========================== Resources ================================= -->
  
    <map:resources>
    </map:resources>
  
    <!-- =========================== Pipelines ================================= -->
      <map:flow language="javascript">
        <map:script src="flow/PetStoreImpl.js"/>
        <map:script src="flow/petstore.js"/>
      </map:flow>
    <map:pipelines> 
  
      <map:pipeline>
        <map:match pattern="*.kont">
          <map:call continuation="{1}"/> <!-- 
                 This handles sendPage*() continuations.
             -->
        </map:match>
        <map:match pattern="*.do">
          <map:call function="main">
            <map:parameter name="page" value="{1}"/>
          </map:call>
        </map:match>
        <map:match pattern="petstore"> 
          <map:call function="jxForm"/> <!-- 
                Without parameters jxForm() handles continuations:
  	      The pattern I'm matching here, "petstore", must match the value 
                of the "action" attribute in the view's <xf:submit> element
             -->
        </map:match>
        <map:match pattern="">
          <map:call function="index"/>
        </map:match>
        <map:match pattern="editAccount.form">
          <map:call function="jxForm">
            <map:parameter name="function" value="editAccountForm"/>
  	  <map:parameter name="id" value="petstore-edit-account"/> <!--
                    The value I supply here, "petstore-edit-account", must match 
                    the "id" attribute of the view's <xf:form> element
               -->
            <map:parameter name="validator-schema-ns"/> <!-- no validator -->
            <map:parameter name="validator-schema"/> <!-- no validator -->
            <map:parameter name="scope" value="request"/>
          </map:call>
        </map:match>
  
        <map:match pattern="view/jxforms/*.xml">
  	      <!-- original JXForms document -->
  	      <map:generate type="jxforms" src="view/jxforms/{1}.xml"/>
  
  	      <map:transform type="xalan" src="stylesheets/form2html.xsl"  label="debug1"/>
  
  	      <map:transform type="xalan" src="../jxforms/stylesheets/jxforms2html.xsl" />
  
  
  	      <map:transform type="xalan" src="stylesheets/site2html.xsl"  label="debug1"/>
  
  	      <map:serialize type="html" />
  	</map:match>	      
      </map:pipeline>
     <map:pipeline>
       <map:match pattern="view/*.xsp">
          <map:generate src="view/xsp/{1}.xsp" type="serverpages"/>
          <map:transform src="stylesheets/site2html.xsl" />
          <map:serialize type="html"/>
       </map:match>
       <map:match pattern="view/Cart.jxpath">
          <map:generate src="view/jxpath/Cart.xml" type="jx" />
          <map:serialize type="html"/>
       </map:match>
       <map:match pattern="view/*.jxpath">
          <map:generate src="view/jxpath/{1}.xml" type="file" />
          <map:transform type="jx" />
          <map:transform src="stylesheets/site2html.xsl" />
          <map:serialize type="html"/>
       </map:match>
       <map:match pattern="view/Cart.jexl">
          <map:generate src="view/jexl/Cart.xml" type="jx" />
          <map:serialize type="html"/>
       </map:match>
       <map:match pattern="view/*.jexl">
          <map:generate src="view/jexl/{1}.xml" type="jx" />
          <map:transform src="stylesheets/site2html.xsl" />
          <map:serialize type="html"/>
       </map:match>
       <map:match pattern="view/*.vm">
        <map:generate src="view/templates/{1}.vm" type="velocity"/>
        <map:serialize type="html"/>
       </map:match>
     </map:pipeline>
  
     <map:pipeline>
     <map:match pattern="images/*.gif">
      <map:read mime-type="images/gif" src="images/{1}.gif"/>
     </map:match>
     </map:pipeline>
  
    </map:pipelines> 
  </map:sitemap>
  <!-- end of file -->