Re: Simplified and Canonical Form of XForms PO example

Hi Charlie (and all),

I hope we can sell what's on the truck, so to speak, for XForms 1.2. 
Adoption of other expression languages like E4X is XForms 2.0.

However, I have shared your concern about the dollar signs, and it occurs 
to me now that the canonical form I originally wrote, modified with the 
understanding that identified binds create variables, results in the 
interesting circumstance that *both* simplified syntax forms work.  I 
think this is the way out of the woods.

To be clear, the following two alternatives are served by the same 
canonical form (farther below):

Alternative 1 (dollar signs):

<repeat name="row"> 
    <select1 name="Product"> ... 
    <input name="Quantity"> ... 
    <input name="Price"> ... 
    <output name="LineTotal" calculate="$Price * $Quantity"/> 
</repeat> 
<output name="Subtotal" calculate="sum($LineTotal)"/> 
<output name="Tax" calculate="$Subtotal * 0.07"/> 
<output name="Total" calculate="$Subtotal + $Tax"/> 

Alternative 2 (no dollar signs):

<repeat name="order" nodeset="row"> 
    <select1 name="Product"> ... 
    <input name="Quantity"> ... 
    <input name="Price"> ... 
    <output name="LineTotal" calculate="Price * Quantity"/> 
</repeat> 
<output name="Subtotal" calculate="sum(order/row/LineTotal)"/> 
<output name="Tax" calculate="Subtotal * 0.07"/> 
<output name="Total" calculate="Subtotal + Tax"/> 


Canonical Form that supports both:

<model> 
  <instance> 
    <data> 
      <row> 
         <Product>... 
         <Price>... 
         <Quantity>... 
         <LineTotal>... 
      </row> 
      <row> 
         <Product>... 
         <Price>... 
         <Quantity>... 
         <LineTotal>... 
      </row> 
      <Subtotal>... 
      <Tax>... 
      <LineTotal>... 
    </data> 
  </instance> 
 
  <bind id="row" nodeset="row"> 
    <bind id="Product" nodeset="Product"/> 
    <bind id="Price" nodeset="Price"/> 
    <bind id="Quantity" nodeset="Quantity"/> 
    <bind id="LineTotal" nodeset="LineTotal">
       <calculate context=".." value="Either expression works: Price * 
Quantity, $Price * $Quantity "/> 
    </bind>
  </bind> 
  <bind id="Subtotal" nodeset="Subtotal">
     <calculate context=".." value="Either expression works: 
sum(row/LineTotal), sum($LineTotal)"/> 
  </bind>
  <bind id="Tax" nodeset="Tax">
     <calculate context=".." value="Either expression works: Subtotal * 
0.07, $Subtotal * 0.07"/>   
  </bind>
  <bind id="Total" nodeset="Total">
     <calculate context=".." value="Either expression works: Subtotal + 
Tax, $Subtotal + $Tax"/> 
  </bind>
</model> 

John M. Boyer, Ph.D.
Senior Technical Staff Member
Lotus Forms Architect and Researcher
Chair, W3C Forms Working Group
Workplace, Portal and Collaboration Software
IBM Victoria Software Lab
E-Mail: boyerj@ca.ibm.com 

Blog: http://www.ibm.com/developerworks/blogs/page/JohnBoyer
Blog RSS feed: 
http://www.ibm.com/developerworks/blogs/rss/JohnBoyer?flavor=rssdw





Charles F Wiecha <wiecha@us.ibm.com> 
Sent by: public-forms-request@w3.org
03/12/2008 01:20 PM

To
John Boyer/CanWest/IBM@IBMCA
cc
Forms WG (new) <public-forms@w3.org>, public-forms-request@w3.org
Subject
Re: Simplified and Canonical Form of XForms PO example







I like the direction this simplified syntax is taking.  One exception,
however, concerns the "$" notation used in calculate.  I understand that
this is to expose XPath variables with the appropriate evaluation context
to make expressions easy -- avoiding the need for explicit navigation up
and down the implicit data model.

What would the WG think of defining a new non-XPath based attribute
supporting an alternative expression language (perhaps E4X?) that would
avoid the need for this particular bit of ugliness?

Thanks, Charlie

Charles Wiecha
Manager, Multichannel Web Interaction
IBM T.J. Watson Research Center
P.O. Box 704
Yorktown Heights, N.Y.  10598
Phone: (914) 784-6180, T/L 863-6180, Cell: (914) 320-2614
wiecha@us.ibm.com

Received on Saturday, 15 March 2008 01:03:32 UTC