ModSAX: Proposed Core Features

Ronald Bourret rbourret at ito.tu-darmstadt.de
Thu Mar 11 18:03:04 GMT 1999


Oren Ben-Kiki wrote:

> >* What are the interfaces between components and how hard are they to
> >implement?
>
> Basically the SAX callbacks, probably extended so that the full document
> data is available (comments and so on). This seems pretty much a done 
deal.

and also wrote:

> >* Who assembles the components -- the application, the processor, or a
> >third party?
>
> What I'm suggesting is we currently answer "for now, the application", 
and
> provide a simple, lightweight, low-level API which allows it to do so. 
More
> complex solutions could evolve later on. This seems to be in the SAX 
spirit.

If the application assembles the components and the interface between them 
is SAX, what do we need that SAX filters don't already give us?  In other 
words, does anything need to be done to OpenSAX (best name so far) to 
support this besides adding the ParserFilter interface?

The other question that occurs to me is how useful/common it is to 
dynamically assemble a processor at run time. That is, are there really 
applications (outside of test environments) that allow the user to 
designate their parser at run time (or even installation time) and 
therefore need to cover any possible deficiencies in the chosen parser? 
 What is gained by allowing the user to choose the parser?

Note that this is a very different situation from, say, using different 
ODBC drivers.  In the case of ODBC drivers, you are choosing a different 
source of data (type of database) and application writers have a strong 
incentive to support multiple databases through ODBC.  In the case of XML, 
the source of data is always the same XML document and the choice of parser 
becomes a trade-off between speed, reliability, feature-set, etc.

Since the application writer knows the feature set ahead of time, why not 
just hard-code the required parser and SAX filters and be done with it? 
 (Yes, I know that "hard-code" is a bad word and I shudder as a write it, 
but I really am curious if anybody out there has a real-world application 
that allows users to change parsers and what the benefits of this are 
besides the ability to say, "Oh, look. I'm using a different parser.")

In this view, the utility of SAX is not the ability to change parsers at 
run time, but to change them over time as reliability, speed, size, etc. of 
the parsers change.  It also means that application writers can learn a 
single interface (SAX) and then choose parsers as they are appropriate to 
the application without having to learn different interfaces for different 
parsers.

The ability to request features in OpenSAX allows the application to 
request processor behavior, which is slightly different from assembling a 
suitable parser.  For example, if I have an application that doesn't need 
validation, but I the parser I want to use does validation by default, I 
would like to be able to turn that off.

Just to be clear, I'm not necessarily against assembling processors based 
on a feature set.  I just believe that it is far more complex than it 
appears at first glance and am not convinced that it's worth the trouble.

-- Ron Bourret


xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)




More information about the Xml-dev mailing list