XML汎用とする場合、

動的コンテントを示すための属性名をどうするかに問題がある。varだと、属性が被ってしまう可能性がある。他のテンプレートで行われているように、名前空間を使うほうがよさそうだ。たとえば、vcont:key="{foo}"のように。
var="{foo}"という現行の指定方法はなくす方がシンプルな感じがする。
また、動的属性と動的コンテントで名前空間を別ける必要がある。動的属性の場合、名前空間無しでも、デフォルト値指定機能をつかわなければいいので、必須というわけではないが。vattr:class="{bar}"って感じかな。

あと、XHTMLのsapnタグのように属性が無い場合は、タグが削除されるようになっているもの、これをどうするか?vcont:del="noattr"って指定するようにするか。

と考えてくると、空要素タグのを自動で/>で終わるように変化する機能は、XMLではなく、HTML対応用の機能なので省きたいなー。実装面からは。HTMLだけ、プレフィルタを通して、とりあえずXMLに変換してしまう様にするのはどうか。

とすると、expatとかのXMLのSAXパーザで良いのか?XML_HTMLSax使わなくても。