Re: [xsl] Referring to stylesheet itself, possible in XSLT 1.0, but how in XSLT 2.0?

Subject: Re: [xsl] Referring to stylesheet itself, possible in XSLT 1.0, but how in XSLT 2.0?
From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx>
Date: Tue, 17 Oct 2006 11:10:33 +0100
On 10/17/06, Michael Kay <mike@xxxxxxxxxxxx> wrote:
> That works - which makes me wonder why the following doesnt:
>
> <xsl:template match="/" xml:base="foo">
>       <xsl:value-of select="document-uri(document(''))"/>
> </xsl:template>
>
> With xml:base on the root matching matching template, why does calling
> document('') return that base (the same goes for
> xsl:stylesheet).  I would've thought the root *node* returned
> from document('') was outside the scope of the xml:base
> change, and so would return the original base...

'' is a relative URI and is therefore expanded relative to the base URI of
the stylesheet element where the call on document() appears. That base URI
in this case is "foo" (which being itself a relative URI, should be further
resolved...).

Ahh that explains it. It also explains why document('') returns the stylesheet itself... (something I always thought was intentional, but I guess it was by "happy accident")

thanks.

Current Thread