|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: A parameter current context or context passed
Wouldn't the context always be the context of the parameter being passed
in so "/" would never resolve to the source xml?
--------------------------------------------
Hi, Karl,
Well, when you write:
<xsl:param name="something" select="whatever"/>
you are creating a default value for the parameter. The whatever will only
apply if no value is passed for the parameter. At that point, the only
available context is the source document, so / picks up the root node of
the source document.
I did some quick testing. With the following source document:
<?xml version="1.0" encoding="UTF-8"?>
<x>ABCD</x>
and the following stylesheet:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="no" indent="yes"/>
<xsl:param name="in" select="/"/>
<xsl:template match="/">
<x>
<xsl:value-of select="$in"/>
</x>
</xsl:template>
</xsl:stylesheet>
I got the following output when I specified in="hello" as a parameter:
<?xml version="1.0" encoding="UTF-8"?>
<x>hello</x>
And the following output when I left off the parameter:
<?xml version="1.0" encoding="UTF-8"?>
<x>ABCD</x>
Tested with Saxon 8.4.
I don't use unions (|) much, so I am not sure of its behavior in this
situation.
Jay Bryant
Bryant Communication Services
(presently consulting at Synergistic Solution Technologies)
Karl Stubsjoen <kstubs@xxxxxxxxx>
05/13/2005 01:35 PM
Please respond to
xsl-list@xxxxxxxxxxxxxxxxxxxxxx
To
xsl-list@xxxxxxxxxxxxxxxxxxxxxx
cc
Subject
Re: A parameter current context or context passed
> / is the document root. So I think you want just select="current()" (or
> even just select=".").
I would think I want "/" or "." Wouldn't the context always be the
context of the parameter being passed in so "/" would never resolve to
the source xml?
Not sure what "/" over "." would gain in this case.
I have tested my param, and it seems to work fine. I don't get the |
"pipe". Is that an OR operator in this case? Or is it more like a
switch?
> On 5/13/05, JBryant@xxxxxxxxx <JBryant@xxxxxxxxx> wrote:
> Hi, Karl,
>
> / is the document root. So I think you want just select="current()" (or
> even just select=".").
>
> Untested, so I might be off.
>
> Jay Bryant
> Bryant Communication Services
> (presently consulting at Synergistic Solution Technologies)
>
> Karl Stubsjoen <kstubs@xxxxxxxxx>
> 05/13/2005 12:48 PM
> Please respond to
> xsl-list@xxxxxxxxxxxxxxxxxxxxxx
>
> To
> xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> cc
>
> Subject
> A parameter current context or context passed
>
>
> This should be an easy one...
>
> I have the following paramter:
> <xsl:param name="current" select="/ | current()"/>
>
> As the name implies it should be the current context unless otherwise
> specified. Have I written this correct?
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








