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 ]

> // for making UTF-8 strings
> > typedef unsigned char utf8Byte;

I would prefer this to be just char, the whole point behind UTF-8 is then
you don't need to know that it is it is just char *. Convertion to unsigned char *
is due to arithmetics, but arithemtics is opaque.

> // writer object
> typedef void * genxWriter;

This is C; any type typedef'ed to void * allows any other type.  I would prefer it to 
be opaque, but not void:

typedef struct GenxWriter *genxWriter;

to get error 'passing from incompatible pointer type'.

> void genxStartDocument(genxWriter w, FILE * file);

While FILE * is 'standard', it is often incovenient to use it; I would prefer
to have

void genxStartDocument(genxWriter w, char *buf, int size, void (*bytesReady)(int n,void *userData))

size is the size of the buffer, bytesReady is passed actual number of bytes available.
Much more freedom to use.

> int genxText(genxWriter w, const utf8Byte * text);
> int genxTextW(genxWriter w, const codePoint * text);

passing data in buffers oftern requires number of bytes or characters to be passed;
consider getting data from Expat and writing it to the output.

int genxText(genxWriter w, const utf8Byte * text, int nbytes);
int genxTextW(genxWriter w, const codePoint * text, int nchars);

instead?

> int genxCharacter(genxWriter w, codePoint c);

What's the use case for this?

> int genxScanUTF8(genxWriter w, const utf8Byte * s);

1) again, length. s/)/,int nbytes)/
2) what if I am reading from a stream and the last utf sequence is not read fully?


David Tolpin




 

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

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