OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] genx - abstract output

[ Lists Home | Date Index | Thread Index ]


----- Original Message ----- 
From: "Tim Bray" <tbray@textuality.com>
To: "xml-dev mailing list" <xml-dev@lists.xml.org>


> Right now genx does output to a FILE *.  Several have suggested that it 
> should do output via an abstracted callback.  This sounds kind of 
> seductive, and is indeed much more general, and would be no biggie to 
> implement, but the more I think about it the less I like it.  So at the 
> moment I'm leaning to sticking with FILE * for the following reasons:
> 
> 1. The sweet spot for XML is interchange, and FILE * is a nice general 
> basis for almost all kinds of interchange.

Even when you want to feed your output through an encoding converter first?

> 2. If you're going to build an XML instance in memory, wouldn't it be 
> more natural to pull together a DOM or your own private data structure 
> and then serialize it in one fell swoop?

What do you mean?
I usually serialize from some application specific object model.
DOM would require to conver to to another object model first, 
and then use lots of memory as well.

> 3. This lowers the barrier-to-entry to implementers, who are going to 
> see genxStartDocument(genxWriter w, FILE * file) and say "oh yeah I 
> know what to do" as opposed to having to figure out another flavor of 
> I/O abstraction and write a stub of some kind.

You could have a FILE callback function included in the implementation.
So when setting the callback, the programmer passes a pointer to this function
and as a writerTarget he passes the FILE pointer.

> So this would be a good time to say "I'd use genx for XXX, but if it 
> sticks with FILE * I'm not going to be able to use it because of YYY".

Serializing over the network? There a various APIs for that, could even
be custom APIS or CORBA/DCOM.

Karl




 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS