|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: RELAX NG validator
On 27 Sep 2005 08:39:30 +0100, Colin Paul Adams
<colin@xxxxxxxxxxxxxxxxxx> wrote:
> >>>>> "Eric" == Eric van der Vlist <vdv@xxxxxxxxxxxx> writes:
>
> Eric> Hi Colin, Le dimanche 25 septembre 2005 ` 15:26 +0100,
> Eric> Colin Paul Adams a icrit :
> >> Has anyone ever tried writing a RELAX NG validator in XSLT?
>
> Eric> That's certainly something doable and I have often played
> Eric> with this idea.
>
> Eric> XSLT 2.0 would help if you wanted to support W3C XML Schema
> Eric> datatypes which would be tough to support with XSLT 1.0.
>
>
> Eric> I remember having submitted the idea as a use case for FXSL
> Eric> to Dimitre Novatchev after his wonderful presentation at
> Eric> Extreme Markup Languages 2003
> Eric>
(http://www.idealliance.org/papers/extreme03/html/2003/Novatchev01/EML2003Nov
atchev01.html).
>
> Well, Dimitre, you were asking for ideas as to what next with FXSL for
> XSLT 2.0 - there you go! :-)
Thanks to Alan, Eric and Colin for the idea :o)
While this is certainly doable (in the distant past I had some
experience extending YACC's table-driven LALR(1) shift-reduce parser
to handle ambiguous (nondeterministic) grammars and thus implemented
Tomita's natural language parsing algorithm, there are tasks for FXSL,
which I consider higher priority.
In general, every useful meta-function (one, which both operates on
functions and returns a function) is of much higher priority than a
non-meta function.
Examples of meta-functions:
curry (converts a function that has N arguments to a function of
one argument that returns a function of N - 1 arguments)
flip (takes a function of two arguments x, y and returns
another functions that takes arguments y, x and returns the same
result)
lift
lift(f, g, h) = z such that z(x, y) = f(g(x), h(y))
(something quite similar to functional composition, but note the
parallel composition along the different function arguments)
Of course, a function, which takes a list of grammar rules and returns
another function, which is a parser for this grammar -- such parser
generator *is* of very high importance.
People have done this in Haskell -- look for example for Erik Meijer's
PARSEC -- yes, the same Erik Meijer, who was the mind behind XLINQ.
--
Cheers,
Dimitre Novatchev
---------------------------------------
Getting caught is the mother of invention.
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








