XSLT Transformations
by Zeki Bayram and Ruhsan Onder 


Listing One

<?xml version="1.0"?> 
<program>
   <vars>
      <var_declare name="fact"> 1 </var_declare>
      <var_declare name="last"> 0 </var_declare>
      <var_declare name="nb"> 5 </var_declare>
   </vars>
   <main>
      <assign varn="last">
         <var_use name="nb"/>
      </assign>
      <while>
         <condition>
            <boolop opname="gt">
               <var_use name="last"/>
               <num> 1</num>
            </boolop>
          </condition>
          <statement_list>
             <assign varn="fact">
                <op opname="*">
                   <var_use name="fact"/>
                   <var_use name="last"/>
                </op>
             </assign>
             <assign varn="last">
                <op opname="-">
                   <var_use name="last"/>
                   <num> 1</num>
                </op>    
             </assign>
          </statement_list>
       </while>
       <end/> <!-- program termination -->
    </main>
</program>


Listing Two

var fact <-- 1
var last <-- 0
var nb   <-- 5
begin
    last <-- nb
     while (last>1) do
       fact <-- fact*last
       last  <-- last-1
     end while
end



1


