cvs commit: xml-xalan/test/tests/conf/position position77.xsl position01.xsl position02.xml position02.xsl position03.xml position03.xsl position04.xml position04.xsl position05.xml position05.xsl position06.xml position06.xsl position07.xml position07.xsl position08.xml position08.xsl position09.xml position09.xsl position10.xml position10.xsl position11.xml position11.xsl position12.xml position12.xsl position13.xml position13.xsl position14.xml position14.xsl position15.xml position15.xsl position16.xml position16.xsl position17.xml position17.xsl position18.xml position18.xsl position19.xml position19.xsl position20.xml position20.xsl position21.xml position21.xsl position22.xml position22.xsl position23.xml position23.xsl position24.xml position24.xsl position25.xml position25.xsl position26.xml position26.xsl position27.xml position27.xsl position28.xml position28.xsl position29.xml position29.xsl position30.xml position30.xsl position31.xml position31.xsl position32.xml position32.xsl position33.xml position33.xsl position34.xml position34.xsl position35.xml position35.xsl position36.xml position36.xsl position37.xml position37.xsl position38.xml position38.xsl position39.xml position39.xsl position40.xml position40.xsl position41.xml position41.xsl position42.xml position42.xsl position43.xml position43.xsl position44.xml position44.xsl position45.xml position45.xsl position46.xml position46.xsl position47.xml position47.xsl position48.xml position48.xsl position49.xml position49.xsl position50.xml position50.xsl position51.xml position51.xsl position52.xml position52.xsl position53.xml position53.xsl position54.xml position54.xsl position55.xml position55.xsl position56.xml position56.xsl position57.xml position57.xsl position58.xml position58.xsl position59.xml position59.xsl position60.xml position60.xsl position61.xml position61.xsl position62.xml position62.xsl position63.xml position63.xsl position64.xml position64.xsl position65.xml position65.xsl position66.xml position66.xsl position67.xml position67.xsl position68.xml position68.xsl position69.xml position69.xsl position70.xml position70.xsl position71.xml position71.xsl position72.xml position72.xsl position73.xml position73.xsl position74.xml position74.xsl position75.xml position75.xsl position76.xml position76.xsl position77.xml position01.xml

15 Dec 2000 22:37:52 -0000

dmarston    00/12/15 14:37:49

  Added:       test/tests/conf/position position77.xsl position01.xsl
                        position02.xml position02.xsl position03.xml
                        position03.xsl position04.xml position04.xsl
                        position05.xml position05.xsl position06.xml
                        position06.xsl position07.xml position07.xsl
                        position08.xml position08.xsl position09.xml
                        position09.xsl position10.xml position10.xsl
                        position11.xml position11.xsl position12.xml
                        position12.xsl position13.xml position13.xsl
                        position14.xml position14.xsl position15.xml
                        position15.xsl position16.xml position16.xsl
                        position17.xml position17.xsl position18.xml
                        position18.xsl position19.xml position19.xsl
                        position20.xml position20.xsl position21.xml
                        position21.xsl position22.xml position22.xsl
                        position23.xml position23.xsl position24.xml
                        position24.xsl position25.xml position25.xsl
                        position26.xml position26.xsl position27.xml
                        position27.xsl position28.xml position28.xsl
                        position29.xml position29.xsl position30.xml
                        position30.xsl position31.xml position31.xsl
                        position32.xml position32.xsl position33.xml
                        position33.xsl position34.xml position34.xsl
                        position35.xml position35.xsl position36.xml
                        position36.xsl position37.xml position37.xsl
                        position38.xml position38.xsl position39.xml
                        position39.xsl position40.xml position40.xsl
                        position41.xml position41.xsl position42.xml
                        position42.xsl position43.xml position43.xsl
                        position44.xml position44.xsl position45.xml
                        position45.xsl position46.xml position46.xsl
                        position47.xml position47.xsl position48.xml
                        position48.xsl position49.xml position49.xsl
                        position50.xml position50.xsl position51.xml
                        position51.xsl position52.xml position52.xsl
                        position53.xml position53.xsl position54.xml
                        position54.xsl position55.xml position55.xsl
                        position56.xml position56.xsl position57.xml
                        position57.xsl position58.xml position58.xsl
                        position59.xml position59.xsl position60.xml
                        position60.xsl position61.xml position61.xsl
                        position62.xml position62.xsl position63.xml
                        position63.xsl position64.xml position64.xsl
                        position65.xml position65.xsl position66.xml
                        position66.xsl position67.xml position67.xsl
                        position68.xml position68.xsl position69.xml
                        position69.xsl position70.xml position70.xsl
                        position71.xml position71.xsl position72.xml
                        position72.xsl position73.xml position73.xsl
                        position74.xml position74.xsl position75.xml
                        position75.xsl position76.xml position76.xsl
                        position77.xml position01.xml
  Log:
  Copy of tests in Lotus/IBM repository
  
  Revision  Changes    Path
  1.1                  xml-xalan/test/tests/conf/position/position77.xsl
  
  Index: position77.xsl
  ===================================================================
  <?xml version="1.0"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS77 -->
    <!-- Document: http://www.w3.org/TR/xslt -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 5.4 -->
    <!-- AdditionalSpec: 4, 10 and "current node list" in 1 -->
    <!-- Purpose: Test positional indexing in current node list passed
         via apply-templates with select that has predicate. -->
  
  <xsl:template match="metadata">
    <out>
      <xsl:apply-templates select="CLASSIFICATION"/>
      <xsl:text>&#10;====== tickers ======&#10;</xsl:text>
      <xsl:apply-templates select="[EMAIL PROTECTED]'ticker']"/>
      <xsl:text>&#10;====== sectors ======&#10;</xsl:text>
      <xsl:apply-templates select="[EMAIL PROTECTED]'sector']"/>
    </out>
  </xsl:template>
  
  <xsl:template match="keyword">
    <xsl:value-of select="@value"/>
    <xsl:value-of select="position()"/>
    <xsl:value-of select="last()"/>
    <xsl:if test="position()!=last()">,</xsl:if>
  </xsl:template>
  
  <xsl:template match="*">
    <xsl:value-of select="@value"/>
    <xsl:value-of select="position()"/>
    <xsl:value-of select="last()"/>
    <xsl:if test="position()!=last()">,</xsl:if>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position01.xsl
  
  Index: position01.xsl
  ===================================================================
  <?xml version="1.0"?> 
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS01 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'position()' function in direct select. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="position()=1"/>
    </out>
  </xsl:template>
   
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position02.xml
  
  Index: position02.xml
  ===================================================================
  <?xml version="1.0"?> 
  <doc>
    <a>1</a>
    <a>2</a>
    <a>3</a>
    <a>4</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position02.xsl
  
  Index: position02.xsl
  ===================================================================
  <?xml version="1.0"?> 
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS02 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'position()' function with wildcard. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="*[position()=4]"/>
      <xsl:apply-templates/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position03.xml
  
  Index: position03.xml
  ===================================================================
  <?xml version="1.0"?> 
  <doc>
    <a test="true"><num>1</num></a>
    <a><num>1191</num></a>
    <a><num>263</num></a>
    <a test="true"><num>2</num></a>
    <a><num>827</num></a>
    <a><num>256</num></a>
    <a test="true"><num>3</num></a>
    <a test="true"><num>4</num></a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position03.xsl
  
  Index: position03.xsl
  ===================================================================
  <?xml version="1.0"?> 
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS03 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'position()' function anded with attribute test. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="[EMAIL PROTECTED] and position()=8]"/>
    </out>
  </xsl:template>
   
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position04.xml
  
  Index: position04.xml
  ===================================================================
  <?xml version="1.0"?> 
  <doc>
    <a test="true"><num>1</num></a>
    <a><num>1191</num></a>
    <a><num>263</num></a>
    <a test="true"><num>2</num></a>
    <a><num>827</num></a>
    <a><num>256</num></a>
    <a test="true"><num>3</num></a>
    <a test="true"><num>4</num></a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position04.xsl
  
  Index: position04.xsl
  ===================================================================
  <?xml version="1.0"?> 
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS04 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'position()' in 2nd predicate. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="[EMAIL PROTECTED]()=4]/num"/>
    </out>
  </xsl:template>
   
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position05.xml
  
  Index: position05.xml
  ===================================================================
  <?xml version="1.0"?> 
  <doc>
    <a test="true"><num>1</num></a>
    <a><num>5</num></a>
    <a test="false"><num>5</num></a>
    <a test="true"><num>2</num></a>
    <a><num>5</num></a>
    <a test="false"><num>7</num></a>
    <a test="true"><num>3</num></a>
    <a test="true"><num>4</num></a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position05.xsl
  
  Index: position05.xsl
  ===================================================================
  <?xml version="1.0"?> 
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS05 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'position()' when used with xsl:key. -->
  
  <xsl:key name="k" match="a" use="@test"/>
  <xsl:key name="k2" match="a" use="num"/>
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="key('k','true')[position()=4]/num"/>
    </out>
  </xsl:template>
   
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position06.xml
  
  Index: position06.xml
  ===================================================================
  <doc>
    <a test="true"><num>1</num></a>
    <a><num>5</num></a>
    <a test="false"><num>5</num></a>
    <a test="true"><num>2</num></a>
    <a><num>5</num></a>
    <a test="false"><num>5</num></a>
    <a test="true"><num>3</num></a>
    <a test="true"><num>4</num></a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position06.xsl
  
  Index: position06.xsl
  ===================================================================
  <?xml version="1.0"?> 
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS06 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'count()'. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="count(*)"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position07.xml
  
  Index: position07.xml
  ===================================================================
  <?xml version="1.0"?> 
  <doc>
    <a test="true">a</a>
    <a>b</a>
    <a test="false">c</a>
    <a test="true">d</a>
    <a>e</a>
    <a test="false">f</a>
    <a test="true">g</a>
    <a test="false">h</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position07.xsl
  
  Index: position07.xsl
  ===================================================================
  <?xml version="1.0"?> 
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS07 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'last()'. -->
  
  <xsl:key name="k" match="a" use="@test"/>
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="*[last()=position()]"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position08.xml
  
  Index: position08.xml
  ===================================================================
  <?xml version="1.0"?> 
  <doc>
    <a>1</a>
    <a>2</a>
    <a>3</a>
    <a>4</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position08.xsl
  
  Index: position08.xsl
  ===================================================================
  <?xml version="1.0"?> 
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS08 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'position()' function. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:apply-templates/>
    </out>
  </xsl:template>
    
  <xsl:template match="a[position()=4]">
    <xsl:value-of select="."/>
  </xsl:template>
  
  <xsl:template match="a[position()=3]">
    <xsl:value-of select="."/><xsl:text>,</xsl:text>
  </xsl:template>
  
  <xsl:template match="a[position()=2]">
    <xsl:value-of select="."/><xsl:text>,</xsl:text>
  </xsl:template>
  
  <xsl:template match="a[position()=1]">
    <xsl:value-of select="."/><xsl:text>,</xsl:text>
  </xsl:template>
   
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position09.xml
  
  Index: position09.xml
  ===================================================================
  <?xml version="1.0"?> 
  <doc>
    <foo>
      <a><num val="1"/></a>
      <a><num val="2"/></a>
      <a><num val="3"/></a>
    </foo>
    <foo>
      <a><num val="4"/></a>
      <a><num val="5"/></a>
      <a><num val="6"/></a>
    </foo>
    <foo>
      <a><num val="7"/></a>
      <a><num val="8"/></a>
      <a><num val="9"/></a>
    </foo>
    <baz>
      <a><num val="10"/></a>
      <a><num val="11"/></a>
      <a><num val="12"/></a>
    </baz>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position09.xsl
  
  Index: position09.xsl
  ===================================================================
  <?xml version="1.0"?> 
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS09 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 4.1 Node Set Functions -->
    <!-- Purpose: Test of position in predicates, both long and short versions. 
