Proposed process for DTDs in XML (Implementations)
Simon St.Laurent
SimonStL at classic.msn.com
Mon May 25 03:44:05 BST 1998
I've divided this response into two pieces. This one addresses potential
implementations using SAX.
Peter Murray-Rust wrote:
>SAX and the DOM co-exist very well - I have
>had feedback in-real-life saying that SAX was exactly what they wanted and
>the DOM was too large and confusing. Similarly I can see that 'XMLDTD' (or
>whatever) could find a useful niche.
This seems like the right model, especially since I suspect the DOM is gaining
to some extent from the experience of developers who have cut their teeth on
SAX and are ready for more power.
>Because SAX was the first API for
>XML, David and we had to face *generic* problems that hadn't been foreseen,
>particularly Exceptions and encodings.
>[...]
>One fundamental aspect is whether there needs to be any software or
>APIs. Although theoretically SAX could have been written as an API, in
>practice it was critical that David produced an implementation as proof of
>concept. (and also for 'marketing').
I feel strongly that this project will need an implementation, though I also
fear that I'm not a good programmer to execute it. I'd like to see the
implementation built on SAX if possible, to continue the tradition of openness
it began. I can see something like a 'validating SAX', (vSAX?) a program
which uses the SAX API to parse a DTD (or whatever we call it) and then uses
SAX again to parse the document, validating it against the DTD. vSAX would
then use the same SAX API to pass the information to the routine which called
it in the first place. Applications already using SAX could call vSAX without
having to make many changes.
This may go beyond the capabilities of the event-driven model. Building this
project in such a way that the vSAX parser could validate documents without
having to build an entire tree would likely warp the DTDs dramatically. That
could be interesting, but I suspect vSAX would have to build a tree
internally.
Originally, I felt that a specification with a syntax and test cases would be
sufficient. I still suspect it should be, but an implementation would be
useful to check the spec and provide a fundamental set of tools for
interoperability. My Java experience is unfortunately weak, more suited to
the integrator's task of plugging things together (my job until recently) than
building elegant structures. This is more than a simple integration. I'd like
very much to participate, but don't think I can do this myself.
Volunteers?
>It may even be that we preprocess these XDTDs to conventional
>DTDs. After all there will have to be *some* processing machinery for them,
>even if it's only an XML parser and a transformation engine.
This would be another possible and simpler implementation - a converter. Is
it compelling enough?
>I am assuming that part of the result will be the ability to express a DTD
>(or equivalent) in XML syntax. That means it can be held as a tree. In that
>case JUMBO (and many other tools) will naturally be able to hold the result
>in memory and to display it in a variety of ways. So, to the extent that
>that is useful, I can hopefully commit to being able to provide it.
That's another useful piece, certainly - a key step toward making this more
usable.
Simon St.Laurent
Dynamic HTML: A Primer / XML: A Primer / Cookies
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/
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