de algún modo puedes usar XML, aunque casi siempre un theme es una carpeta con los archivos necesarios para hacer
include, casi siempre bajo un esquema...
Cita: header.tpl
content.tpl
footer.tpl
part.tpl
la idea es que siempre debes incluir los mismos archivos, y solo cambiaría la ruta de dichos includes...
Código PHP:
include '/theme/nombre_del_tema/header.tpl';
$name = 'otro';
include "/theme/$name/part.tpl";
así, al cambiar de theme, dicha ruta es otra, y siempre cargara los archivos relacionados, ahí mismo debes incluir los CSS/JS necesarios, etc...
es un tema extenso, pero te puedes basar en el modelo típico de web modular, ahí esta la clave...