-->
  
  <xsl:template match="doc">
    <out>
      <xsl:apply-templates/>
    </out>
  </xsl:template>
   
  <xsl:template match="foo[3]/a[position()=3]/num/@val">
    <xsl:value-of select="."/><xsl:text>,</xsl:text>
  </xsl:template>
  
  <xsl:template match="foo[3]/a[position()=2]/num/@val">
    <xsl:value-of select="."/><xsl:text>,</xsl:text>
  </xsl:template>
    
  <xsl:template match="foo[3]/a[position()=1]/num/@val">
    <xsl:value-of select="."/><xsl:text>,</xsl:text>
  </xsl:template>
  
  <xsl:template match="foo[2]/a[position()=3]/num/@val">
    <xsl:value-of select="."/><xsl:text>,</xsl:text>
  </xsl:template>
  
  <xsl:template match="foo[2]/a[position()=2]/num/@val">
    <xsl:value-of select="."/><xsl:text>,</xsl:text>
  </xsl:template>
  
  <xsl:template match="foo[2]/a[position()=1]/num/@val">
    <xsl:value-of select="."/><xsl:text>,</xsl:text>
  </xsl:template>
  
  <xsl:template match="foo[1]/a[position()=3]/num/@val">
    <xsl:value-of select="."/><xsl:text>,</xsl:text>
  </xsl:template>
  
  <xsl:template match="foo[1]/a[position()=2]/num/@val">
    <xsl:value-of select="."/><xsl:text>,</xsl:text>
  </xsl:template>
  
  <xsl:template match="foo[1]/a[position()=1]/num/@val">
    <xsl:value-of select="."/><xsl:text>,</xsl:text>
  </xsl:template>
    
  <xsl:template match="a/num">
    <xsl:apply-templates select="@val"/>
  </xsl:template>
  
  <!-- Override default template matching, otherwise the values 10, 11, 12 will 
