RE: [xsl] rephrased: passing parameters to generic templates

Subject: RE: [xsl] rephrased: passing parameters to generic templates
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 12 Apr 2006 19:54:25 +0100
> So when text nodes or values of attribute nodes 
> are constructed (in 2.0), the string-conversion 
> rules are not followed, but instead all values 
> are spliced together (with space delimiters, it 
> appears). This is something to watch out for, 
> being notably different from 1.0 and potentially 
> the source of silent bugs when migrating.

Yes. Note that you get the 1.0 behavior in "backwards compatibility mode",
that is, if the stylesheet specifies version="1.0".

It's most likely to cause problems if the 1.0 stylesheet was failing to
handle multi-valued data, for example

<xsl:template match="book">
  <xsl:value-of select="author"/>
</xsl:template>

in 1.0 will give you the name of the first author; in 2.0 (when you change
the version number) it will give you the names of all the authors. In most
cases this change is probably a Good Thing; if you only want the first
author you now have to say so explicitly by writing select="author[1]".

Michael Kay
http://www.saxonica.com/

Current Thread