Subject: Re: [xsl] dangling attribute creation (was Re: [xsl] When to use text())|
From: Ihe Onwuka <ihe.onwuka@xxxxxxxxx>
Date: Fri, 21 Mar 2014 16:54:08 +0000
On Fri, Mar 21, 2014 at 4:37 PM, Andrew Welch <andrew.j.welch@xxxxxxxxx> wrote: > On 21 March 2014 16:10, Ihe Onwuka <ihe.onwuka@xxxxxxxxx> wrote: >> On Fri, Mar 21, 2014 at 3:37 PM, Andrew Welch <andrew.j.welch@xxxxxxxxx> wrote: >>>> <xsl:template match="RentAmount | MonthlyAmounts"> >>>> <xsl:attribute name="class" select="'money'"/> >>> >>> This will no doubt go down a long road but... that dangling attribute >>> creation there is a bad idea, as it depends on that template always >>> being executed directly after a start element is added to the result >>> tree. >>> >> >> Well not quite. It could be legitimately preceded by other templates >> that do dangling attribute creation without a problem. > > Yes it might work fine today, but if a refactoring elsewhere unrelated > to this causes some child content to be added... this will break. > It's tightly coupled to the way it's called, which is bad. > and I chose it over the other evil which is replicating the same template code for each amount type that exists now and in the future. Correct me if I'm wrong but couldn't you say the same thing over each and every application of xsl:attribute-set > > It's an anti-pattern. > Yes I'm sure there's another way of achieving the same thing but I'd rather be anti-pattern than anti-declarative.