be displayed -->
  
  <xsl:template match="@val" priority="-1"/>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position10.xml
  
  Index: position10.xml
  ===================================================================
  <?xml version="1.0"?> 
  <doc>
    <foo>
      <a><num val="6"/></a>
      <a><num val="2"/></a>
      <a><num val="4"/></a>
    </foo>
    <foo>
      <a><num val="3"/></a>
      <a><num val="1"/></a>
      <a><num val="5"/></a>
    </foo>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position10.xsl
  
  Index: position10.xsl
  ===================================================================
  <?xml version="1.0"?> 
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS10 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of position() function and sorting. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:for-each select="foo/a/num/@val">
        <xsl:value-of select="position()"/>_<xsl:value-of select="."/>
        <xsl:text> </xsl:text>
      </xsl:for-each>
    Now, sort the data...    
      <xsl:for-each select="foo/a/num/@val">
        <xsl:sort select="."/>
        <xsl:value-of select="position()"/>_<xsl:value-of select="."/>
        <xsl:text> </xsl:text>
      </xsl:for-each>
    </out>
  </xsl:template>
   
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position11.xml
  
  Index: position11.xml
  ===================================================================
  <?xml version="1.0"?> 
  <letters>
    <letter>a</letter>
    <letter>b</letter>
    <letter>c</letter>
    <letter>d</letter>
    <letter>e</letter>
    <letter>f</letter>
  </letters>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position11.xsl
  
  Index: position11.xsl
  ===================================================================
  <?xml version="1.0"?> 
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS11 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of position() and last() functions. -->
  
  <xsl:template match="letters">
    <out>
      <xsl:apply-templates select="letter"/>
    </out>
  </xsl:template>
  
  <xsl:template match="letter">
    <xsl:value-of select="normalize-space(text())"/>
    <xsl:if test="not(position()=last())">
      <xsl:text>, </xsl:text>
    </xsl:if>
  </xsl:template>
   
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position12.xml
  
  Index: position12.xml
  ===================================================================
  <?xml version="1.0"?>
  <doc>
    <p/>
    <p/>
    <p/>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position12.xsl
  
  Index: position12.xsl
  ===================================================================
  <?xml version="1.0"?> 
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS12 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of position() function. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:apply-templates select="p"/>
    </out>
  </xsl:template>
  
  <xsl:template match="p">
    <xsl:value-of select="position()=2"/><xsl:text>,</xsl:text>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position13.xml
  
  Index: position13.xml
  ===================================================================
  <?xml version="1.0"?>
  <doc>
    <p/>
    <p/>
    <p/>
  </doc>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position13.xsl
  
  Index: position13.xsl
  ===================================================================
  <?xml version="1.0"?> 
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS13 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'last()' function. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:apply-templates select="p"/>
    </out>
  </xsl:template>
  
  <xsl:template match="p">
    <xsl:value-of select="last()=3"/><xsl:text>,</xsl:text>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position14.xml
  
  Index: position14.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position14.xsl
  
  Index: position14.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS14 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'last()' function. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="last()=1"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position15.xml
  
  Index: position15.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a>1</a>
    <a>2</a>
    <a>3</a>
    <a>4</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position15.xsl
  
  Index: position15.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS15 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'position()' function. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="a[position()=4]"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position16.xml
  
  Index: position16.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a>1</a>
    <a>2</a>
    <a>3</a>
    <a>4</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position16.xsl
  
  Index: position16.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS16 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'position()' function. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="a[position()=3]"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position17.xml
  
  Index: position17.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a>1</a>
    <a>2</a>
    <a>3</a>
    <a>4</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position17.xsl
  
  Index: position17.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS17 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'position()' function. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="a[position()=1]"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position18.xml
  
  Index: position18.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a>1</a>
    <a>2</a>
    <a>3</a>
    <a>4</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position18.xsl
  
  Index: position18.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS18 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of position() function and a varaible. -->
  
  <xsl:variable name="first" select="1"/>
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="a[position()=$first]"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position19.xml
  
  Index: position19.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a>1</a>
    <a>2</a>
    <a>3</a>
    <a>4</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position19.xsl
  
  Index: position19.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS19 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of positional indexing (shorthand) in select. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="a[4]"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position20.xml
  
  Index: position20.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a>1</a>
    <a>2</a>
    <a>3</a>
    <a>4</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position20.xsl
  
  Index: position20.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS20 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of positional indexing. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="a[3]"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position21.xml
  
  Index: position21.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a>1</a>
    <a>2</a>
    <a>3</a>
    <a>4</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position21.xsl
  
  Index: position21.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS21 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of positional indexing. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="a[1]"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position22.xml
  
  Index: position22.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>A<a>1</a>B<a>2</a>C<a>3</a>D<a>4</a>E</doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position22.xsl
  
  Index: position22.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS22 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of positional indexing on the text() nodes. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="text()[1]"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position23.xml
  
  Index: position23.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>A<a>1</a>B<a>2</a>C<a>3</a>D<a>4</a>E</doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position23.xsl
  
  Index: position23.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS23 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of positional indexing on the text() nodes. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="text()[3]"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position24.xml
  
  Index: position24.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a>1</a>
    <a>2</a>
    <a>3</a>
    <a>4</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position24.xsl
  
  Index: position24.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS24 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'last()' function with current context position. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:for-each select="*">
        <xsl:value-of select="last()=4"/>
        <xsl:text>,</xsl:text>
      </xsl:for-each>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position25.xml
  
  Index: position25.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a>1</a>
    <a>2</a>
    <a>3</a>
    <a>4</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position25.xsl
  
  Index: position25.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS25 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'position()' function with wildcard. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="*[position()=3]"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position26.xml
  
  Index: position26.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a>1</a>
    <a>2</a>
    <a>3</a>
    <a>4</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position26.xsl
  
  Index: position26.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS26 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'position()' function with wildcard. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="*[position()=1]"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position27.xml
  
  Index: position27.xml
  ===================================================================
  <?xml version="1.0"?> 
  <letters>
    <letter>a</letter>
    <letter>b</letter>
    <letter>c</letter>
    <letter>d</letter>
    <letter>e</letter>
    <letter>f</letter>
    <letter>g</letter>
  </letters>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position27.xsl
  
  Index: position27.xsl
  ===================================================================
  <?xml version="1.0"?> 
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS27 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of positional capabilities with choose. -->
  
  <xsl:template match="letters">
    <out>
      <xsl:apply-templates select="letter"/>
    </out>
  </xsl:template>
  
  <xsl:template match="letter">
    <xsl:choose>
      <xsl:when test="position()=1">
        <xsl:text>First: </xsl:text><xsl:value-of 
select="."/><xsl:text>+</xsl:text>
      </xsl:when>
      <xsl:when test="position()=last()">
        <xsl:text>+Last: </xsl:text><xsl:value-of select="."/>
      </xsl:when>
      <xsl:when test="position()=ceiling(last() div 2)">
        <xsl:text>-Middle: </xsl:text><xsl:value-of 
select="."/><xsl:text>-</xsl:text>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="."/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
   
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position28.xml
  
  Index: position28.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a>1</a>
    <a>2</a>
    <a>3</a>
    <a>4</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position28.xsl
  
  Index: position28.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS28 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of positional indexing with wildcard. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="*[4]"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position29.xml
  
  Index: position29.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a>1</a>
    <a>2</a>
    <a>3</a>
    <a>4</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position29.xsl
  
  Index: position29.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS29 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of positional indexing with wildcard. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="*[3]"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position30.xml
  
  Index: position30.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a>1</a>
    <a>2</a>
    <a>3</a>
    <a>4</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position30.xsl
  
  Index: position30.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS30 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of positional indexing with wildcard. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="*[1]"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position31.xml
  
  Index: position31.xml
  ===================================================================
  <?xml version="1.0"?> 
  <items>
    <bracket group="1">left front</bracket>
    <button group="1">momentary</button>
    <button group="1">toggle</button>
    <dial group="1">source select</dial>
    <button group="2">power switch</button>
    <light group="2">main panel</light>
    <light group="2">selector</light>
    <bracket group="1">right front</bracket>
    <bracket group="2">top inner</bracket>
    <dial group="1">output select</dial>
    <dial group="3">frequency</dial>
    <dial group="3">voltage</dial>
    <light group="1">power</light>
    <light group="2">safety</light>
  </items>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position31.xsl
  
  Index: position31.xsl
  ===================================================================
  <?xml version="1.0"?> 
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS31 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of position() with a sibling axis. -->
  
  <xsl:template match="items">
    <out>
      <xsl:apply-templates/>
    </out>
  </xsl:template>
  
  <xsl:template match="sfdhd">
    <xsl:text>Pos</xsl:text><xsl:value-of select="position()"/><xsl:text> 
