[
Lists Home |
Date Index |
Thread Index
]
Simon St.Laurent wrote:
> This isn't a new thread - sorry - but this time the claim comes from an
> unusual source, that infamous XML-critic Tim Bray:
>
> http://tbray.org/ongoing/When/200x/2003/03/16/XML-Prog
>
> "XML is a bouncing thriving five-year-old now, and yet I've been feeling
> unsatisfied with it, particularly in recent times. In particular in my
> capacity as a programmer...."
>
> It's a page or two of reading, most of which reminds me that markup and
> programming are two different universes which both happen to involve
> computers. Definitely worth reading.
Hmmm. A couple years after you think you and your friends have convinced all the
Perl community to not use regex based parsers on XML you get Tim Bray to hit you
on the back of the head with one. I guess it's fair though, because he makes sense.
In fact, there has been some work within the Perl community to address the
problems that programmers evidently face when using the dominant
SAX/DOM/XPath/XSLT combo. Parts of it may be interesting to this conversation,
notably stuff done by Barrie Slaymaker. You may wish to take a look at EventPath
as described and implemented here:
http://search.cpan.org/author/RBS/XML-Filter-Dispatcher-0.47/lib/XML/Filter/Dispatcher.pm
http://search.cpan.org/author/RBS/XML-Filter-Dispatcher-0.47/
It is basically a collection of utilities wrapped inside rules that match an XML
stream using an XPath-like language (which is probably preferable to raw
regexen, and has in fact similar functionality). They will do things such as
maintain state for you or assist you doing so, in a way that is much simpler
than SAX. You need to learn a new little language, but if you know XPath it's a
five minute job. I don't think the docs do it full justice. He is also rumoured
to have a pull parser with a nifty interface (a pull parser being close in idea
to Tim's while loop), but I don't know if it's true or not.
As for adding syntax to Perl 6 it shouldn't be necessary. Built-in regexen is a
bit weak so Perl 6 is going with built-in grammars, with rules that look a lot
like methods and will likely support things like parameters and currying, and
that will provide access to local parse trees. For ideas in that area, you may
want to poke around:
design document: http://www.perl.com/pub/a/2002/06/04/apo5.html
for humans: http://www.perl.com/pub/a/2002/08/22/exegesis5.html
--
Robin Berjon <robin.berjon@expway.fr>
Research Engineer, Expway http://expway.fr/
7FC0 6F5F D864 EFB8 08CE 8E74 58E6 D5DB 4889 2488
|