This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: xsl:function


> having noted that saxon7 is alpha only, i've gone back to 
> 6.5.2 so the following has <saxon> elements.

I discourage people from using Saxon 7.x primarily because the spec is
not yet stable, and I don't want anyone complaining when it changes from
one release to the next. The actual code has proved remarkably reliable
(more so than I expected, given the limited testing).

I think using proprietary Saxon extensions in 6.5.x in preference to
XSLT 2.0 features in Saxon 7.x is definitely a step backwards, though
it's your decision. But saxon:assign is like disable-output-escaping,
it's a "peek/poke" feature that breaks the language paradigm and should
be used only if all else fails.

 I'm trying to 
> pad the string out to a given length to output in fixedwidth 
> format. The <xsl:variable/> on line 5 doesnt seem to work - 

xsl:variable doesn't take an "expr" attribute, and Saxon throws this out
as a syntax error, so presumably the code you're showing us isn't the
code you ran?

If you want to write this function using XSLT 1.0 you should write it
recursively.

Michael Kay
Software AG
home: Michael.H.Kay@ntlworld.com
work: Michael.Kay@softwareag.com 

> when i return $paddedString without doing the <saxon:while/> 
> it is empty. I expect it to be the equal to $theString as set 
> in the expr attribute.
> 
> <saxon:function name="pcs:pad">
> 	<xsl:param name="theString"/>
> 	<xsl:param name="fixedLength"/>
> 	<xsl:variable name="i" expr="string-length($theString)" 
> saxon:assignable="yes"/>
> 	<xsl:variable name="paddedString" expr="$theString" 
> saxon:assignable="yes"/>
> 	<saxon:while test="$i &lt; $fixedLength">
>     		<saxon:assign name="i" expr="$i+1"/>
> 		<saxon:assign name="paddedString" 
> expr="concat($theString,' ')"/>
> 	</saxon:while>
>   	<saxon:return select="$paddedString"/>
> </saxon:function>
> 
> 
> 
> > -----Original Message-----
> > From: owner-xsl-list@lists.mulberrytech.com
> > [mailto:owner-xsl-list@lists.mulberrytech.com]On Behalf Of David 
> > Carlisle
> > Sent: 18 June 2002 12:32
> > To: xsl-list@lists.mulberrytech.com
> > Subject: Re: [xsl] xsl:function
> >
> >
> >
> >
> > <xsl:result select="concat(theString,theOtherString)"/>
> >
> > that looks for two child elements <theString> and 
> <theOtherString> you 
> > want <xsl:result select="concat($theString,$theOtherString)"/>
> >                            ^          ^
> >                            ^          ^
> >                            ^          ^
> >                            ^          ^
> >
> > david
> >
> > 
> _____________________________________________________________________
> > This message has been checked for all known viruses by Star 
> Internet 
> > delivered through the MessageLabs Virus Scanning Service. 
> For further 
> > information visit http://www.star.net.uk/stats.asp or alternatively 
> > call Star Internet for details on the Virus Scanning Service.
> >
> >  XSL-List info and archive:  
> http://www.mulberrytech.com/xsl/xsl-list
> >
> >
> >
> 
> 
> 
>  XSL-List 
> info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 
> 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]