RE: [xsl] Variable assign

Subject: RE: [xsl] Variable assign
From: João Amílcar Pereira Cruz <joao.pereira.cruz@xxxxxx>
Date: Wed, 7 Dec 2005 15:32:57 -0000
Hi Michael,

$share is a path
 <xsl:variable name="SHARE" select="$xplconfig/descriptorroot"/>
 <xsl:variable name="xplconfig"
select="document('../../conf/config.xml')/config"/>

What I want to construct is a relative URI..
Anyway L aready had checkec, and in both situations they were constructing the
same string..

I already got some answers from Jon Gorman....
Going to check the hints he gave me

Thanks everyone

JC

-----Original Message-----
From: Michael Kay [mailto:mike@xxxxxxxxxxxx]
Sent: quarta-feira, 7 de Dezembro de 2005 15:22
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: RE: [xsl] Variable assign


You don't say what $SHARE is. Are you constructing an absolute URI or a
relative URI? It shouldn't make a difference: whether you supply a string or
a result-tree-fragment as the argument to the document() function, it should
use the base URI of the stylesheet to resolve any relative URI. But I think
there are some XSLT processors that get this wrong. Try
document(string($file)); and check that you really are constructing the same
string in both cases.

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

> -----Original Message-----
> From: Joco Ammlcar Pereira Cruz [mailto:joao.pereira.cruz@xxxxxx]
> Sent: 07 December 2005 15:14
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Variable assign
>
> Hi everyone
>
> I have this code:
>
> <xsl:template match="area[@type='list']">
>    <xsl:variable name="file">
>       <xsl:choose>
>          <xsl:when test="@dinamicxml='yes'">
>             <xsl:value-of select="concat($SHARE,'/DPLX/',
> @descriptor)"/>
>          </xsl:when>
>          <xsl:otherwise>
>             <xsl:value-of select="concat($SHARE,
> $bizcase/@lang, '/descriptors/', @descriptor)"/>
>          </xsl:otherwise>
>       </xsl:choose>
>    </xsl:variable>
>    <xsl:variable name="descriptor"
> select="document($file)/descriptor"/>
>    <xsl:variable name="multi">
>       <xsl:value-of select="$descriptor/@multi"/>
>    </xsl:variable>
>
> That doesn't work for the assign of the variable descriptor,
> it keeps telling me that it can't find the specified object.
> I already checked the value of the variable file, and its
> correct (it's a path for a XML file)
>
> When I change the assign of the file variable and the code
> looks llike this:
>
>   <xsl:variable name="file" select="concat($SHARE,
> $bizcase/@lang, '/descriptors/', @descriptor)"/>
>   <xsl:variable name="descriptor"
> select="document($file)/descriptor"/>
>   <xsl:variable name="multi">
>     <xsl:value-of select="$descriptor/@multi"/>
>   </xsl:variable>
>
> Everything works fine.
> Why is it that the assign of the node for the variable
> descritor works well for this option and for the other it doesn't?
> What is diference of assigning the file variable using a
> choose and not using?? :-(
>
> Best Regards
>
> JC

Current Thread