You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by pa...@apache.org on 2001/11/09 20:24:35 UTC
cvs commit: xml-xalan/test/tests/extensions/library libraryNodeset03.xsl
pauldick 01/11/09 11:24:35
Modified: test/tests/extensions/library libraryNodeset03.xsl
Log:
Nodeset testcase that beats on RTF's. This was a problem with
XalanC.
Revision Changes Path
1.4 +215 -78 xml-xalan/test/tests/extensions/library/libraryNodeset03.xsl
Index: libraryNodeset03.xsl
===================================================================
RCS file: /home/cvs/xml-xalan/test/tests/extensions/library/libraryNodeset03.xsl,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- libraryNodeset03.xsl 2001/10/19 17:14:49 1.3
+++ libraryNodeset03.xsl 2001/11/09 19:24:35 1.4
@@ -1,95 +1,232 @@
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
- xmlns:test="http://www.cnn.com"
- xmlns:default="http://www.hello.com"
- xmlns:xalan="http://xml.apache.org/xalan"
- exclude-result-prefixes="test default xalan">
-
+ xmlns:cextend="http://xml.apache.org/xalan"
+ xmlns:test="http://www.extension03.test"
+ xmlns:BTM="www.btm.com"
+ exclude-result-prefixes="cextend test BTM">
- <!-- FileName: extend21 -->
+ <!-- FileName: extension03 -->
<!-- Document: http://www.w3.org/TR/xslt -->
<!-- DocVersion: 19991116 -->
<!-- Section: 14 Extensions -->
- <!-- Purpose: Testing Lotus-specific extension "xalan:nodeset". -->
+ <!-- Purpose: Testing Lotus-specific extension "Nodeset". More extensive RTF testing -->
<xsl:strip-space elements="*"/>
<xsl:output indent="yes"/>
-<xsl:template match="/">
- <out>
- <xsl:variable name="rtf">
- <docelem xmlns="http://www.hello.com" xmlns:test="http://www.cnn.com">
- <elem1>
- <elem1a>ELEMENT1A</elem1a>
- <elem1b>,ELEMENT1B</elem1b>
- </elem1>
+<xsl:variable name="rtf">
+ <docelem/>
+ <docelem>
+ <elem1>
+ <elem2>
+ <elem3 attr1="A" attr2="B" attr3="C">Elem3.1</elem3>
+ <test:elem3 attr1="Z" attr2="Y" attr3="X">NS-Elem3.2</test:elem3>
+ <elem3 attr1="D" attr2="E" attr3="F">Elem3.3</elem3>
+ <test:elem3 attr1="W" attr2="V" attr3="U">NS-Elem3.4</test:elem3>
+ </elem2>
+ </elem1>
+ <elem1>
+ <elem2>1</elem2>
+ <elem2>2</elem2>
+ <elem2>3</elem2>
+ <elem2>4</elem2>
+ <BTM:BreakingTheMold/>
+ </elem1>
+ <elem1>
<elem2>
- <elem2a>ELEMENT2A</elem2a>
- <elem2b/>
+ <elem4 attr1="G" attr2="H" attr3="I">Elem4.1</elem4>
+ <test:elem4 attr1="T" attr2="S" attr3="R">NS-Elem4.2</test:elem4>
+ <elem4 attr1="J" attr2="K" attr3="L">Elem4.3</elem4>
+ <test:elem4 attr1="Q" attr2="P" attr3="O">NS-Elem4.4</test:elem4>
</elem2>
- <elem3>1</elem3>
- <elem3>2</elem3>
- <test:elem3>3</test:elem3>
- <elem3>4</elem3>
- <elem3>5</elem3>
- <elem4>Yahoo</elem4>
- </docelem>
- </xsl:variable>
-
- <xsl:value-of select="xalan:nodeset($rtf)/default:docelem/default:elem1"/><xsl:text> </xsl:text>
-
- <xsl:for-each select="xalan:nodeset($rtf)/default:docelem/*">
- <xsl:value-of select="name(.)"/><xsl:text>,</xsl:text>
- </xsl:for-each><xsl:text> </xsl:text>
-
- <xsl:for-each select="xalan:nodeset($rtf)/default:docelem/default:elem2/*">
- <xsl:value-of select="name(.)"/><xsl:text>,</xsl:text>
- </xsl:for-each><xsl:text> </xsl:text>
-
- <xsl:text>Apply-templates match=elem4: </xsl:text>
- <xsl:apply-templates select="xalan:nodeset($rtf)/default:docelem/default:elem4"/>
-
- <xsl:text>Sum: </xsl:text>
- <xsl:value-of select="sum(xalan:nodeset($rtf)/default:docelem/default:elem3)"/><xsl:text> </xsl:text>
-
- <xsl:text>Count: </xsl:text>
- <xsl:value-of select="count(xalan:nodeset($rtf)/default:docelem/default:elem3)"/><xsl:text> </xsl:text>
-
- <xsl:text>Number: </xsl:text>
- <xsl:value-of select="number(xalan:nodeset($rtf)/default:docelem/default:elem3[2])"/><xsl:text> </xsl:text>
-
- <xsl:text>Name: </xsl:text>
- <xsl:value-of select="name(xalan:nodeset($rtf)/*)"/><xsl:text> </xsl:text>
-
- <xsl:text>generate-id: </xsl:text>
- <xsl:value-of select="generate-id(xalan:nodeset($rtf)/default:docelem/default:elem4)"/><xsl:text> </xsl:text>
-
- <xsl:text>Local-name: </xsl:text>
- <xsl:value-of select="local-name(xalan:nodeset($rtf)/*)"/><xsl:text> </xsl:text>
-
- <xsl:text>Namespace-uri: </xsl:text>
- <xsl:value-of select="namespace-uri(xalan:nodeset($rtf)/default:docelem)"/>,
- <xsl:value-of select="namespace-uri(xalan:nodeset($rtf)/default:docelem/default:elem1)"/>,
- <xsl:value-of select="namespace-uri(xalan:nodeset($rtf)/default:docelem/test:elem3)"/>: <xsl:value-of select="(xalan:nodeset($rtf)/default:docelem/test:elem3)"/>
-
- <xsl:text> </xsl:text>
- <xsl:text> </xsl:text>
- <xsl:text>xsl:copy-of($rtf): </xsl:text>
- <xsl:copy-of select="xalan:nodeset($rtf)/default:docelem"/><xsl:text> </xsl:text>
-
- <xsl:text> </xsl:text>
- <xsl:text>xsl:copy-of(elem1b): </xsl:text>
- <xsl:copy-of select="xalan:nodeset($rtf)/default:docelem/default:elem1/default:elem1b"/><xsl:text> </xsl:text>
+ </elem1>
+ </docelem>
+ <docelem/>
+ </xsl:variable>
+
+<xsl:template match="/">
+ <out>
+
+ <xsl:element name="CountDOCELEM">
+ <xsl:value-of select="count(cextend:nodeset($rtf)/docelem)"/>
+ </xsl:element>
+
+ <xsl:element name="CountELEM2andELEM3">
+ <xsl:value-of select="count(cextend:nodeset($rtf)/docelem//elem2 |
+ cextend:nodeset($rtf)/docelem//elem3 |
+ cextend:nodeset($rtf)/docelem//test:elem3)"/>
+ </xsl:element>
+ <xsl:element name="SumELEM2">
+ <xsl:value-of select="sum(cextend:nodeset($rtf)/docelem/elem1[2]/elem2)"/>
+ </xsl:element>
+
+ <xsl:element name="NumberELEM2">
+ <xsl:value-of select="number(cextend:nodeset($rtf)/docelem/elem1[2])"/>
+ </xsl:element>
+
+ <xsl:element name="NameBTM">
+ <xsl:value-of select="name(cextend:nodeset($rtf)/docelem/elem1[2]/*[5])"/>
+ </xsl:element>
+
+ <xsl:element name="LocalNameBTM">
+ <xsl:value-of select="local-name(cextend:nodeset($rtf)/docelem/elem1[2]/*[5])"/>
+ </xsl:element>
+
+ <xsl:element name="Namespace-URIs">
+ <xsl:attribute name="uri1">
+ <xsl:value-of select="namespace-uri(cextend:nodeset($rtf)/docelem/elem1/elem2/test:elem3)"/>
+ </xsl:attribute>
+ <xsl:attribute name="uri2">
+ <xsl:value-of select="namespace-uri(cextend:nodeset($rtf)/docelem/elem1[2]/*[5])"/>
+ </xsl:attribute>
+ </xsl:element>
+
+ <xsl:element name="ValueDOCELEM-STAR">
+ <xsl:value-of select="cextend:nodeset($rtf)/docelem/*"/>
+ </xsl:element>
+
+ <xsl:element name="ValueELEM4">
+ <xsl:value-of select="cextend:nodeset($rtf)/docelem/elem1/elem2/test:elem4[@attr3='O']"/>
+ </xsl:element>
+
+ <xsl:element name="ValueTESTELEM4-1">
+ <xsl:value-of select="cextend:nodeset($rtf)/docelem/elem1/elem2/test:elem4[1]"/>
+ </xsl:element>
+
+ <xsl:element name="SlashSlashELEM4">
+ <xsl:value-of select="cextend:nodeset($rtf)//elem4"/>
+ </xsl:element>
+
+ <xsl:element name="SlashSlashELEM4-2Attrs-2">
+ <xsl:value-of select="cextend:nodeset($rtf)//test:elem4[2]/@*[2]"/>
+ </xsl:element>
+
+ <Axis_Tests>
+ <xsl:element name="Ancestor">
+ <xsl:for-each select="cextend:nodeset($rtf)/docelem/elem1[2]/*[5]/ancestor::*">
+ <xsl:copy/>
+ </xsl:for-each>
+ </xsl:element>
+
+ <xsl:element name="Ancestor-or-Self">
+ <xsl:for-each select="cextend:nodeset($rtf)//BTM:BreakingTheMold/ancestor-or-self::*">
+ <xsl:copy/>
+ </xsl:for-each>
+ </xsl:element>
+
+ <xsl:element name="Attribute">
+ <xsl:for-each select="cextend:nodeset($rtf)//test:elem4/attribute::*">
+ <xsl:copy/>
+ </xsl:for-each>
+ </xsl:element>
+
+ <xsl:element name="Child">
+ <xsl:for-each select="cextend:nodeset($rtf)/docelem/*">
+ <xsl:copy/>
+ </xsl:for-each>
+ </xsl:element>
+
+ <xsl:element name="Descendant">
+ <xsl:for-each select="cextend:nodeset($rtf)/docelem/elem1[2]/descendant::*">
+ <xsl:copy/>
+ </xsl:for-each>
+ </xsl:element>
+
+ <xsl:element name="Descendant-or-Self">
+ <xsl:for-each select="cextend:nodeset($rtf)/docelem/elem1[2]/descendant-or-self::*">
+ <xsl:copy/>
+ </xsl:for-each>
+ </xsl:element>
+
+ <xsl:element name="Following">
+ <xsl:for-each select="cextend:nodeset($rtf)/docelem[2]/elem1[2]/following::*">
+ <xsl:copy/>
+ </xsl:for-each>
+ </xsl:element>
+
+ <xsl:element name="Following-Sibling">
+ <xsl:for-each select="cextend:nodeset($rtf)/docelem[2]/elem1[1]/following-sibling::*">
+ <xsl:copy/>
+ </xsl:for-each>
+ </xsl:element>
+
+ <xsl:element name="Namespace">
+ <xsl:for-each select="cextend:nodeset($rtf)/docelem/elem1/elem2/*/namespace::* |
+ cextend:nodeset($rtf)/docelem/elem1/*/namespace::*">
+ <xsl:copy/>
+ </xsl:for-each>
+ </xsl:element>
+
+ <xsl:element name="Parent0">
+ <xsl:value-of select="name(cextend:nodeset($rtf)/docelem[2]/parent::*)"/>
+ </xsl:element>
+
+ <xsl:element name="Parent1">
+ <xsl:value-of select="name(cextend:nodeset($rtf)/docelem[2]/elem1[3]/elem2/test:elem4[2]/parent::*)"/>
+ </xsl:element>
+
+ <xsl:element name="Preceding">
+ <xsl:value-of select="name(cextend:nodeset($rtf)//test:elem4[2]/preceding::elem1[2]/*/test:elem3[2])"/>
+ </xsl:element>
+
+ <xsl:element name="Preceding-Sibling">
+ <xsl:value-of select="cextend:nodeset($rtf)//BTM:BreakingTheMold/preceding-sibling::*[4]"/>
+ </xsl:element>
+
+ <xsl:element name="Self">
+ <xsl:value-of select="name(cextend:nodeset($rtf)//BTM:BreakingTheMold/self::*)"/>
+ </xsl:element>
+
+ </Axis_Tests>
+
+ <xsl:element name="AT-Elem3-Elem4">
+ <xsl:apply-templates select="cextend:nodeset($rtf)/docelem/elem1/elem2/Elem4 |
+ cextend:nodeset($rtf)/docelem/elem1/elem2/Elem3"/>
+ </xsl:element>
+
+ <xsl:element name="AT-NSElem3-NSElem4">
+ <xsl:apply-templates select="cextend:nodeset($rtf)/docelem/elem1/elem2/test:Elem4 |
+ cextend:nodeset($rtf)/docelem/elem1/elem2/test:Elem3"/>
+ </xsl:element>
- <xsl:text> </xsl:text>
- <xsl:text>xsl:copy-of(test:elem3): </xsl:text>
- <xsl:copy-of select="xalan:nodeset($rtf)/default:docelem/test:elem3"/><xsl:text> </xsl:text>
+ <xsl:element name="AT-Elem3-NSElem4">
+ <xsl:apply-templates select="cextend:nodeset($rtf)/docelem/elem1/elem2/Elem3 |
+ cextend:nodeset($rtf)/docelem/elem1/elem2/test:Elem4"/>
+ </xsl:element>
+
+ <xsl:element name="FE-FE-AT-Mode">
+ <xsl:for-each select="cextend:nodeset($rtf)/docelem[2]/elem1">
+ <xsl:for-each select="elem2/*">
+ <xsl:apply-templates select="current()" mode="fe"/><xsl:text> </xsl:text>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:element>
+
+ <xsl:element name="CopyElem1-1">
+ <xsl:copy-of select="cextend:nodeset($rtf)/docelem/elem1[elem2[Elem3[@attr3='C']]]"/>
+ </xsl:element>
+
+ <xsl:element name="CopyElem3-2">
+ <xsl:copy-of select="cextend:nodeset($rtf)/docelem/elem1/elem2/Elem3[2]"/>
+ </xsl:element>
- </out>
+ </out>
</xsl:template>
-<xsl:template match="default:elem4">
- <xsl:value-of select="."/>,
+<xsl:template match="test:Elem3 | test:Elem4">
+ <xsl:value-of select="."/><xsl:text> modeless </xsl:text>
+</xsl:template>
+
+<xsl:template match="Elem3 | Elem4">
+ <xsl:value-of select="."/><xsl:text> modeless </xsl:text>
+</xsl:template>
+
+<xsl:template match="test:Elem3 | test:Elem4" mode="fe">
+ <xsl:value-of select="."/><xsl:text> fe </xsl:text>
+</xsl:template>
+
+<xsl:template match="Elem3 | Elem4" mode="fe">
+ <xsl:value-of select="."/><xsl:text> fe </xsl:text>
</xsl:template>
-
-</xsl:stylesheet>
+
+</xsl:stylesheet>
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org