[Snow-users-list] SXML/SSAX (second try)
lord at emf.net
Fri Jul 13 14:39:14 EDT 2007
Julian Graham wrote:
> Glad you guys agree -- can I perhaps interest you in a discussion of
> the technical details of such a package?
See, it was on purpose I didn't go there. I didn't want to intimidate you
or scare you away from SSAX which I'm sure can be helpful almost regardless
of what it does.
But, on my wish list:
~ both streaming and DOMish APIs
~ get the Unicode processing within such perfect
~ get namespace handling perfect
~ don't forget to properly handle processing instructions and comments
~ handle insignificant whitespace well (see below about
~ get the parsing and printing perfect
~ include an accurate XML pretty-printer
~ performance, space and time, are critical
~ DOM and SAX models should be representation-agnostic:
~~ handle in-core, abstractly represented datums
~~ make it possible to read and pretty print datums while
PRESERVING insignificant whitespace!
~~ allow DOM and SAX models to refer to external,
lazily-read resources -- e.g., I want to use DOM
over a datum that is still largely on disk
~ XPATH-based accessors are critical. They should work well
for XPATHs generated on-the-fly at run-time. They should
work even better if the query is known ahead of time and
can be compiled.
~ XSLT and XQUERY: these matter, a lot, and in theory
Scheme engines should really shine here (perhaps see what
Per Bothner's been up to)
~ Schema checking (DTD and XSchema) matters a lot -- and
should be implemented very accurately
~ A loosey-goosey "approximate HTML" parser is critical
~ An HTML pretty-printer that satisfies common browsers
is critical -- c.f. the html output mode of XSLT processors
~ the nasty hard part: interoperability with foreign functions
matters (but probably can't be done perfectly). Have a
look at Xerxes and XQilla, for example. This is a real hard
problem for HLLs that like to be combined with foreign
C and C++ libraries: too many same-but-different DOM
APIs in one process.
~ it should all be very fast
~ probably will take a week or two to write :-)
> Given that there's a disparity in terms of exports among the various
> distributions for different Scheme platforms, I think it might be wise
> to choose a particular distribution and then re-port it to the
> requisite interpreters. The distribution I'm most familiar with is
> the one in guile-lib (http://home.gna.org/guile-lib/), but,
> unfortunately, it's a bit messy under the hood, since it includes, I
> think (could be wrong), an old stable release of SSAX coupled with
> some upstream work, so I don't know if it makes the easiest base for
> doing a port. Does anyone have any experience with any of the other
> ones, like PLT's?
> The SSAX functionality that's most important to me is:
> * ssax:xml->sxml (obviously)
> * The ssax:make-parser syntax, for customizing parser behavior
> * The utility functions used by the default parser, such as
> ssax:skip-internal-dtd, ssax:read-pi-body-as-string, etc., since these
> make customizing the parser much, much easier.
I have experience with a few 80% solutions in other languages. I have
a decent amount of experience with XML generally.
You frighten me with your eagerness to customize parsers -- that seems
to rather miss the point of an exchange format.
80% solutions can be used for lots of stuff -- almost anything you do
will be useful.
80% solutions tend to fall down hard as soon as you run into items from
my requirements list above.
Perhaps my serious suggestion is: don't worry so much. Just
get a package out there that does any damn thing that might
be useful and then go from there. Separate concerns: a snowball
for XML processing that happens to have some mud in it is a
good place to start -- then separately, start making that snowball
really top-notch. Don't make "getting XML in Scheme perfect"
a pre-condition for "here's a snowball for XML processors".
> On 7/12/07, Thomas Lord <lord at emf.net> wrote:
>> All-things that get to root of making W3C-ish stuff
>> better in portable Scheme are, in some sense, worth
>> a heck of a lot.
>> Scheme traditionally spends a lot of effort getting
>> right very general, widely applicable numerical data;
>> XML data and the protocols associated with it deserve
>> just about as much attention, and for similar reasons
>> (in my opinion).
>> Ezequiel Birman wrote:
>>> I'd love to see SXML/SSAX as a snow package. Being new to scheme, it
>>> tooked me a lot of time to figure out how to install it for SCSH and
>> Snow-users-list mailing list
>> Snow-users-list at iro.umontreal.ca
> Snow-users-list mailing list
> Snow-users-list at iro.umontreal.ca
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Snow-users-list