Parsing Collada!

Hi all!

I m using Expat to parse xml data…
so far, im not conveince it is the right choice… what are you guys using?


I am using my own xml parser, which uses SAX (like expat), I think others are using LibXml, which I think it uses a DOM tree.

Loading a collada document with SAX parsing is much, much more difficult, mostly because the collada document has forward references to other elements, and these elements will not be availiable to you until you reach them while reading the document.

An example of this is the material and effect libraries… the “materials” reference “effects” which are declared later in the document.

On the other hand, SAX parsers require a lot less memory than DOM parsers, so if you’re planning to read really large collada documents `(+30mb) then, I think a SAX parser is a better choice. But, if you’re going to load short collada files, then a DOM parser would be better… LibXml, TinyXml, etc

I’m using

I’m using expat. I haven’t really looked at alternatives, but I’m very pleased with expat. It parses a 15MB file in a little over 1 second (non-cached). The solution that I created for exporter and reader is specific to the data I need. For types of data that I do not yet support I have errors so that it can be enhanced in the future.

That is, I think a implementation specific (that is implementation of the filespec – this can still be quite generic in terms of what game is using the data) works well with expat. For a generic solution (that is, one that could read any standards conforming collada file) I don’t think expat is the correct solution.