home *** CD-ROM | disk | FTP | other *** search
/ Programmer Plus 2007 / Programmer-Plus-2007.iso / Programming / XML Utilities / Professional Programmer XSL IDE / Xselerator25.msi / Data.Cab / F31820_testBuildListWhile.xsl < prev    next >
Encoding:
Extensible Markup Language  |  2002-01-20  |  4.2 KB  |  115 lines

  1. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  2. xmlns:msxsl="urn:schemas-microsoft-com:xslt"
  3. xmlns:pGenerator="pGenerator"
  4. xmlns:pController="pController" 
  5. xmlns:pTakeController="pTakeController" 
  6. xmlns:pTakeController2="pTakeController2" 
  7. xmlns:pTakeController3="pTakeController3" 
  8. exclude-result-prefixes="xsl pGenerator pController 
  9.   pTakeController pTakeController2 pTakeController3" 
  10. >
  11.   <!-- <xsl:import href="buildListWhile.xsl"/> -->
  12.   <xsl:import href="takeWhile.xsl"/> 
  13.   <xsl:import href="take.xsl"/> 
  14.  
  15.    <!-- This transformation must be applied to:
  16.         numList.xml 
  17.     -->
  18.    
  19.   <xsl:output indent="yes" omit-xml-declaration="yes"/>
  20.   
  21.   <pGenerator:pGenerator/>
  22.   <pController:pController/>
  23.   <pTakeController:pTakeController/>
  24.   <pTakeController2:pTakeController2/>
  25.   <pTakeController3:pTakeController3/>
  26.   
  27.   <xsl:variable name="vMyGenerator" select="document('')/*/pGenerator:*[1]"/>
  28.   <xsl:variable name="vMyController" select="document('')/*/pController:*[1]"/>
  29.   <xsl:variable name="vMyTakeController" select="document('')/*/pTakeController:*[1]"/>
  30.   <xsl:variable name="vMyTakeController2" select="document('')/*/pTakeController2:*[1]"/>
  31.   <xsl:variable name="vMyTakeController3" select="document('')/*/pTakeController3:*[1]"/>
  32.   
  33.   <xsl:template match="/">
  34.     buildListWhile Generator: 2 * N, Controller: count <= 10
  35.     <xsl:variable name="v1-10">
  36.       <xsl:call-template name="buildListWhile">
  37.             <xsl:with-param name="pGenerator" select="$vMyGenerator"/>
  38.             <xsl:with-param name="pController" select="$vMyController"/>
  39.       </xsl:call-template>
  40.     </xsl:variable>
  41.     
  42.     <xsl:variable name="vList-1-10" select="msxsl:node-set($v1-10)/*"/>
  43.     
  44.     <xsl:copy-of select="$vList-1-10"/>
  45.     <xsl:text> </xsl:text>
  46.     <xsl:text> </xsl:text>
  47.     
  48.     takeWhile $vList-1-10, Controller: < 15 
  49.     <xsl:call-template name="takeWhile">
  50.       <xsl:with-param name="pList" select="$vList-1-10" />
  51.       <xsl:with-param name="pController" select="$vMyTakeController2"/>
  52.     </xsl:call-template>
  53.     
  54.     <xsl:text> </xsl:text>
  55.     <xsl:text> </xsl:text>
  56.     takeWhile Generator: 2 * N, Controller: < 7 
  57.     <xsl:call-template name="takeWhile">
  58.       <xsl:with-param name="pGenerator" select="$vMyGenerator"/>
  59.       <xsl:with-param name="pController" select="$vMyTakeController"/>
  60.     </xsl:call-template>
  61.  
  62.     <xsl:text> </xsl:text>
  63.     <xsl:text> </xsl:text>
  64.     takeWhile Generator: 2 * N, Controller: count <= 5 
  65.     <xsl:call-template name="takeWhile">
  66.       <xsl:with-param name="pGenerator" select="$vMyGenerator"/>
  67.       <xsl:with-param name="pController" select="$vMyTakeController3"/>
  68.     </xsl:call-template>
  69.  
  70.     <xsl:text> </xsl:text>
  71.     <xsl:text> </xsl:text>
  72.     takeWhile Generator: 2 * N, N=8 
  73.     <xsl:call-template name="take">
  74.       <xsl:with-param name="pGenerator" select="$vMyGenerator"/>
  75.       <xsl:with-param name="pN" select="8"/>
  76.     </xsl:call-template>
  77.  
  78.   </xsl:template>
  79.  
  80.   <xsl:template name="listGenerator" match="*[namespace-uri()='pGenerator']">
  81.      <xsl:param name="pList" select="/.."/>
  82.      <xsl:param name="pParams"/>
  83.      
  84.      <xsl:value-of select="(count($pList) + 1) * 2"/>
  85.   </xsl:template>
  86.   
  87.   <xsl:template name="listController" match="*[namespace-uri()='pController']">
  88.      <xsl:param name="pList" select="/.."/>
  89.      <xsl:param name="pParams"/>
  90.      
  91.      <xsl:if test="count($pList) <= 10">1</xsl:if>
  92.   </xsl:template>
  93.   
  94.   <xsl:template name="takeController" match="*[namespace-uri()='pTakeController']">
  95.      <xsl:param name="pList"/>
  96.      <xsl:param name="pParams"/>
  97.      
  98.      <xsl:if test="$pList[last()] <= 7">1</xsl:if>
  99.   </xsl:template>
  100.  
  101.   <xsl:template name="takeController2" match="*[namespace-uri()='pTakeController2']">
  102.      <xsl:param name="pList"/>
  103.      <xsl:param name="pParams"/>
  104.      
  105.      <xsl:if test="$pList[last()] <= 15">1</xsl:if>
  106.   </xsl:template>
  107.     
  108.   <xsl:template name="takeController3" match="*[namespace-uri()='pTakeController3']">
  109.      <xsl:param name="pList"/>
  110.      <xsl:param name="pParams"/>
  111.      
  112.      <xsl:if test="count($pList) <= 5">1</xsl:if>
  113.   </xsl:template>
  114.     
  115. </xsl:stylesheet>