[ http://issues.apache.org/jira/browse/XALANJ-590?page=all ]
Brian Minchau updated XALANJ-590: --------------------------------- Version: Latest Development Code (was: 2.2.x) > Identically-matching templates are silently accepted > ---------------------------------------------------- > > Key: XALANJ-590 > URL: http://issues.apache.org/jira/browse/XALANJ-590 > Project: XalanJ2 > Type: Bug > Components: Xalan > Versions: Latest Development Code > Environment: Operating System: All > Platform: All > Reporter: Gunnlaugur Thor Briem > Assignee: Xalan Developers Mailing List > > Xalan (as of version 2.2.D10 at least) silently accepts stylesheets containing > multiple templates matching the same pattern in the same mode, and just uses > the one that occurs last. > According to section 5.5 of the XSLT 1.0 spec: > "It is an error if this leaves more than one matching template > rule. An XSLT processor may signal the error; if it does not signal > the error, it must recover by choosing, from amongst the matching > template rules that are left, the one that occurs last in the > stylesheet." > ... so this behavior IS allowed by the spec. But I'd argue that that's a > rather > heinous mistake in the specification: resolving the ambiguity by just picking > the last one has no practical utility that I can think of, and clearly invites > errors by the stylesheet writer (such as the one I made, which led me to > discover this!), so taking the option of signalling the error seems far > preferable. > To illustrate, here's an example stylesheet that I think should be rejected: > <?xml version='1.0'?> > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > <xsl:template match="/root"> > <outroot> > <xsl:apply-templates/> > </outroot> > </xsl:template> > > <xsl:template match="text()"> > <xsl:text>{TEXT-BEGIN}</xsl:text> > <xsl:copy-of select="."/> > <xsl:text>{TEXT-END}</xsl:text> > </xsl:template> > <xsl:template match="text()"> > <xsl:text>{TEXT-BEGIN-2}</xsl:text> > <xsl:copy-of select="."/> > <xsl:text>{TEXT-END-2}</xsl:text> > </xsl:template> > </xsl:stylesheet> -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]