G</xsl:text><xsl:value-of select="@group"/><xsl:text>- </xsl:text><xsl:value-of 
select="."/>
  </xsl:template>
  
  <xsl:template match="bracket|button|dial|light">
    <xsl:choose>
      <xsl:when test="position()=2"><!-- Have to skip interstitial text -->
        <xsl:text>Group: </xsl:text><xsl:value-of select="@group"/><xsl:text>
       </xsl:text><xsl:value-of select="."/><xsl:text> </xsl:text><xsl:value-of 
select="name(.)"/>
      </xsl:when>
      <xsl:when test="@group != preceding-sibling::*[1]/@group">
        <xsl:text>Group: </xsl:text><xsl:value-of select="@group"/><xsl:text>
       </xsl:text><xsl:value-of select="."/><xsl:text> </xsl:text><xsl:value-of 
select="name(.)"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:text>   </xsl:text><xsl:value-of select="."/><xsl:text> 
</xsl:text><xsl:value-of select="name(.)"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
   
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position32.xml
  
  Index: position32.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a test="true">
  <num>1</num>
  </a>
    <a>
  <num>1191</num>
  </a>
    <a>
  <num>263</num>
  </a>
    <a test="true">
  <num>2</num>
  </a>
    <a>
  <num>827</num>
  </a>
    <a>
  <num>256</num>
  </a>
    <a test="true">
  <num>3</num>
  </a>
    <a test="true">
  <num>4</num>
  </a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position32.xsl
  
  Index: position32.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS32 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'position()' function with wildcard and attribute 
test. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="[EMAIL PROTECTED] and position()=7]"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position33.xml
  
  Index: position33.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a test="true">
  <num>1</num>
  </a>
    <a>
  <num>1191</num>
  </a>
    <a>
  <num>263</num>
  </a>
    <a test="true">
  <num>2</num>
  </a>
    <a>
  <num>827</num>
  </a>
    <a>
  <num>256</num>
  </a>
    <a test="true">
  <num>3</num>
  </a>
    <a test="true">
  <num>4</num>
  </a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position33.xsl
  
  Index: position33.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS33 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'position()' function with wildcard and attribute 
test. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="[EMAIL PROTECTED] and position()=1]"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position34.xml
  
  Index: position34.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a test="true">
  <num>1</num>
  </a>
    <a>
  <num>1191</num>
  </a>
    <a>
  <num>263</num>
  </a>
    <a test="true">
  <num>2</num>
  </a>
    <a>
  <num>827</num>
  </a>
    <a>
  <num>256</num>
  </a>
    <a test="true">
  <num>3</num>
  </a>
    <a test="true">
  <num>4</num>
  </a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position34.xsl
  
  Index: position34.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS34 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'position()' function with wildcard and attribute 
test. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="[EMAIL PROTECTED] and position()=4]"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position35.xml
  
  Index: position35.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a test="true">
  <num>1</num>
  </a>
    <a>
  <num>1191</num>
  </a>
    <a>
  <num>263</num>
  </a>
    <a test="true">
  <num>2</num>
  </a>
    <a>
  <num>827</num>
  </a>
    <a>
  <num>256</num>
  </a>
    <a test="true">
  <num>3</num>
  </a>
    <a test="true">
  <num>4</num>
  </a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position35.xsl
  
  Index: position35.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS35 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'position()' in 2nd predicate. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="[EMAIL PROTECTED]()=3]/num"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position36.xml
  
  Index: position36.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a test="true">
  <num>1</num>
  </a>
    <a>
  <num>1191</num>
  </a>
    <a>
  <num>263</num>
  </a>
    <a test="true">
  <num>2</num>
  </a>
    <a>
  <num>827</num>
  </a>
    <a>
  <num>256</num>
  </a>
    <a test="true">
  <num>3</num>
  </a>
    <a test="true">
  <num>4</num>
  </a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position36.xsl
  
  Index: position36.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS36 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'position()' in 2nd predicate. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="[EMAIL PROTECTED]()=1]/num"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position37.xml
  
  Index: position37.xml
  ===================================================================
  <?xml version="1.0"?> 
  <doc>
    <a>1</a>
    <a>2<a>under2</a>2.5</a>
    <b>3<a>under3</a>3.5</b>
    <b>4<c>under4</c>4.5<a>under4.5</a>4.9</b>
    <b>5<c>5.1<a>under5</a>5.5</c>5.9</b>
    <b>6<c>6.1<d>6.3</d><a>under6.5</a><d>6.7</d>6.8</c>6.9</b>
    <a>7<c>7.1<a>under7</a>7.5</c>7.9</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position37.xsl
  
  Index: position37.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS37 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of position() in a for-each node set. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:for-each select=".//a">
        <xsl:value-of select="position()"/>
        <xsl:text>. </xsl:text>
        <xsl:choose>
          <xsl:when test="count(./*)=0">
            <xsl:value-of select="."/>
          </xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="text()[1]"/>
          </xsl:otherwise>
        </xsl:choose>
        <xsl:text>
  </xsl:text>
      </xsl:for-each>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position38.xml
  
  Index: position38.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a test="true">
  <num>1</num>
  </a>
    <a>
  <num>1191</num>
  </a>
    <a>
  <num>263</num>
  </a>
    <a test="true">
  <num>2</num>
  </a>
    <a>
  <num>827</num>
  </a>
    <a>
  <num>256</num>
  </a>
    <a test="true">
  <num>3</num>
  </a>
    <a test="true">
  <num>4</num>
  </a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position38.xsl
  
  Index: position38.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS38 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of positional indexing (shorthand) in 2nd predicate. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="[EMAIL PROTECTED]/num"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position39.xml
  
  Index: position39.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a test="true">
  <num>1</num>
  </a>
    <a>
  <num>1191</num>
  </a>
    <a>
  <num>263</num>
  </a>
    <a test="true">
  <num>2</num>
  </a>
    <a>
  <num>827</num>
  </a>
    <a>
  <num>256</num>
  </a>
    <a test="true">
  <num>3</num>
  </a>
    <a test="true">
  <num>4</num>
  </a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position39.xsl
  
  Index: position39.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS39 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of positional indexing in 2nd predicate. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="[EMAIL PROTECTED]/num"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position40.xml
  
  Index: position40.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a test="true">
  <num>1</num>
  </a>
    <a>
  <num>1191</num>
  </a>
    <a>
  <num>263</num>
  </a>
    <a test="true">
  <num>2</num>
  </a>
    <a>
  <num>827</num>
  </a>
    <a>
  <num>256</num>
  </a>
    <a test="true">
  <num>3</num>
  </a>
    <a test="true">
  <num>4</num>
  </a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position40.xsl
  
  Index: position40.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS40 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of positional indexing in 2nd predicate. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="[EMAIL PROTECTED]/num"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position41.xml
  
  Index: position41.xml
  ===================================================================
  <?xml version="1.0"?> 
  <doc>
    <a>1<b>under1</b>1.5</a>
    <a>2<b>under2</b>2.5</a>
    <a>3<b>under3</b>3.5<b>under3.5</b>3.9</a>
    <a>4<c>under4</c>4.5<b>under4.5</b>4.9</a>
    <a>5<b>under5</b>5.5<x>under5.5</x>5.9</a>
    <a>6<b>under6</b>6.5<c>under6.5</c>6.9</a>
    <a>7<b>under7</b>7.5</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position41.xsl
  
  Index: position41.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS41 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of position() in a for-each node set involving parent 
