I count five different variants on the param element in collada 1.5. All except the fourth seem semantically equivalent to me. Is there a reason for more than two variants?
1. <param ref=sidref_type/>
2. <param ref=xs:token/>
4. <param [name=xs:token] [sid=sid_type] [semantic=xs:NMTOKEN] type=xs:NMTOKEN>xs:string</param>
5. <param>xs:token</param> (in kinematics, except for kinematics bind, which uses variant 2)