You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by John Keyes <jo...@yahoo.com> on 2001/05/14 15:18:58 UTC
xsl:variable and xsl:param
Hi guys,
I have some xslt like the following:
<xsl:stylesheet ... >
<xsl:variable ... />
<!-- OR -->
<xsl:param ... />
<xsl:template ...>
</xsl:template>
</xsl:stylesheet>
I get the following exception when performing a transformation:
javax.xml.transform.TransformerException:
xsl:variable is not allowed in this position in the stylesheet!
OR
javax.xml.transform.TransformerException:
xsl:param is not allowed in this position in the stylesheet!
According to XSLT 1.1 Working Draft (http://www.w3.org/TR/xslt11/)
Section 11.4 Top-level Variables and Parameters, this is allowed.
I searched Bugzilla but could not find the bug. If it is a bug
I will enter it into Bugzilla.
-John K
Gary L Peskin wrote:
> Hi, Norm --
>
> No, you're not missing something obvious. ExpressionContext was added
> as an interface when there was some talk of standardizing extension
> handling. I don't know what the status of XSLT 2.0 is, which presumably
> will address extension issues, but we can certainly add methods to
> ExpressionContext so that you don't have to feel so "fragile". We'll
> worry about 2.0 when it comes. You're pretty safe with the current
> implementation casting the first argument to XPathContext but, as you
> say, it's not guaranteed.
>
> Let me know if you want to add ExpressionContext methods that would be
> generally useful.
>
> Gary
>
> Norman Walsh wrote:
>
>>/ "Paul Brown" <pr...@fivesight.com> was heard to say:
>>| > I've dug through the API a bit, but I haven't found the right
>>| > methods, I guess. Starting in an extension function, how can I
>>| > find the current DOMHandler?
>>|
>>| DOMHandler is returned from TransformerImpl.getXPathContext.getDOMHelper();
>>| that will get you the DOMHelper for the current execution context.
>>
>>Hmm. It appears to me that ExpressionContext is all I get passed to
>>my extension function. Given that the API docs indicate that XPathContext
>>is the only implementation of that interface, it seems reasonable that
>>I could cast it, but that strikes me as a bit fragile. Am I missing
>>something obvious?
>>
>> Be seeing you,
>> norm
>>
>>--
>>Norman.Walsh@Sun.COM | It is good to have an end to journey toward;
>>XML Standards Engineer | but it is the journey that matters, in the
>>Technology Dev. Group | end.--Ursula K. Le Guin
>>Sun Microsystems, Inc. |
>>
>
Re: xsl:variable and xsl:param
Posted by John Keyes <jo...@yahoo.com>.
I have to investigate why it does not work with the
stylesheet I am using because I have written a very
simple one :
<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:variable name = "NAME">My Name</xsl:variable>
<xsl:template match = "/">
<xsl:value-of select = "$NAME" />
</xsl:template>
</xsl:stylesheet>
and this works fine. Unfortunately I am not in a position
to post the one I am working on. If I find out the reason
behind the behaviour I will inform the list.
Thanks,
-John K
Gary L Peskin wrote:
> John --
>
> Can you send your complete stylesheet? This should work.
>
> Gary
>
> John Keyes wrote:
>
>>Hi guys,
>>
>>I have some xslt like the following:
>>
>> <xsl:stylesheet ... >
>> <xsl:variable ... />
>> <!-- OR -->
>> <xsl:param ... />
>>
>> <xsl:template ...>
>> </xsl:template>
>> </xsl:stylesheet>
>>
>>I get the following exception when performing a transformation:
>>javax.xml.transform.TransformerException:
>> xsl:variable is not allowed in this position in the stylesheet!
>>OR
>>javax.xml.transform.TransformerException:
>> xsl:param is not allowed in this position in the stylesheet!
>>
>>According to XSLT 1.1 Working Draft (http://www.w3.org/TR/xslt11/)
>>Section 11.4 Top-level Variables and Parameters, this is allowed.
>>
>>I searched Bugzilla but could not find the bug. If it is a bug
>>I will enter it into Bugzilla.
>>
>>-John K
Re: xsl:variable and xsl:param
Posted by Gary L Peskin <ga...@firstech.com>.
John --
Can you send your complete stylesheet? This should work.
Gary
John Keyes wrote:
>
> Hi guys,
>
> I have some xslt like the following:
>
> <xsl:stylesheet ... >
> <xsl:variable ... />
> <!-- OR -->
> <xsl:param ... />
>
> <xsl:template ...>
> </xsl:template>
> </xsl:stylesheet>
>
> I get the following exception when performing a transformation:
> javax.xml.transform.TransformerException:
> xsl:variable is not allowed in this position in the stylesheet!
> OR
> javax.xml.transform.TransformerException:
> xsl:param is not allowed in this position in the stylesheet!
>
> According to XSLT 1.1 Working Draft (http://www.w3.org/TR/xslt11/)
> Section 11.4 Top-level Variables and Parameters, this is allowed.
>
> I searched Bugzilla but could not find the bug. If it is a bug
> I will enter it into Bugzilla.
>
> -John K
>
> Gary L Peskin wrote:
>
> > Hi, Norm --
> >
> > No, you're not missing something obvious. ExpressionContext was added
> > as an interface when there was some talk of standardizing extension
> > handling. I don't know what the status of XSLT 2.0 is, which presumably
> > will address extension issues, but we can certainly add methods to
> > ExpressionContext so that you don't have to feel so "fragile". We'll
> > worry about 2.0 when it comes. You're pretty safe with the current
> > implementation casting the first argument to XPathContext but, as you
> > say, it's not guaranteed.
> >
> > Let me know if you want to add ExpressionContext methods that would be
> > generally useful.
> >
> > Gary
> >
> > Norman Walsh wrote:
> >
> >>/ "Paul Brown" <pr...@fivesight.com> was heard to say:
> >>| > I've dug through the API a bit, but I haven't found the right
> >>| > methods, I guess. Starting in an extension function, how can I
> >>| > find the current DOMHandler?
> >>|
> >>| DOMHandler is returned from TransformerImpl.getXPathContext.getDOMHelper();
> >>| that will get you the DOMHelper for the current execution context.
> >>
> >>Hmm. It appears to me that ExpressionContext is all I get passed to
> >>my extension function. Given that the API docs indicate that XPathContext
> >>is the only implementation of that interface, it seems reasonable that
> >>I could cast it, but that strikes me as a bit fragile. Am I missing
> >>something obvious?
> >>
> >> Be seeing you,
> >> norm
> >>