axis. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:apply-templates select="a/x"/>
    </out>
  </xsl:template>
  
  <xsl:template match="x">
    <xsl:text>From the x node...
  </xsl:text>
    <xsl:for-each select="../../a/b[1]">
      <xsl:if test="position() &gt;= 2 and position() &lt;= 6">
        <xsl:value-of select="."/>
        <xsl:text>
  </xsl:text>
      </xsl:if>
    </xsl:for-each>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position42.xml
  
  Index: position42.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a test="true">
  <num>1</num>
  </a>
    <a>
  <num>5</num>
  </a>
    <a test="false">
  <num>5</num>
  </a>
    <a test="true">
  <num>2</num>
  </a>
    <a>
  <num>5</num>
  </a>
    <a test="false">
  <num>7</num>
  </a>
    <a test="true">
  <num>3</num>
  </a>
    <a test="true">
  <num>4</num>
  </a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position42.xsl
  
  Index: position42.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS42 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'position()' when used with xsl:key. -->
  
  <xsl:key name="k" match="a" use="@test"/>
  <xsl:key name="k2" match="a" use="num"/>
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="key('k','false')[position()=2]/num"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position43.xml
  
  Index: position43.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a test="true">
  <num>1</num>
  </a>
    <a>
  <num>5</num>
  </a>
    <a test="false">
  <num>5</num>
  </a>
    <a test="true">
  <num>2</num>
  </a>
    <a>
  <num>5</num>
  </a>
    <a test="false">
  <num>7</num>
  </a>
    <a test="true">
  <num>3</num>
  </a>
    <a test="true">
  <num>4</num>
  </a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position43.xsl
  
  Index: position43.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS43 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'position()' when used with xsl:key. -->
  
  <xsl:key name="k" match="a" use="@test"/>
  <xsl:key name="k2" match="a" use="num"/>
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="key('k','true')[position()=1]/num"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position44.xml
  
  Index: position44.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a test="true">
  <num>1</num>
  </a>
    <a>
  <num>5</num>
  </a>
    <a test="false">
  <num>5</num>
  </a>
    <a test="true">
  <num>2</num>
  </a>
    <a>
  <num>5</num>
  </a>
    <a test="false">
  <num>7</num>
  </a>
    <a test="true">
  <num>3</num>
  </a>
    <a test="true">
  <num>4</num>
  </a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position44.xsl
  
  Index: position44.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS44 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'position()' when used with xsl:key. -->
  
  <xsl:key name="k" match="a" use="@test"/>
  <xsl:key name="k2" match="a" use="num"/>
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="key('k','false')[position()=1]/num"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position45.xml
  
  Index: position45.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a test="true">
  <num>1</num>
  </a>
    <a>
  <num>5</num>
  </a>
    <a test="false">
  <num>5</num>
  </a>
    <a test="true">
  <num>2</num>
  </a>
    <a>
  <num>5</num>
  </a>
    <a test="false">
  <num>7</num>
  </a>
    <a test="true">
  <num>3</num>
  </a>
    <a test="true">
  <num>4</num>
  </a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position45.xsl
  
  Index: position45.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS45 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of positional indexing when used with xsl:key. -->
  
  <xsl:key name="k" match="a" use="@test"/>
  <xsl:key name="k2" match="a" use="num"/>
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="key('k','true')[4]/num"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position46.xml
  
  Index: position46.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a test="true">
  <num>1</num>
  </a>
    <a>
  <num>5</num>
  </a>
    <a test="false">
  <num>5</num>
  </a>
    <a test="true">
  <num>2</num>
  </a>
    <a>
  <num>5</num>
  </a>
    <a test="false">
  <num>7</num>
  </a>
    <a test="true">
  <num>3</num>
  </a>
    <a test="true">
  <num>4</num>
  </a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position46.xsl
  
  Index: position46.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS46 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of positional indexing when used with xsl:key. -->
  
  <xsl:key name="k" match="a" use="@test"/>
  <xsl:key name="k2" match="a" use="num"/>
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="key('k','true')[3]/num"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position47.xml
  
  Index: position47.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a test="true">
  <num>1</num>
  </a>
    <a>
  <num>5</num>
  </a>
    <a test="false">
  <num>5</num>
  </a>
    <a test="true">
  <num>2</num>
  </a>
    <a>
  <num>5</num>
  </a>
    <a test="false">
  <num>7</num>
  </a>
    <a test="true">
  <num>3</num>
  </a>
    <a test="true">
  <num>4</num>
  </a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position47.xsl
  
  Index: position47.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS47 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of positional indexing when used with xsl:key. -->
  
  <xsl:key name="k" match="a" use="@test"/>
  <xsl:key name="k2" match="a" use="num"/>
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="key('k','true')[1]/num"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position48.xml
  
  Index: position48.xml
  ===================================================================
  <doc>
    <alpha key="a">
      <z>5</z>
    </alpha>
    <alpha key="b">
      <b>3</b>
      <z>9</z>
    </alpha>
    <alpha key="c">
      <z>2</z>
    </alpha>
    <alpha key="d">
      <z>4</z>
      <z>12</z>
    </alpha>
    <alpha key="e">
      <z>6</z>
      <z>11</z>
      <z>1</z>
    </alpha>
    <alpha key="f">
      <z>3</z>
      <f>8</f>
    </alpha>
    <alpha key="g">
      <z>7</z>
      <g>1</g>
      <z>10</z>
    </alpha>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position48.xsl
  
  Index: position48.xsl
  ===================================================================
  <?xml version="1.0" encoding="iso-8859-1" ?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS48 -->
    <!-- Document: http://www.w3.org/TR/xslt -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 10 -->
    <!-- Purpose: Test position predicate on sort key. -->
  
  <xsl:template match="doc">
    <out>Order should be cfdaegb...
      <xsl:for-each select="alpha">
        <xsl:sort select="z[1]" data-type="number"/>
        <xsl:value-of select="@key"/>
      </xsl:for-each>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position49.xml
  
  Index: position49.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a test="true">
  <num>1</num>
  </a>
    <a>
  <num>5</num>
  </a>
    <a test="false">
  <num>5</num>
  </a>
    <a test="true">
  <num>2</num>
  </a>
    <a>
  <num>5</num>
  </a>
    <a test="false">
  <num>7</num>
  </a>
    <a test="true">
  <num>3</num>
  </a>
    <a test="true">
  <num>4</num>
  </a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position49.xsl
  
  Index: position49.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS49 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of positional indexing when used with xsl:key and 
