[xsl] Style Sheet Guidelines

Subject: [xsl] Style Sheet Guidelines
From: Chris_Graham@xxxxxxxxxxx
Date: Fri, 31 Dec 2004 11:52:28 +1100
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