Scusa ma continuo a non capire se il problema lo hai con XML o con collada.
In XML tutte le interfaccie derivano da Node in maniera polimorfica, quindi in automatico viene richiamata la funzione corretta (che poi restituisca qualcosa dipende dal tipo stesso. Per esempio la proprietà attributes restituisce una NamedNodeMap per i tipi Element, ma NULL per i tipi Attribute.)
Quindi a meno che di non dover richiamare direttamente funzioni specifiche del tipo che ti interessa (tipo elementsByTagName di Element) non serve fare cast o template o altro.
Comunque esiste la proprietà nodeType per sapere con che tipo di nodo si ha a che fare.