xsl:apply-templates. -->
  
  <xsl:key name="k" match="a" use="@test"/>
  <xsl:key name="k2" match="a" use="num"/>
  
  <xsl:template match="doc">
    <out>
      <xsl:apply-templates select="key('k','true')[4]/num"/>
    </out>
  </xsl:template>
  
  <xsl:template match="num">
    <B><xsl:value-of select="."/></B>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position50.xml
  
  Index: position50.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a test="true">
  <num>1</num>
  </a>
    <a>
  <num>5</num>
  </a>
    <a test="false">
  <num>5</num>
  </a>
    <a test="true">
  <num>2</num>
  </a>
    <a>
  <num>5</num>
  </a>
    <a test="false">
  <num>7</num>
  </a>
    <a test="true">
  <num>3</num>
  </a>
    <a test="true">
  <num>4</num>
  </a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position50.xsl
  
  Index: position50.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS50 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'position()' when used with xsl:key and 
xsl:apply-templates. -->
  
  <xsl:key name="k" match="a" use="@test"/>
  <xsl:key name="k2" match="a" use="num"/>
  
  <xsl:template match="doc">
    <out>
      <xsl:apply-templates select="key('k','true')[3]/num"/>
    </out>
  </xsl:template>
  
  <xsl:template match="num">
    <B><xsl:value-of select="."/></B>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position51.xml
  
  Index: position51.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a test="true">
  <num>1</num>
  </a>
    <a>
  <num>5</num>
  </a>
    <a test="false">
  <num>5</num>
  </a>
    <a test="true">
  <num>2</num>
  </a>
    <a>
  <num>5</num>
  </a>
    <a test="false">
  <num>7</num>
  </a>
    <a test="true">
  <num>3</num>
  </a>
    <a test="true">
  <num>4</num>
  </a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position51.xsl
  
  Index: position51.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS51 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'position()' when used with xsl:key and 
xsl:apply-templates. -->
  
  <xsl:key name="k" match="a" use="@test"/>
  <xsl:key name="k2" match="a" use="num"/>
  
  <xsl:template match="doc">
    <out>
      <xsl:apply-templates select="key('k','true')[1]/num"/>
    </out>
  </xsl:template>
  
  <xsl:template match="num">
    <B><xsl:value-of select="."/></B>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position52.xml
  
  Index: position52.xml
  ===================================================================
  <doc>
    <alpha key="a">
      <z>5</z>
    </alpha>
    <alpha key="b">
      <b>3</b>
      <z>9</z>
    </alpha>
    <alpha key="c">
      <z>2</z>
      <z>5</z>
    </alpha>
    <alpha key="d">
      <z>4</z>
      <z>12</z>
      <z>5</z>
    </alpha>
    <alpha key="e">
      <z>6</z>
      <z>11</z>
      <e>1</e>
    </alpha>
    <alpha key="f">
      <f>8</f>
      <z>4</z>
      <z>3</z>
      <z>8</z>
    </alpha>
    <alpha key="g">
      <z>7</z>
      <g>1</g>
      <z>10</z>
    </alpha>
    <alpha key="h">
      <h>1</h>
      <z>9</z>
      <h>4</h>
    </alpha>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position52.xsl
  
  Index: position52.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS52 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of count() on a set filtered by position. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="count(*/z[2])"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position53.xml
  
  Index: position53.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a test="true">
  <num>1</num>
  </a>
    <a>
  <num>5</num>
  </a>
    <a test="false">
  <num>5</num>
  </a>
    <a test="true">
  <num>2</num>
  </a>
    <a>
  <num>5</num>
  </a>
    <a test="false">
  <num>5</num>
  </a>
    <a test="true">
  <num>3</num>
  </a>
    <a test="true">
  <num>4</num>
  </a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position53.xsl
  
  Index: position53.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS53 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of count() with attribute wildcard. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="count(a/@*)"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position54.xml
  
  Index: position54.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a test="true">
  <num>1</num>
  </a>
    <a>
  <num>5</num>
  </a>
    <a test="false">
  <num>5</num>
  </a>
    <a test="true">
  <num>2</num>
  </a>
    <a>
  <num>5</num>
  </a>
    <a test="false">
  <num>5</num>
  </a>
    <a test="true">
  <num>3</num>
  </a>
    <a test="true">
  <num>4</num>
  </a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position54.xsl
  
  Index: position54.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS54 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of count() of wildcarded attribute axis, long-form 
