RE: [xsl] how to workaround restriction of overloading functions

Subject: RE: [xsl] how to workaround restriction of overloading functions
From: Robby Pelssers <Robby.Pelssers@xxxxxxx>
Date: Tue, 17 Jul 2012 18:25:54 +0200
Thx...

Will give it a try !!

Robby

-----Original Message-----
From: Michael Kay [mailto:mike@xxxxxxxxxxxx]
Sent: Tuesday, July 17, 2012 6:23 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] how to workaround restriction of overloading functions

xsl:attribute creates an attribute in the result tree, not in the
stylesheet.

You want

<xsl:variable name="x" as="xs:string">
   <xsl:apply-templates.../>
</xsl:variable>
<xsl:result-document href="{x}"/>

Alternatively, encapsulate the call of apply-templates in a function, as
I suggested in my response.

Michael Kay
Saxonica

On 17/07/2012 17:13, Robby Pelssers wrote:
> I thought I was almost there but I run into my next issue.  F [Saxon-PE
9.3.0.5] Cannot create an attribute node whose parent is a document node
>
> Not sure how I can tackle this one.  Probably this was the reason why I
chose the function approach in the first place
>
>          <xsl:result-document method="xml">
>              <xsl:attribute name="href">
>                  <xsl:apply-templates select="." mode="getURI"/>
>              </xsl:attribute>
>              ....
>          </xsl:result-document>
>
>
> This would have worked
>          <xsl:result-document method="xml" href="{znapz:getURI(.)}">
>              ....
>          </xsl:result-document>
>
> Any thoughts?
> Robby
>
>
> -----Original Message-----
> From: Robby Pelssers [mailto:Robby.Pelssers@xxxxxxx]
> Sent: Tuesday, July 17, 2012 5:41 PM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: RE: [xsl] how to workaround restriction of overloading functions
>
> ;-)   simplicity rocks !!
>
> Thx for the help again
>
> Robby
>
> -----Original Message-----
> From: Andrew Welch [mailto:andrew.j.welch@xxxxxxxxx]
> Sent: Tuesday, July 17, 2012 5:35 PM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [xsl] how to workaround restriction of overloading functions
>
> On 17 July 2012 16:32, Robby Pelssers <Robby.Pelssers@xxxxxxx> wrote:
>> Damn...
>>
>> I was already thinking along those lines but I wasn't sure if such approach
would work.
>>
>>
>> So let's assume I needed an uber-function that would return a sequence of
URI's, would sth  like this work?
>>
>> I want a list of all URI's stored in a variable uniqueURIs.  Since I can't
use mode in a select statement like
>> <xsl:variable name="uniqueURIs" select="/maximo:*" mode="getURI"/>
>>
>> I will probably need to call a function?
>> <xsl:variable name="uniqueURIs" select="znapz:getUniqueURIs(/maximo:*)"/>
> or just apply-templates in the variable:
>
> <xsl:variable name="uniqueURIs" as="xs:anyURI+">
>    <xsl:apply-templates select="/maximo:*" mode="getURI"/>
> </

Current Thread