Re: [xsl] XSLT for Extensibility

Subject: Re: [xsl] XSLT for Extensibility
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Fri, 4 Feb 2005 07:25:40 +1100
Sorry for not being able to read my mail for the last 3-4 days.

On Wed, 2 Feb 2005 12:54:54 -0500, Alan Gutierrez
<alan-xsl-list@xxxxxxxxx> wrote:
> * Dimitre Novatchev <dnovatchev@xxxxxxxxx> [2005-01-29 15:32]:
> > >    How do you allow the user to plug in new tasks?
> > >
> > >    This is a general problem I'm having, how do you create hooks,
> > >    callbacks, er, how do you create an XSLT framework?
> > >
> >
> > Read about FXSL. It is a system to build and use higher-order
> > functions in pure XSLT.
>    [snip]
> >
> > >    --
> > >
> > >    I asked elsewhere, and pipelines were suggested
> >
> > This is naturally done in FXSL by functional composition. As result
> > otherwise difficlut problems can be solved in a one-liner XPath
> > expression.
> >
> > Read more about FXSL at:
> >      
>    For one project I'm opting to use pipelines of sorts. I'll
>    generate intermediate files, and transform them further.
>    Using this method, I can see how one would create a two step
>    process, or three step process, but not how one would create a
>    properly recursive process.

Probably I do not understand well the question. Pipelines are not an
appropriate architecture for describing a recursive process -- they
describe best a sequential process consisting of a sequence of steps.

Certainly, a step can initiate one of the steps that lead to this step
-- this is a simple (indirect) recursive call.

>    Where I'm using Saxon 8.X, I'll start using FXSL.
>    I can see how callbacks, and curried functions could be used to
>    define an API, but I'm sure there is a lot to learn in practice.


>    Where can I see examples of an API specified in FXSL? Or is it
>    so young that I sould study Haskell for best practice?

      I am not aware of such examples.  The functions of the Prelude
do form a very solid base that can be regarded as an API. Based on
these, any DSL APIs can be built.

>    Also, I see no lists for FXSL. Is this the correct forum in
>    which to field new user questions?

      We have a Developers Forum for Colin and me.

       There are also the following forums:

           FXSL Help

           Open Discussion

We can create a mailing list, too -- actually the difference between
forums and mailing lists on sourceforge was not clear to me, now 
thanks to Colin I see they are different things.

We are open to any recommendations. When recently Colin joined the
project we discussed some structuring of the contents of FXSL. The
result is that now there is a CVS and the directory structure (of the
next FXSL version which is still in the CVS only) is not so flat,
which helps find the functions in one directory, the test examples in
another and the source xml files in a third one.

Everything has been tested and confirm to produce the expected
results. A lot of new stuff has been added, most significantly the
FXSL wrappers for the standard XPath 2.0 functions and Operators and
this is still going on.

One significant application of FXSL was using it to test the Gestalt
XSLT 2.0 processor. I think that Colin found it useful.

All of this being done in one's free time...


>    Thanks for recommending this. I'm looking forward to finally
>    learning functional programming.
> --
> Alan Gutierrez - alan@xxxxxxxxx

Current Thread