Julio, you can still do unified indicies (i.e. all parts of each vertex use a single index) even if you move the normal and tex coord inputs out from <vertices> and into <triangles>. You just need to set each offset to be the same. It would look like this:
Each value inCode :<vertices id="myVertices"> <input semantic="POSITION" source="..."/> </vertices> <triangles count="2" material="..."> <input offset="0" semantic="VERTEX" source="#myVertices"> <input offset="0" semantic="NORMAL" source="#myNormals"> <input offset="0" semantic="TEXCOORD" source="#myTexCoords"> 0 1 2 3 4 5</p> </triangles>
is used as the index for the position, normal, and tex coord. When importing, you can quickly detect if you have unified indices by seeing if all the offset values are the same (as in the above case).
The problem the XSI importer is having is that you have the <input>s for normals and tex coords in <vertices> instead of <triangles>. The convention for Collada is that only the position input goes in <vertices>, and everything else goes directly in the <triangles> element. However I think what you're doing is still technically legal according to the spec/schema, it's just not conventional. Hopefully XSI fixes their importer to handle this case. But still, if you move the <input>s for normals and tex coords to the <triangles> element your Collada models will work better across more tools and modeling packages.