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(_at_)aami(_dot_)com(_dot_)au
[mailto:Chris_Graham(_at_)aami(_dot_)com(_dot_)au]
Sent: 31 December 2004 00:52
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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.
**************************************************************
*********************
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--