notation. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="count(a/attribute::*)"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position55.xml
  
  Index: position55.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a test="true">a</a>
    <a>b</a>
    <a test="false">c</a>
    <a test="true">d</a>
    <a>e</a>
    <a test="false">f</a>
    <a test="true">g</a>
    <a test="false">h</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position55.xsl
  
  Index: position55.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS55 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'last()'. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="*[last()]"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position56.xml
  
  Index: position56.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a test="true">a</a>
    <a>b</a>
    <a test="false">c</a>
    <a test="true">d</a>
    <a>e</a>
    <a test="false">f</a>
    <a test="true">g</a>
    <a test="false">h</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position56.xsl
  
  Index: position56.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS56 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'last()' with keys. -->
  
  <xsl:key name="k" match="a" use="@test"/>
  <xsl:key name="k2" match="a" use="num"/>
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="key('k','true')[last()=position()]"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position57.xml
  
  Index: position57.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a test="true">a</a>
    <a>b</a>
    <a test="false">c</a>
    <a test="true">d</a>
    <a>e</a>
    <a test="false">f</a>
    <a test="true">g</a>
    <a test="false">h</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position57.xsl
  
  Index: position57.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS57 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'last()'. -->
  
  <xsl:key name="k" match="a" use="@test"/>
  <xsl:key name="k2" match="a" use="num"/>
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="key('k','true')[last()]"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position58.xml
  
  Index: position58.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a test="true">a</a>
    <a>b</a>
    <a test="false">c</a>
    <a test="true">d</a>
    <a>e</a>
    <a test="false">f</a>
    <a test="true">g</a>
    <a test="false">h</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position58.xsl
  
  Index: position58.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS58 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'last()'. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="*[not(@test)][last()=position()]"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position59.xml
  
  Index: position59.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a test="true">a</a>
    <a>b</a>
    <a test="false">c</a>
    <a test="true">d</a>
    <a>e</a>
    <a test="false">f</a>
    <a test="true">g</a>
    <a test="false">h</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position59.xsl
  
  Index: position59.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS59 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of 'last()'. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="*[not(@test)][last()]"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position60.xml
  
  Index: position60.xml
  ===================================================================
  <?xml version="1.0"?> 
  <doc>
    <a>1</a>
    <a>2</a>
    <a>3</a>
    <a>4</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position60.xsl
  
  Index: position60.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS60 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of greater-than with position(). -->
  
  <xsl:template match="doc">
    <out>
    <xsl:for-each select="a[position()>2]">
      <xsl:value-of select="."/>
    </xsl:for-each>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position61.xml
  
  Index: position61.xml
  ===================================================================
  <?xml version="1.0"?> 
  <doc>
    <a>1</a>
    <a>2</a>
    <a>3</a>
    <a>4</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position61.xsl
  
  Index: position61.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS61 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of less-than with position(). -->
  
  <xsl:template match="doc">
    <out>
    <xsl:for-each select="a[position()&lt;3]">
      <xsl:value-of select="."/>
    </xsl:for-each>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position62.xml
  
  Index: position62.xml
  ===================================================================
  <?xml version="1.0"?> 
  <doc>
    <a>1</a>
    <a>2</a>
    <a>3</a>
    <a>4</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position62.xsl
  
  Index: position62.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS62 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of greater-than-or-equal-to with position(). -->
  
  <xsl:template match="doc">
    <out>
    <xsl:for-each select="a[position()>=2]">
      <xsl:value-of select="."/>
    </xsl:for-each>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position63.xml
  
  Index: position63.xml
  ===================================================================
  <?xml version="1.0"?> 
  <doc>
    <a>1</a>
    <a>2</a>
    <a>3</a>
    <a>4</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position63.xsl
  
  Index: position63.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS63 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of less-than-or-equal-to with position(). -->
  
  <xsl:template match="doc">
    <out>
    <xsl:for-each select="a[position() &lt;=3]">
      <xsl:value-of select="."/>
    </xsl:for-each>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position64.xml
  
  Index: position64.xml
  ===================================================================
  <?xml version="1.0"?> 
  <doc>
    <a>1</a>
    <a>2</a>
    <a>3</a>
    <a>4</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position64.xsl
  
  Index: position64.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS64 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of not-equal-to with position(). -->
  
  <xsl:template match="doc">
    <out>
    <xsl:for-each select="a[position()!=2]">
      <xsl:value-of select="."/>
    </xsl:for-each>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position65.xml
  
  Index: position65.xml
  ===================================================================
  <?xml version="1.0"?> 
  <doc>
    <a>1</a>
    <a>2</a>
    <a>3</a>
    <a>4</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position65.xsl
  
  Index: position65.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS65 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of a numeric formula in positional indexing. -->
  
  <xsl:template match="doc">
    <out>
    <xsl:for-each select="a[3-2]">
      <xsl:value-of select="."/>
    </xsl:for-each>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position66.xml
  
  Index: position66.xml
  ===================================================================
  <?xml version="1.0"?> 
  <doc>
    <a>1</a>
    <a>2</a>
    <a>3</a>
    <a>4</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position66.xsl
  
  Index: position66.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS66 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19990922 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of zero in positional indexing. -->
  
  <xsl:template match="doc">
    <out>
    <xsl:for-each select="a[0]">
      <xsl:value-of select="."/>
    </xsl:for-each>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position67.xml
  
  Index: position67.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a>1</a>
    <a>2</a>
    <a>3</a>
    <a>4</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position67.xsl
  
  Index: position67.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS67 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of number function to make positional indexing definite. 
-->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="a[number('3')]"/>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position68.xml
  
  Index: position68.xml
  ===================================================================
  <?xml version="1.0"?>
  <metadata>
      <keyword tag="ticker" value="MSFT"/>
      <keyword tag="sector" value="unitedstates"/>
      <keyword tag="ticker" value="IBM"/>
      <keyword tag="ticker" value="Lotus"/>
      <SUMMARY>tetettete</SUMMARY>
      <CLASSIFICATION state="immediate"/>
      <IPTYPE_REF majorName="Earn" minorName="announcement"/>
  </metadata>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position68.xsl
  
  Index: position68.xsl
  ===================================================================
  <?xml version="1.0"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: pos68 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test positional indexing with predicated nodesets. -->
  
  <xsl:template match="metadata">
    <out>
      <xsl:for-each select="[EMAIL PROTECTED]'ticker']">
        <xsl:value-of select="@value"/>
        <xsl:value-of select="position()"/>
        <xsl:value-of select="last()"/>
        <xsl:if test="position()!=last()">,</xsl:if>
      </xsl:for-each>
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position69.xml
  
  Index: position69.xml
  ===================================================================
  <?xml version="1.0"?>
  <metadata>
      <keyword tag="ticker" value="MSFT"/>
      <keyword tag="sector" value="unitedstates"/>
      <keyword tag="ticker" value="IBM"/>
      <keyword tag="ticker" value="Lotus"/>
      <SUMMARY>tetettete</SUMMARY>
      <CLASSIFICATION state="immediate"/>
      <IPTYPE_REF majorName="Earn" minorName="announcement"/>
  </metadata>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position69.xsl
  
  Index: position69.xsl
  ===================================================================
  <?xml version="1.0"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: pos69 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test positional indexing with predicated nodesets. -->
  
  <xsl:template match="metadata">
    <out>
      <xsl:text>&#010;</xsl:text>
      <xsl:for-each select="[EMAIL PROTECTED]'ticker']">
        <xsl:sort select="@value"/>
        <xsl:value-of select="@value"/>
        <xsl:value-of select="position()"/>
        <xsl:value-of select="last()"/>
        <xsl:if test="position()!=last()">,</xsl:if>
      </xsl:for-each>
  
      <xsl:text>&#010;</xsl:text>
  
      <xsl:apply-templates select="[EMAIL PROTECTED]'ticker']">
        <xsl:sort select="@value"/>
      </xsl:apply-templates>
      <xsl:text>&#010;</xsl:text>
    </out>
  </xsl:template>
  
  <xsl:template match="keyword">
    <xsl:value-of select="@value"/>
    <xsl:value-of select="position()"/>
    <xsl:value-of select="last()"/>
    <xsl:if test="position()!=last()">,</xsl:if>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position70.xml
  
  Index: position70.xml
  ===================================================================
  <?xml version="1.0"?> 
  <doc att="top">
    <!-- This is the 1st comment -->
    text-in-doc
    <inner>
      inner-text
      <!-- This is the 2nd comment -->
      <sub>subtext</sub>
      text-after
    </inner>
    text-in-doc2
    <inner2 blat="bar">
      <sub>subtext</sub>final-text
    </inner2>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position70.xsl
  
  Index: position70.xsl
  ===================================================================
  <?xml version="1.0"?> 
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS70 -->
    <!-- Document: http://www.w3.org/TR/xslt -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 5.4 -->
    <!-- Purpose: Test that set of nodes changes when strip-space is in effect. 
-->
    <!-- "The xsl:apply-templates instruction processes all children of the 
current node,
          including text nodes. However, text nodes that have been stripped as 
specified
          in 3.4 Whitespace Stripping will not be processed." -->
  
  <xsl:strip-space elements="doc inner inner2"/>
  
  <xsl:template match="/doc">
    <out>
      <xsl:apply-templates select="*|@*|comment()|text()"/>
    </out>
  </xsl:template>
  
  <xsl:template match="*"><!-- for child elements -->
    <xsl:text>E(</xsl:text>
    <xsl:value-of select="position()"/>
    <xsl:text>):</xsl:text>
    <xsl:value-of select="name()"/>
    <xsl:apply-templates select="@*"/>
    <xsl:apply-templates/>
    <xsl:text>
  </xsl:text>
  </xsl:template>
  
  <xsl:template match="@*">
    <!-- The parser has freedom to present attributes in any order it wants.
       Input file should have only one attribute if you want consistent results 
