[Snow-users-list] SXML/SSAX (second try)

Thomas Lord 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.
> Thoughts?

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).
>> -t
>> 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
>>> Scheme48.
>> _______________________________________________
>> Snow-users-list mailing list
>> Snow-users-list at iro.umontreal.ca
>> https://webmail.iro.umontreal.ca/mailman/listinfo/snow-users-list
> _______________________________________________
> Snow-users-list mailing list
> Snow-users-list at iro.umontreal.ca
> https://webmail.iro.umontreal.ca/mailman/listinfo/snow-users-list

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://webmail.iro.umontreal.ca/pipermail/snow-users-list/attachments/20070713/1c73919e/attachment.html 

More information about the Snow-users-list mailing list