[Xml-bin] Some central design issues

Al Snell alaric@alaric-snell.com
Fri, 13 Apr 2001 00:16:50 +0100 (BST)


On Thu, 12 Apr 2001, Stephen D. Williams wrote:

> I require both very efficient seekability and efficient in-place
> modification.  I haven't seen anyone else consider the latter
> requirement.  It's difficult, but is what is really required in a number
> of key situations.

In place modification is a bitch... the files start to get uncompacted
where things grow and have to have their space reallocated :-(

Unless you do certain cunning things with fixed-size records. Consider
Lisp, which had a very XML-like data model - lots to learn from the 50s
(like most things in computing, XML does nothing new, it's just a new
attempt to get everyone agreeeing on how to do it :-)

> This kind of thing doesn't make any sense as a binary equivalent to
> XML.  It may be useful for a certain class of problems, but it doesn't
> have the generality that a true 'binary XML' implies and needs.

I agree! There'd be no "markup" or "extensible" in it.

> Yes, although I may experimentally introduce more precise pointers and a
> delta/overlay method.  While still representable in standard XML, they
> won't, at first, be standardized themselves.

Extra features can be done. It'd be nice if they all fitted into the
infoset model, to allow easier integration, but you can still represent
truly alient concepts as <xmlbin:alien-thing ... />

> Cool.  After thinking about it long and hard, I'm more inclined to solve
> the DOM optimized problem first.  SAX is secondary to me.  True
> streaming needs to be supported, but I am trying structures that may not
> make it efficient without some reasonable buffering. 

I can make a format that's great for streaming and random access reads,
but in-place modification is an arse :-(

The ability to provide in-place modification may disallow efficient SAX
processing, which would be a downer, since in-place modification would
require the ability to break the document ordering inside the
file...

I see SAX emulation as pretty crucial for interoperability and efficiency
(otherwise it'll be slower than textXML when streaming)

ABS

-- 
                               Alaric B. Snell
 http://www.alaric-snell.com/  http://RFC.net/  http://www.warhead.org.uk/
   Any sufficiently advanced technology can be emulated in software