Re: [xquery-talk] Issues with recursive fn:transform

Ihe Onwuka <[email protected]>
Newsgroups gmane.text.xml.x-query.general,gmane.text.xml.xsl.general.mulberrytech
Message-ID <CALfs7+xracRkXq9pJ5-jd1=WMoLffbv7w=Res=tVsVELsQWD=g@mail.gmail.com>
I have got the recursive function to work by simplifying the call to
eliminate the accumulator.
I think the error message is an issue. I shouldn't have got that.


On Mon, Nov 16, 2020 at 11:07 AM Ihe Onwuka <[email protected]> wrote:

> Below is a recursive fn:transform function.
> Takes 2 arguments - the XML and the accumulator and recursively calls a
> translator.xsl to generate a translation of the XML into the next version.
> That's what is supposed to happen, it infinitely loops because the next
> version of the XML is being generated so the base case is never true -
> can't see a reason why that should happen but for now I will settle for
> hopefully understanding something more straightforward
>
>    <xsl:function name="local:x" as="element()+">
>       <xsl:param name="currentVersion" as="element()"/>
>       <xsl:param name="accum" as="element()+"/>
>       <xsl:sequence select="if (namespace-uri($currentVersion/*) =>
> contains($finalTarget))
>                             then ($currentVersion,$accum)
>                             else local:x(fn:transform(map {
>                                                        'stylesheet-node' :
>  doc(''),
>                                       'source-node'     :  $currentVersion
>                                               })?output/*,
>                         $accum)"/>
>    </xsl:function>
>
> I have used the old doc('') trick to pass the current stylesheet (the name
> is translator.xsl) to the recursive call but that is not the value supplied
> as the first argument of local:x but the error message says it is
>
> XPTY0004  The required item type of the first argument of local:x() is
> element(); the
>   supplied value doc(.../translator.xsl) does not match. The supplied
> value is a document node
>

_______________________________________________
[email protected]
http://x-query.com/mailman/listinfo/talk
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.