[
Lists Home |
Date Index |
Thread Index
]
On Wed, Jan 21, 2004 at 10:14:29PM -0800, Tim Bray wrote:
> John Cowan opined that the 9-argument genxStartTag call was like a
> non-object-oriented bad dream and should be kiboshed.
Looking over genx.h, I see:
int genxStartStartTag(genxWriter w,
const utf8Byte * namespace, const utf8Byte * prefix,
const utf8Byte * type);
int genxAttribute(genxWriter w,
const utf8Byte * namespace, const utf8Byte * prefix,
const utf8Byte * name, const utf8Byte * value);
The first thing I'd do before using genx is write a couple of wrapper
functions to use a struct to define {namespace, prefix, name} triples:
typedef struct {
const utf8Byte *namespace;
const utf8Byte *prefix;
const utf8Byte *name;
} genxName;
int xgenxStartStartTag(genxWriter w, genxName *name);
int xgenxAttribute(genxWriter w, genxName *name,
const utf8Byte *value);
If I'm dealing with the same names over and over again in my code, I'd
certainly welcome the ability to completely define those names once, and
reuse them over and over again. This is a minor nit, to be sure. (I
might even define a header file for all the names in a vocabulary like
XHTML or XSLT, for example.) I don't know if this is a reasonable
design to replace the three longhand arguments with these structs (I
doubt it), or provide an alternative set of API calls.
Z.
|