- From: <bugzilla@jessica.w3.org>
- Date: Thu, 11 Aug 2011 06:40:54 +0000
- To: public-qt-comments@w3.org
http://www.w3.org/Bugs/Public/show_bug.cgi?id=13747 --- Comment #4 from Vladimir Nesterovsky <vladimir@nesterovsky-bros.com> 2011-08-11 06:40:52 UTC --- (In reply to comment #3) > >This [t:copy-of()] MUST return a distinct nodes on each call. > Can you show us a realistic application that fails if it doesn't? I.e., not an > application whose sole purpose is to exploit the fact that it currently returns > distinct nodes on each call? This sample is based on real application: <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:t="http://www.nesterovsky-bros.com/xslt/public" exclude-result-prefixes="xs t"> <xsl:output indent="yes"/> <xsl:variable name="input"> <data> <block parts="a b c d"/> <block parts="c b"/> <block parts="d b"/> </data> </xsl:variable> <xsl:template match="/" name="main"> <xsl:variable name="result"> <result> <xsl:apply-templates mode="t:process" select="$input"/> </result> </xsl:variable> <xsl:message select="$result"/> <xsl:sequence select="$result"/> </xsl:template> <xsl:template mode="t:process" match="*"> <xsl:copy> <xsl:sequence select="@*"/> <xsl:apply-templates mode="#current"/> </xsl:copy> </xsl:template> <xsl:template mode="t:process" match="block"> <block> <xsl:for-each select="tokenize(@parts, '\s+')"> <xsl:sequence select="t:generate-part(.)"/> </xsl:for-each> </block> </xsl:template> <xsl:function name="t:generate-part" as="element()"> <xsl:param name="id" as="xs:string"/> <xsl:variable name="statements" as="element()+" select="t:get-statements-by-id($id)"/> <label id="{generate-id($statements[1])}"> <xsl:sequence select="$statements"/> </label> </xsl:function> <xsl:function name="t:get-statements-by-id" as="element()"> <xsl:param name="id" as="xs:string"/> <xsl:variable name="handler" as="element()"> <xsl:element name="{$id}"/> </xsl:variable> <xsl:apply-templates mode="t:call" select="$handler"/> </xsl:function> <xsl:template mode="t:call" match="a"> <scope>a statements ...</scope> </xsl:template> <xsl:template mode="t:call" match="b"> <scope>b statements ...</scope> </xsl:template> <xsl:template mode="t:call" match="c"> <scope>c statements ...</scope> </xsl:template> <xsl:template mode="t:call" match="d"> <scope>d statements ...</scope> </xsl:template> </xsl:stylesheet> -- Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug.
Received on Thursday, 11 August 2011 06:40:55 UTC