[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: Style Sheet Guidelines

Subject: RE: Style Sheet Guidelines
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 31 Dec 2004 12:01:04 -0000
ctq template
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:  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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.