Actually:
In XSLT 2.0, if you create an element node as part of the sequence
constructor for an attribute node, the elements are atomized. So
<e>
<xsl:attribute name="n">
<e>23</e>
</xsl:attribute>
</e>
generates <e n="23"/> - it's not an error.
In XSLT 1.0, if you do the same thing, it's a recoverable error:
"implementations may either signal the error or ignore the offending nodes".
It's never been clear whether this means "ignore the offending nodes and all
their descendants". So you might get an error, or <e n=""/>, or <e n="23"/>.
I suspect that the error that occurred was due to infinite recursion and not
to creating invalid XML structures, but it's really impossible to know from
the information that was given. In any case, the stylesheet needs a complete
redesign, so the details aren't very relevant.
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: bryan rasmussen [mailto:rasmussen(_dot_)bryan(_at_)gmail(_dot_)com]
Sent: 11 May 2007 00:09
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] "re-calling" a template from <a> anchor
to clarify, I mean that it looks like you are doing wrong the
last two things abel suggested you were doing wrong, and I
tried to show an example of how it looked like you were doing
it wrong.
Cheers,
Bryan Rasmussen
On 5/11/07, bryan rasmussen <rasmussen(_dot_)bryan(_at_)gmail(_dot_)com>
wrote:
I'm thinking it looks like abel's last two suggestion, an unending
recursion with the recursion writing elements inside of elements.
the template test writes out an a element with a href attribute.
<a href=""></a>
but you call it again, in the way you're doing it means you
would be
trying to do this:
<a href="<a hreff=""></a>"></a>
also you are doing it in such a way that it looks like it will keep
calling itself with howmany = 10 after the first time you reach
howmany = 10.
You probably need to specify closer what you want, most here could
help you solve these particular problems but without
knowing clearly
what you want the solution wouldn't be any big help, I guess.
Cheers,
Bryan Rasmussen
On 5/10/07, Abel Braaksma <abel(_dot_)online(_at_)xs4all(_dot_)nl> wrote:
Vaduvoiu Tiberiu wrote:
Hi all. Can anyone tell me if it's possible to
"re-call" a template from an anchor? something like:
<xsl:template name="test">
<xsl:param name="howmany" select="5">
<xsl:value-of
select="parent/child[position()>$howmany]/>
<a><xsl:attribute
name="href"><xsl:call-template
name="test"><xsl:with-parameter name=howmany
select=10></....</a>
I tried it but I get an Http error 500. So I'm trying
to display a
fixed number(e.g. 5) of elements and have a link wich
when clicked
displays the next 5 elements let's say. The only way I
figured to
do it was to call the same template but I can't make it work.
Anyone have any solution? 10x
Not sure what you are trying here. MK already pointed out
that you
may not understand the processing model. You recursively call a
template to create an attribute, which is fine, but unlikely to
create what you want (an attribute can't contain an
element, which
is what your code seems to imply...), since your snippet is not
well-formed XML, or even XSLT, so I can't tell for sure
without seeing more.
Error 500 means: internal error. If you use Cocoon, you should be
able to find the XSLT error in the logs. My guess is,
since you are
recursively calling a template inside xsl:attribute, that
the error
is something like "can't create element inside an attribute" or
similar. Or is just says "syntax error"... Or... since this
recursive loop won't end, it just runs out of stack space.
Cheers,
-- Abel
--~-----------------------------------------------------------------
- XSL-List info and archive:
http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--