On the topic of XML for serialization:
Without a DTD, an XML format is not different from any other markup. I
like Ian's idea of YAML, though I only made a cursory glance at it.
One advantage of XML is that, due to current popularity, many more
people and tools are aware of the XML syntax. However, I agree with
Ian that the XML syntax is quite verbose and painful for manual
I think Matt's idea of a vxml is useful for input. I don't think you
need a separate library to output XML: XML is very, very easy to
vsl is the v-serialization-library. I think it should do both types of
serializations. In particular, I think vsl should simply provide,
additionally, vsl_x_read and vsl_x_write routines corresponding to the
current vsl_b_read and vsl_b_write routines. Then, v*l_io would
provide both binary and other serialization options. I think adding
more libraries (*_xio) is unnecessary in this situation.
Clearly, expanding the interface as described above does not degrade
performance. And, the I would do it, it doesn't add any more
I'd be hesistant to put a dependency on an external library, such as
Expat, simply to output XML. However, XML is notoriously difficult to
parse, and using another implementation to do the work is a good
idea. I'm not sure, though, what you'd gain from a vxml as opposed to
directly depending on, say, v3p/expat.