Subject: RE: [xsl] Style Sheet Guidelines From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Fri, 31 Dec 2004 12:01:04 -0000 |
I don't see why you consider xsl:attribute to be "more formal" or "stricter" than an attribute in a literal result element. Being more long-winded doesn't make it more formal; and just because an attribute value template is more concise, that doesn't make it a "shorthand". Go for readability. In Saxon 8.x, the two forms generate identical run-time code. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Chris_Graham@xxxxxxxxxxx [mailto:Chris_Graham@xxxxxxxxxxx] > Sent: 31 December 2004 00:52 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Style Sheet Guidelines > > Hi All, > > We have an issue of style guidelines to address when writing > XSL files. > > Basically, it revolves around readability and performance. > > We have the choice between the more formal form: > > <!-- Format given value as a Product/Policy Type (HOM/MOT/CTP/CTQ) --> > <xsl:template name="productOptions"> > <xsl:param name="name"/> > <select> > <xsl:attribute name="name"><xsl:value-of > select="$name"/></xsl:attribute> > <option value=''></option> > <option value='MOT'>Motor</option> > <option value='HOM'>Home</option> > <option value='CTP'>CTP</option> > </select> > </xsl:template> > > And a shorthand form: > > <!-- Format given value as a Product/Policy Type (HOM/MOT/CTP/CTQ) --> > <xsl:template name="productOptions"> > <xsl:param name="name"/> > <select name="{$name}"> > <option value=''></option> > <option value='MOT'>Motor</option> > <option value='HOM'>Home</option> > <option value='CTP'>CTP</option> > </select> > </xsl:template> > > The difference is in the formal declaration of the attribute > 'name' of the > > 'select' element. > > The first way is the the stricter, the second is easier to > understand and > work with. > > When we are working with templates, we call it the same way: > > <xsl:call-template name="productOptions"> > <xsl:with-param name="name">Product01</xsl:with-param> > </xsl:call-template> > > It outputs the same results. > > Whilst these differences are relatively minor, in this > example, they do > become more profound when applied to every instance where > they should be. > > Consider this shorthand example: > > <FONT size="5"> > Good morning!<br/> > </FONT> > > This is easier to read, as it is standard HTML. > > Compare it now to the formal example: > > <FONT> > <xsl:attribute name="size">5</xsl:attribute> > Good morning!<br/> > </FONT> > > The output is identical: > > <FONT size="5"> > Good morning!<br> > </FONT> > > and > > <FONT size="5"> > Good morning!<br> > </FONT> > > > The only difference between the formal and the shorthand is that the > shorthand form shows up as a problem in the annotation > portion of each > page (the right hand column where you will see a small red > square). It > does not effect the SAX parsing of the file, WSAD just issues > some problem > > warnings. (You can always open the file in a text editor > inside WSAD and > you will not see these conditions). > > The version that uses the <xsl:attribute> form takes about > 10-15% longer > to run, which is as expected (as it has extra parsing to do [and uses > slightly more memory as well]). > > I prefer the shorthand form as it is easier to read and consumes less > resources at runtime. > > I would appreciate some input from others more knowledable > than myself in > what works best for them (and why). > > -Chris > > > > ************************************************************** > ********************* > This email contains information confidential to AAMI Limited. > If you are not the intended recipient, you must not disclose > or use the information in it. If you have received this email > in error, please notify us immediately by return email, and > delete this email and any attached documents. > AAMI Limited is not responsible for any changes made to a > document other than those made by AAMI Limited or for the > effect of the changes on the document meaning. > ************************************************************** > *********************
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Style Sheet Guidelines, Chris_Graham | Thread | [xsl] Format date/time according to, Kevin Doran |
[xsl] Xpath as variable, then proce, michella | Date | Re: [xsl] XInclude as an XSLT trans, Elliotte Harold |
Month |