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

[ Lists Home | Date Index | Thread Index ]

At 03:32 21.1.2004, you wrote:

>----- Original Message -----
>From: "Toni Uusitalo" <toni.uusitalo@pan.nu>
> > >However, the XML writer needs to deal with Write and Close only,
> > >since the start of the document can be inferred when Write is called
> > >on a "Closed" writer target. I believe, the rest is up to the application.
> > >
> > >For your call-back above this could be done with adding a boolean
> > >flag isLast to the parameters (indicating the last buffer).
> > >One could also add a separate call-back instead.
> >
> > I don't understand this. Why the application couldn't be responsible for
> > opening
> > "stream", then setting genxSetWriterTarget and then closing the 
> "stream" after
> > all writing's done?
>
>Actually, you are correct, that would be more flexible.
>I was thinking along the lines of tying the Close call to
>the genxEndDocument call, saving the programmer one call.
>But who says you need to close the stream - maybe you want to
>write several documents in succession before closing it.

Yep. And stdout doesn't need to be closed. I think this abstract output 
callback
thing isn't adding too much complexity into genx inplementation, not when 
flexibility's
taken into account.

void genxStartDocument(genxWriter w, FILE * file);

could be implemented as

void genxStartDocument(genxWriter w,
   void * outputData,
   PFNOUTPUTCALLBACK outputCallback);

where PFNOUTPUTCALLBACK was something like:
typedef int (*PFNOUTPUTCALLBACK)(void *outputData, genxByte *buf, int 
cBytes, int *cBytesWritten);

if genxStartDocument is called with outputCallback parameter being NULL i.e:
genxStartDocument(pWriter, stdout, NULL);

it could default to internal FILE* PFNOUTPUTCALLBACK which simply calls fwrite.



with respect,
Toni Uusitalo






 

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

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