[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: RELAX NG validator

Subject: Re: RELAX NG validator
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Tue, 27 Sep 2005 19:12:26 +1000
relax ng yacc
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.

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.