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

Re: Measuring the complexity of XSLT stylesheets

Subject: Re: Measuring the complexity of XSLT stylesheets
From: "M. David Peterson" <m.david.x2x2x@xxxxxxxxx>
Date: Sun, 17 Apr 2005 13:23:43 -0600
xslt metric
To be honest I have to disagree with any theory that blames the size
of something as the problem...  if its a fairly deep XML infoset with
disparate data types and values galore your XSLT file will, more than
likely, require a lot of templates to properly to process the data.

Again, I think Colin nailed it with the XPath sentence (nice touch
Colin ;)...  take the following for example:

<xsl:for-each select="/foo/bar[@son_of_bar =
'baby_bar']/preceding:sibling::*[local-name() !=
'little_itty_bitty_foo' and $time_of_day != 'noon' and $phase_of_moon
!= 'full']/@whodafoo =
'great_grand_foo']/following-sibling::barnone/ancestor::*[@statement =
'whodafooismydaddy?']/descendant-or-self::waitwhat =
'arentwebackwherewestarted?'">
<xsl:for-each select="ah-hell-herewegoagain">
STOP THE MADNESS!!!
</xsl:for-each>
</xsl:for-each>

While I cant speak for anybody else I know I can say with clear
conscience that the above XPath statement and nested xsl:for-each
instructions are an ALL to common occurence when you first start
programming in XML/XSLT and NOTHING compared to just how bad an
attempt to "logically" process XML like this can get.  The secret?

<snip/>

<xsl:apply-templates select="child_element"/>

<xsl:template match="child_element">
... output a value
<xsl:apply-templates/>
</xsl:template>

... more templates to match each element against to determine if it
should be processed further or left alone to be handled by another
template.



On 4/17/05, Lars Marius Garshol <larsga@xxxxxxxxxxxxxxx> wrote:
>
> * Ben Pickering
> |
> | Something maybe related to the size of the tree resulting from
> | parsing the XPath expression?  The two examples given would be
> | closer under this metric than the length of their string
> | representations...
>
> True. This metric is clearly better than the character count (which I
> had in my original posting, anyway), since it is at least independent
> of the length of the element type names and the use of whitespace. It
> might not be too hard to write Python script that uses some Python or
> Java XPath parser to compute this metric.
>
> --
> Lars Marius Garshol, Ontopian         <URL: http://www.ontopia.net >
> GSM: +47 98 21 55 50                  <URL: http://www.garshol.priv.no >
>
>


--
<M:D/>

:: M. David Peterson ::
XML & XML Transformations, C#, .NET, and Functional Languages Specialist

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.