Subject: Re: [xsl] FW: Stopping recursion From: David Carlisle <davidc@xxxxxxxxx> Date: Tue, 22 Nov 2005 11:21:07 GMT |
I suspect it's not really the recursion you want to stop but the for-each. If any of these has the xlink then you want to output the attribute and stop. So don't loop over all of them, just check if any of them have the attribute: <xsl:choose> <xsl:when test="/xsd:schema/xsd:complexType[@name = $myType][.//@namespace='http://www.w3.org/1999/xlink]"> <xsd:attribute ref="xml:base"/> </xsl:when> <xsl:otherwise> <xsl:apply-templates select="/xsd:schema/xsd:complexType[@name = $myType]//xsd:element" mode="findXLink"/> </xsl:otherwise> If your schema is large you would likely get significant speedup if you replaced all occurrences of /xsd:schema/xsd:complexType[@name = $myType] by key('type', $myType) defined via <xsl:key name="'type' match="/xsd:schema/xsd:complexType" use="@name"/> David ________________________________________________________________________ This e-mail has been scanned for all viruses by Star. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk ________________________________________________________________________
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] FW: Stopping recursion, Michael Kay | Thread | Re: [xsl] FW: Stopping recursion, Mark Seaborne |
RE: [xsl] FW: Stopping recursion, Michael Kay | Date | Re: [xsl] FW: Stopping recursion, Mark Seaborne |
Month |