Well, usually, I'd answer RTFM (here, it's rather the f*cking specs), but for COLLADA, your mileage may vary since implementations all have they very own personality.
So.. my advice is simply to reverse-engineer. Make several test models under Blender with particular hierarchy of bones, and different anims, you'll soon figure out how bones are indexed. Isn't it possible ?
As I wrote, this is not the problem anymore. The remaining problem is, that I don't have any idea, how to apply the bones' transformations to the vertices.
You can see in the loader code, that I temporarily moved back to matrices (you used quaternions). I wanted to avoid errors, since the file format, the specs, xith and openGL all use matrices. (I read the specs
). Unfortunately the specs use wrong or at least strange matrix terms. When the matrix way finally works, we can move to quaternions again.