RE: [xsl] Use of data() function (was: Re: [xsl] [OT])

Subject: RE: [xsl] Use of data() function (was: Re: [xsl] [OT])
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 29 Feb 2008 16:24:14 -0000
> I'm not sure this is a great example - if it can be made more 
> real world let me know and I'll add it to http://schema-aware.com

As I said, I don't think you need data() very often because atomization
nearly always happens automatically when you need it. Testing a
boolean-valued attribute like if(@married) is a case where it's very easy to
fall into the trap of assuming that atomization will happen when it doesn't.
It's probably especially dangerous when using variables:


<xsl:function name="f">
<xsl:param name="isMarried"/>
<xsl:if test="$isMarried">...


f(@married)

Another good reason for declaring parameter types: if the param is declared
with as="xs:boolean" then the attribute node will be atomized as part of the
function call.

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

Current Thread