[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: A parameter current context or context passed

Subject: Re: A parameter current context or context passed
From: JBryant@xxxxxxxxx
Date: Fri, 13 May 2005 14:17:42 -0500
utf8 or operator
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?

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.