across parsers. -->
    <xsl:text>A(</xsl:text>
    <xsl:value-of select="position()"/>
    <xsl:text>):</xsl:text>
    <xsl:value-of select="name()"/>
  </xsl:template>
  
  <xsl:template match="text()">
    <xsl:text>T(</xsl:text>
    <xsl:value-of select="position()"/>
    <xsl:text>):</xsl:text>
    <xsl:value-of select="."/>
  </xsl:template>
  
  <xsl:template match="comment()">
    <xsl:text>C(</xsl:text>
    <xsl:value-of select="position()"/>
    <xsl:text>):</xsl:text>
    <xsl:value-of select="."/>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position71.xml
  
  Index: position71.xml
  ===================================================================
  <?xml version="1.0"?> 
  <?a-pi some data?>
  <?b-pi some data?>
  <doc>
    test
  </doc>
  <?c-pi some data?>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position71.xsl
  
  Index: position71.xsl
  ===================================================================
  <?xml version="1.0"?> 
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS71 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test that position test can be applied to PI nodes. -->
  
  <xsl:template match="/">
    <out>
      <xsl:apply-templates select="./processing-instruction()[2]"/>     
    </out>
  </xsl:template>
    
  <xsl:template match="processing-instruction()">
    <xsl:text>Found PI: </xsl:text><xsl:value-of select="name()"/>
  </xsl:template>
   
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position72.xml
  
  Index: position72.xml
  ===================================================================
  <?xml version="1.0"?> 
  <doc>OUTER
    <a>1
      <b>1.1
        <c>1.2
          <d>1.3
            <e>1.4
              <f>HERE
              </f>1.5
            </e>1.6
          </d>1.7
        </c>1.8
      </b>1.9
    </a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position72.xsl
  
  Index: position72.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS72 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of position() and the ancestor-or-self axis. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:apply-templates select=".//f"/>
    </out>
  </xsl:template>
  
  <xsl:template match="f">
    <xsl:value-of select="ancestor-or-self::*[1]/text()"/>
    <xsl:value-of select="ancestor-or-self::*[2]/text()"/>
    <xsl:value-of select="ancestor-or-self::*[3]/text()"/>
    <xsl:value-of select="ancestor-or-self::*[4]/text()"/>
    <xsl:value-of select="ancestor-or-self::*[5]/text()"/>
    <xsl:value-of select="ancestor-or-self::*[6]/text()"/>
    <xsl:value-of select="ancestor-or-self::*[7]/text()"/>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position73.xml
  
  Index: position73.xml
  ===================================================================
  <?xml version="1.0"?> 
  <doc>OUTER
    <a>1
      <b>1.1
        <c>1.2
          <d>1.3
            <e>1.4
              <f>HERE
              </f>1.5
            </e>1.6
          </d>1.7
        </c>1.8
      </b>1.9
    </a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position73.xsl
  
  Index: position73.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS73 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of position() and for-each resetting the frame of 
reference of a node-set. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:apply-templates select=".//f"/>
    </out>
  </xsl:template>
  
  <xsl:template match="f">
    <xsl:for-each select="ancestor-or-self::*">
      <xsl:value-of select="position()"/>
      <xsl:text>. </xsl:text>
      <xsl:choose>
        <xsl:when test="count(./*)=0">
          <xsl:value-of select="."/>
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="text()[1]"/>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:for-each>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position74.xml
  
  Index: position74.xml
  ===================================================================
  <?xml version="1.0"?> 
  <doc><a><b><c><d><e><f>HERE</f>
              <g>we </g>
              <h>found
                <i>the </i>
                <j>rest
                  <k>of
                    <l>the </l>
                    <m>tree</m>
                    that
                  </k>we
                </j>wanted
              </h>
            </e>
          </d>
        </c>
      </b>
    </a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position74.xsl
  
  Index: position74.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS74 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 2.4 -->
    <!-- Purpose: Test of position() and for-each resetting the frame of 
reference of a node-set. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:apply-templates select=".//f"/>
    </out>
  </xsl:template>
  
  <xsl:template match="f">
    <xsl:value-of select="text()[1]"/><xsl:text>
  </xsl:text>
    <xsl:for-each select="following::*">
      <xsl:value-of select="position()"/>
      <xsl:text>. </xsl:text>
      <xsl:choose>
        <xsl:when test="count(./*)=0">
          <xsl:value-of select="."/>
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="text()[1]"/>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:for-each>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position75.xml
  
  Index: position75.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <doc>
    <a test="true">A1<b>B1</b>A2<!-- This is the 1st comment -->A3<b>B2</b>
      A4<!-- This is the 2nd comment -->A5</a>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position75.xsl
  
  Index: position75.xsl
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS75 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of last() on various sets of children. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:value-of select="a/*[last()]"/>,
      <xsl:value-of select="a/child::*[last()]"/>,
      <xsl:value-of select="a/descendant::*[last()]"/>;
      <xsl:value-of select="a/child::node()[last()]"/>,
      <xsl:value-of select="a/child::text()[last()]"/>;
      <xsl:value-of select="a/child::comment()[last()]"/>,
    </out>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position76.xml
  
  Index: position76.xml
  ===================================================================
  <?xml version="1.0"?> 
  <doc>
    <item xmlns:bdd="http://buster.com"/>
  </doc>
  
  
  1.1                  xml-xalan/test/tests/conf/position/position76.xsl
  
  Index: position76.xsl
  ===================================================================
  <?xml version="1.0"?> 
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
    <!-- FileName: POS76 -->
    <!-- Document: http://www.w3.org/TR/xpath -->
    <!-- DocVersion: 19991116 -->
    <!-- Section: 4.1 -->
    <!-- Purpose: Test of position() with namespace axis. -->
    <!-- The XML parser has freedom to present namespaces in any order it wants.
       Nevertheless, the position() function should work on this axis, not 
raise an error.
       The input should have only one namespace if you want consistent results 
across parsers. -->
  
  <xsl:template match="doc">
    <out>
      <xsl:apply-templates/>
    </out>
  </xsl:template>
  
  <xsl:template match="item">
    <xsl:value-of select="name(namespace::*[1])"/>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position77.xml
  
  Index: position77.xml
  ===================================================================
  <?xml version="1.0"?>
  <metadata>
    <keyword majorName="Earn"/>
    <keyword tag="ticker" value="MSFT"/>
    <keyword tag="sector" value="unitedstates"/>
    <keyword tag="ticker" value="IBM"/>
    <keyword tag="ticker" value="Lotus"/>
    <CLASSIFICATION value="immediate"/>
    <keyword tag="sector" value="automotive">
      <keyword tag="ticker" value="GM"/>
      <keyword tag="ticker" value="F"/>
      <keyword tag="ticker" value="C"/>
    </keyword>
    <IPTYPE_REF majorName="Earn" value="announcement"/>
  </metadata>
  
  
  
  1.1                  xml-xalan/test/tests/conf/position/position01.xml
  
  Index: position01.xml
  ===================================================================
  <?xml version="1.0"?>
  <doc>
    <a>1</a>
    <a>2</a>
    <a>3</a>
    <a>4</a>
  </doc>
  
  

Reply via email to